这是作者40岁时,职业生涯从教师变为前端开发者的一篇文章。他没有相关的背景经验和学位,在有全职工作前提下,以目标为导向,自我驱动完成了编程的学习。编程潮正热的现在,或许你该提前看看这篇文章?

请看来自《freeCodeCamp》的文章:
“此时我像一名典型的前端开发人员,正坐在马德里市中心的一家咖啡馆里,喝着一杯咖啡,在外面下雨的时候敲我的笔记本电脑,开始我的第一天。
10个月前,我是格拉纳达的英语老师,对编程一无所知,现在我坐在这里。我是如何做到的?跟我来吧,我和你分享我如何来到这里的旅程”。
我回忆在我第一次考虑成为一名程序员时,我希望读到一篇什么样的文章。我模仿真正的作家,他们总是从读者的真实需求出发,从而使自己更擅长本职工作,这一点我要向他们学习。
成为一名作家需要有什么特殊的“背景”吗?
抱歉,我并没有找到答案。同样,成为程序员也没有任何“特殊要求”。我并不是和你说这很容易,因为事实上并不太容易。但好消息是,这些所谓的要求其实是每个人垫垫脚能达到的小目标。
你必须愿意努力工作,实实在在学到很多东西,并保持知行合一。当事情变得艰难时你需要坚持下去,当你觉得自己还有一口气,请在绝望的时刻说服自己走下去,这就是所需要的。每个人都可以通过一些练习来做到这件事情。
- 我开始时没有相关的计算机背景;
- 我没有为昂贵的课程知识付费;
- 假如我的某一天很忙,就挤不出连续性的整段时间学习;
- 而且我已经差不多中年了……
每个人的情况都不一样,但我相信,如果你找到自己的道路坚持下去,你就可以做到。
我学习编程需要背景吗?
在我编写第一行代码之前,从未接触过任何编程。我早期的职业生涯是做餐馆生意,后来我获得了音乐艺术学位,在西班牙担任了ESL老师十年。我甚至不熟悉计算机,可总是对最新的科技创意感到兴奋,我认为程序员是现代超级英雄。
(译指禅注释:ESL是欧美语言学校最通用的世界级权威英语培训课程,面向母语非英语的的留学生)
不过,我从没想过自己会这样做,部分原因是我认为编程是某种精英活动,适合从顶级(和昂贵的)大学毕业的有天赋的人。
虽然这样的程序员确实存在,事实上大多数程序员并不是好莱坞黑客类型,程序员入门比我们想象的要容易得多。
故事的起源
这一切都始于和我的伴侣的谈话,她正在探索公司团队中女性人数较少的原因,尤其是技术团队。她决定成为一名程序员,在亲身实践中寻找原因。她开始学习编程,想成为我们家庭中年轻女孩的榜样。
这很快让我兴奋,因为我们意识到有足够的网络资源可用。这不是一些黑暗的巫术,而是值得学习和掌握的技巧。顺便一提,她最后跳出了人力资源部门,事实上还比我早一个月拿到程序员的offer。
因此,有一天,我们在科学图书馆找到一本儿童编程的书。我们回到家里,打开记事本,写<h1>Hello World</h1>,更改color: red,在浏览器中打开,我们兴奋地尖叫,那是什么魔法!
我被迷住了,我想运用代码制作东西,我想让电脑按我的意志执行命令!我感受到这是我生命中的一个新阶段,我有了新的愿景和新的前程。
接下来,让我们把整个目标拆分开来,一步一步分解的编程之路。
编程之路
入门
首先,我开始阅读和观看有关编程的YouTube视频,以了解从哪里开始。然后我开始玩HTML和CSS。我按照教程编写并编写了一些基本的网页。
这让我觉得这是我真正想要进入的东西。
设定目标
我联系了两位在该领域工作的朋友,寻求指导和建议。那些引导的话语,鼓励我将注意力集中在一个明确的目标上前进至关重要。
我需要迅速改变职业生涯,花一些时间来整理所有的可行性选择并设定对我有用的现实目标。因为我没有其他资产性收入,这意味着我得维持原来的工资收入,直到我完成转行。
我认为前端开发是最容易入门和最受欢迎的选择。我通过专注于公司实际所需的技能而不是自由职业的路线来进一步缩小学习范围。
然后我设定了截止日期,我不希望目标超出日期还出现在我的待办事项清单上。这是2017年的春天,我向自己承诺,这个学期的课表将成为我作为老师的最后一张课表。假装在教师阶段我拥有一切的资本是清晰且可控的,我没有这种天真的想法。在做出如此冒险的转行时,不确定性无处不在。在每一个点和整个过程中都存在各种各样的疑虑。
学习学习
我知道前进的唯一方法就是有目标的学习。我有全职工作,所以等到“我有时间就学”从来都是一个伪命题。我很幸运,我的伴侣同时在学习。这有助于我们平衡学习的生活,最大化增加学习时间。
起初我们会做 “周末训练营”,把整个周末都用于编码。典型的一天看起来像这样:
早上8点:醒来,早餐。 上午8:30:开始编程;下午12:30:去健身房;下午1:30:午餐;然后休息;下午3:00/4:00 :继续编码;晚上8:00/11:00 :结束一天。
然后学校暑假到了,我将“周末训练营”变成“每日训练营”来充分利用时间。尽管享受夏天十分诱惑,我还是刻苦地坚持了这个时间表。
九月来了,我又回校园工作。我有意识地减少校园工作时间来换取更多时间学习编程。
很难说习惯之后,离开我的代码是多么困难。我想做的就是回到我的电脑上来完成解决这个bug或修复那个布局。但是新学年的开始总是需要老师花很多时间来准备和组织。正如你的老师会告诉你的那样,开学老师最辛苦。
那是我的任务可能脱轨的那一刻。尽管我付出了最大努力,但我的编码时间越来越少。我开始失去动力。我试图保持它,但有几天我根本没有时间。即使有最好的意图和良好的动力,生活也会让事情变得复杂。
我在GitHub上的活动显示10月份下滑
但是,正如您从我的GitHub活动图像中看到的那样,我一直在努力。即使只是一个小时阅读一篇文章,我仍然保持。当你在上面花费足够长的时间时,会产生势,势推动你进入正循环,它会让你越来越难以回到过去。
随着十二月临近,新的一年即将来临,我的截止日期越来越近。我开始推进,无论我多累,我都没有剩下多少时间。有时候我会提前起床去编程,有时我会熬夜。
这意味着我的休闲时间几乎减少了,舍弃了一部分学校奖金和教育工作,还有别的。我基本上一直保持这种节奏,直到我开始打包到马德里。那是在2018年冬天,也就是我的截止日期前几个月。
学习工具和资源
在将近10个月里,我沉浸在与代码相关的所有内容中。我在Twitter被问到的最常见问题是我使用了哪些资源,我写了另一篇文章,深入回答了这个问题。
以下是最重要的工具和资源的简要列表:
- freeCodeCamp.org
- Cassidy Williams和Colt Steele的Udemy课程
- Wes Bos’JavaScript 30和其他课程
- YouTube:Traversy Media,LevelUpTuts
- Christina Truong的Lynda.com课程
- Udacity前端Nanodegree(付费课程,但我从Google获得了奖学金,因此免费)
课程只能带你走的稍远一点,所以我用其他工具来补充,以帮助我学习和找到工作。
- Twitter:我的经历的基石。特别是令人难以置信,热情提供支持的#100DaysOfCode社区。
- GitHub:一个重要的学习工具,以及我免费托管我所有项目的地方。这通常是面试官考察你实力的第一个地方。
- Portfolio:通过构建它和其他自发项目,我学到了最重要的开发技能。
关于希望提升自己技术,完成转型跳槽面试等想法的朋友以下福利很适合你
福利1 免费直播课程
《腾讯课堂Android高级开发工程师系列直播》
适听人群:Android初、中、高级开发工程师
3.13-3.18 连续6天每晚8点准时直播,持续进行
▼
3月13日:Android应用最广知识-注解与代理的故事
3月14日:架构师必备之Android AOP教程
3月15日:Java虚拟机原理大揭秘
3月16日:hook源码实现阿里无闪烁换肤
3月17日:实现安全可靠的Android网络连接
3月18日:设计模式应该如何运用到Android项目开发中
福利2 Android开发资料包
该资料包中主要包括「Java语言进阶与Android相关技术核」、「2)App开发框架知识体系(app亦对象)」、「360° Android app全方位性能调优」、「Android前沿技术」、「NDK 模块开发」等内容,全方位扩充你的知识体系。


想要参与Android进阶免费系列直播课
以及获取Android开发工程师资料包的同学,
点击加入:加入
免费课程,名额有限,先到先得~~
网友评论