编者按:也许你已经清楚了自己的兴趣之所在,但是却没有勇气开始它,或者为自己找了种种借口,按下心中的渴望。但任何时候开始自己感兴趣的东西都不算晚,本文作者过去只是一名老师,对编程怀有好奇和热爱,年过40依然毅然决然坚持不懈地学习,最终成为了一名程序员,找到了自己热爱的工作。从作者的经验中,我们应该能学到很多东西。本文作者Syk Houdeib,原文标题How I switched careers and got a developer job in 10 months: a true story。
我打算谈谈自己40岁的时候是怎么从零基础开始学习然后转入前端网页开发领域的。我全靠工作之余的自学,基本没花钱。
我坐在马德里市中心的一家咖啡馆里,外面下着雨,我一边喝着咖啡,一边敲着笔记本电脑。过一会儿,我将开始自己作为前端网页开发人员的第一天。10个月前,我还是一名英语老师,对编程一窍不通。想知道是怎么发生的吗?
几个月前,我写下了这些激动人心的话,来吧,一起看看我是怎么做到的。
如果我只是刚开始考虑做一名开发人员,那么我会带着一点怀疑的态度来阅读这篇文章。因为我会从作者的背景中寻找他们有没有成为开发人员的潜质。
然后后来我明白了,成为一名开发人员不需要什么潜质。当然我也不会说这条路很好走,因为它确实不好走。但好消息是,只要你愿意努力工作,学习很多东西,并且持之以恒,就完全可以实现当一名开发人员的梦想。当你觉得自己不适合做这件事的时候,你需要说服自己振作起来。这就是你需要做到的事情,仅此而已。
我是零基础学起的,没有花钱报什么课程,因为我已经够忙的了。虽然每个人的情况都不一样,但我知道,如果你用心去做就能做到。
我说了我是零基础,在此之前我从来没有接触过编程。我早年从事餐饮业,后来我获得了音乐学位,之后又在西班牙当了十年的ESL老师。我对电脑甚至不是特别熟练,但我确实对最新的科技创意十分着迷,而且认为程序员就像是超级英雄一般的存在。
不过,我从来没有想过自己有朝一日也从事这个行业。部分原因是我认为编程是个高大上的活儿,是那些从顶级(而且昂贵)大学毕业的天才们才能从事的。虽然这样的人确实存在,但大多数开发者并不是电影里看到的那样,所以,做一名程序员比我想象的要容易得多。
这一切都始于我和妻子的一次对话。她正在研究为什么在STEM和科技行业的女性人数那么少。然后她决定成为一名程序员,然后很快就投入了学习。
这让我也兴奋了起来,因为我们意识到有很多可用的资源。这不是什么魔法,而是一种我们可以学习和掌握的技能。
有一天,我们在科学博物馆里发现了一本关于编程的儿童读物。我们回到家打开电脑,按照上面的指示,通过简单的操作使文字改变颜色,然后激动得尖叫起来,因为我们觉得实在是太神奇了。
我完全被迷住了,这促使我下定决心学习编程。
那时我已经当了8年的老师了,但我依然非常热爱教学工作,喜欢和孩子们在一起。一言以蔽之,这份工作非常令人满意。
但有时候,即使你有所不舍,也要知道是时候继续前进了。这是我生命中的新阶段,我有了新的愿望。最重要的是,这也是个能让我走出舒适区的新挑战。
没有一条放诸四海而皆准的成功之路。每个人的学习方法都不一样,都要找到对自己有用的方法。如果非要找到什么共同点的话,那就是咬紧牙关,坚持不懈。
因此,我告诉你们的办法不是唯一的方法,也不是最好的方法,只是对我有用的办法而已。
首先,我开始观看编程的教学视频,弄清楚了该怎么开始。然后我开始学着怎么用HTML和CSS。我按照教程的要求编写代码,建立起一些基本的页面。在这个过程中,我意识到这是我真正感兴趣的事情。
我向两个程序员朋友寻求建议和帮助。他们那些鼓励和引导我的话语对于后来的成功和找到明确的目标至关重要。
我花了一些时间研究情况,设定了对我来说可能实现的目标。除了教学之外我没有其他的收入来源,这意味着我在换工作之前不能失业。
我认为前端网页开发工作是最容易学习和最受欢迎的工作。我进一步缩小了范围,把重点放在了创业所需的技能上,而不是走自由职业路线。
然后我设定了最后期限。我可不想到头来一事无成,得过且过。当时是2017年的春天,所以我向自己保证,到2018年9月,一年多以后,我必须换工作。
但是如果假装在这个阶段一切都在我的控制之下,那我未免太天真了。说实话,我在当时和后来的整个过程中都有各种各样的怀疑,但关键就是坚持。一旦我做出了什么决定,我就会沿着这条路走下去。
我知道,想要进步,唯一的办法就是学习。我有一份全职工作,所以等到“有时间”了再做决定是不可能的。我很幸运,因为我和妻子的学习时间是一致的。这有助于我们安排好每天的学习时间。起初,我们会把整个周末都花在编程上。我们比较典型的学习计划如下:
8:00 am:起床
8:30 am:开始编程
12:30 pm:活动
1:30 pm:吃午饭,休息
3:00/4:00 pm:继续编程
8:00/11:00 pm:结束一天的工作
然后就到了暑假,我充分利用了这段时间,尽管我很想好好享受这个夏天,放松一下,但我还是坚持了下来,每天都认真学习。
然后一眨眼就到了九月,我又开始了学校的工作。我有意识地减少工作时间,选择用更少的收入来换取更多的学习时间,这样一来,我就更加认真地学习了。
你可能很难想象我与代码有多么难舍难分。我最想做的事就是坐在我的电脑前学呀学呀学呀。但生活还是得继续。每年9月份都是新学年的开始,这就意味着你投入需要大量的时间来准备,往往还要从私人时间中抽出一部分来。
当时我真的非常焦虑。尽管尽了最大的努力,但我花在编程上的时间却越来越少。我开始失去动力。我想尽办法试着坚持下去,但有时根本没有时间。即使有最好的意图和动机,生活也会使事情变得复杂。
你看,我十月份编程计划的完成状况相当令人失望
但是,也正如上图显示的,我一直在尝试,在努力。我不断地想要挤出时间,哪怕是一个小时也好。我做了所有能做的事情,希望自己不要失去动力,希望自己咬牙坚持。我希望这对你有启示作用:因为一旦你离开某样东西的时间足够长,要想再捡起来的难度就相当大了。
然后,事件逐渐推移,12月慢慢近了。眼看着新的一年就要来临了,我的最后期限也临近了,我又振作了起来,整个生活也开始有了计划。我开始努力工作,不管我有多累,也不管我的时间有多少。我把所有的空闲时间都投入到了编程的学习中,有时候我会早起,有时候我会熬夜,但都是想尽办法多挤出一些时间。
这就意味着我的生活几乎沦落到只有工作和学习——而且工作也只是到薪酬能付房租就行,剩下的时间全给了编程。我基本上一直保持着这种节奏,直到我开始收拾行装去马德里的那一天。那是在2018年春天,离我当时定下的最后期限还有几个月。
说实话,现在回过头看去,我当时真的是全身心投入到与编程相关的一切事情中。我在Twitter上最常被问到的问题是我当时学习用的是什么资源。虽然这个就又得开一篇文章仔细讲讲了,但是我觉得有必要列出一些最重要的工具和资源给大家。
freeCodeCamp.org
Cassidy Williams 和 Colt Steele 的 Udemy 课程
Wes Bos’ JavaScript 30 以及其他课程
YouTube:Traversy Media,LevelUpTuts
Christina Truong’s Lynda.com的课程
Udacity Front-End Nanodegree(付费课程,但说出来你可能不信,我再谷歌上还获得了一个学位)
但这些课程还不够,所以我又补充了一些课程,这些课程不仅能拓展你的学习深度和广度,还能在你找工作的时候助你一臂之力。
Twitter:这是奠定了我学习基础的地方。我从这里获得了令人难以置信的支持,强烈推荐#100DaysOfCode社区,非常暖人。
GitHub:这是个非常重要的学习之处,而且雇主通常首先在这儿看到你的作品。
Portfolio:我在这里通过各种自主项目学会了最重要的开发技能。
令人惊讶的是,这个过程比我想象中要简单很多。我没有四处投简历,每天把大量的时间花在筛选上。相反,我选择了专注于几家公司。
最后我收到了五家公司的面试通知。很不幸,我被其中的两家拒绝了。但另外三家都被我拿下了。三家公司的offer中,我觉得有一个完全不合适我,而且也没有什么吸引力。另外两个offer的工作岗位都挺有意思。后来,我在这两个中选择了一个。
但我并不是说当时找工作的时候我真的心如止水。现在想来,当时确实是段很紧张的时光。我其实并不清楚自己的技能是否达到了市场的要求。我甚至不确定自己是否会因为经验不足而被各方嘲笑。虽然当时挺伤脑筋的,但我不得不说,整个找工作的过程其实还是很激动人心而且充满希望的。当我终于发现自己有两份真正适合的offer摆在桌上时,我欣喜若狂,差点以为自己在做梦。
我会永远感激那些给我机会决定录取我的人。
这两家公司的面试流程完全不同。其中一家是通过视频电话与公司里各种各样的人进行交谈。这家公司是一家规模虽小但信誉卓著的公司,希望建立一个全新的前端网页开发团队。几个星期来来回回下来,他们给了我第一次真正实现梦想的机会。
另一家公司是一家处于高速增长中的年轻创业企业。在一次电话面试后,我收到了一份技能考核(需要在几天内完成),这份考核涉及到组件构建、进行API调用和显示正确的信息。然后又是视频面试,内容是关于我的编程结果。然后我被邀请和技术团队见个面,喝杯下午茶。在那之后,我被告知,可以作为前端网页开发初级人员加入公司。
最后我不得不做出选择,我知道自己想要什么,所以我接受了这家创业公司的邀请。为什么呢,因为我在这家公司能够获得成长和学习的机会,这是关键所在。我坚信这绝对是正确的选择。
就这样,在马德里的那个雨天,喝完咖啡后,我走进一间办公室,向大家介绍自己是新来的的前端网页开发人员,然后开始了自己新的职业生涯。
编译组出品,编辑:郝鹏程