40 岁的时候,我转行成为一名前端开发者。在此之前,我没有任何技术相关的工作经验,没有相关专业学位。我完全是通过免费的资源自学编程,几乎没有为此花费什么钱,而且学习的时候我做着一份全职工作。

“外面下着雨,我正坐在马德里市中心的一家咖啡馆里,一边喝着咖啡一边敲着键盘。不久后我将以前端开发者的身份开启全新的职业生涯。就在 10 个月前,我还在 Granada(西班牙格拉纳达大学)当英语老师,对编程一窍不通。而现在,我即将成为一名软件开发者,这是怎么发生的呢?”

几个月前,我在入职新工作的第一天写下了上面这段激动人心的话语。跟我来吧,我将和你们分享我是如何实现这一切的。

image-16

特别的感觉

当我刚开始考虑成为一个开发者的时候,我会将信将疑地阅读类似这篇文章的故事。我会试图找出这些文章作者所拥有的而我所没有的特殊的背景——可能是这种背景使得他们适合这种工作。

后来,我慢慢明白事情不是那样的。成为一名开发人员不需要任何的 "特殊" 背景。我不会告诉你这非常容易,因为事实并非如此,但好消息是每个人都可以达到要求。你必须非常努力工作,学习很多东西,不能半途而废。当出现困难的时候,更不能退缩。当你自己觉得不适合做这件事情的时候,说服自己不要陷入绝望。以上就是你所需要的,每个人都可以通过练习来做这些事情。

我起步的时候没有任何相关背景。我并没有把钱花在昂贵的课程上面,在忙碌的一天工作之后我并没有太多时间去学习,同时我也已经步入中年。

每个人的情况是不一样的,但是只要你用心去做,你就能做到。

背景

在写下第一行代码之前,我从未接触过编程,也从来没做过相关工作。在职业生涯的早期,我从事餐饮工作,然后我获得了音乐相关专业的学位,之后在西班牙当了十年的英语老师。我甚至对电脑的基本操作也不是很熟练,但总是对新兴科技感到好奇与兴奋。我认为程序员是这个时代的超级英雄

不过,我从未想过自己会成为程序员。部分原因是我认为编程只有精英才能做。这种工作是为那些从名牌大学毕业的聪明人准备的。虽然这样的人确实存在,但是大多数人并不是好莱坞电影里面的那种有天赋的天才。开发远比我想象的要容易得多。

故事起源

一切源于我和妻子之间一次热切的交谈。她当时正在探索在 STEM 领域尤其是技术领域女性人数减少的原因。她决定通过成为一名程序员来改变这一现状,并且成为我们家族中年轻女孩的榜样。就这样,她开始学习了解了。

这很快也让我兴奋起来,因为我们意识到有很多可用的资源。这不是什么黑魔法,而是一种我们可以学习和掌握的技能。

剧透一下,她成功地从人力资源方向转行,比我早一个月获得了开发的工作。

某一天,我们在一个科学博物馆里面发现了一本有关儿童编程的书籍。一回到家我们就打开 Notepad,写下 <h1>Hello World</h1>,在浏览器里面打开,然后将页面颜色更改为红色。我们兴奋地尖叫着:这是什么魔法!

我彻底迷上了编程。我想要用电脑和代码做自己想做的事情。

我之前的工作

那时我已经做英语老师八年了。这不是典型的一个人在谈论他的没有前途的工作的场景。相反我非常热爱这份教学工作,喜欢工作的时候和孩子们在一起,而且我在工作时很自在。

但是有时候,即使你爱上了某样事情,你心里也知道是时候该继续前进了。这是我人生的一个新阶段,我有了新的展望和抱负。最重要的是,我想要一个新的挑战,让自己远离舒适区。

image-17

通往成功的真正路径

显然并不存在什么通往成功的标准路径。我们三个人(我的妻子、我和我的好朋友)为了转行几乎同时开始学习编程。我们三个人现在都是开发者,每个人的方法都不一样,每个人都有适合自己风格的方法。如果说我们之间有什么共同点的话,那就是我们没有放弃,没有半途而废。我们都付出了很多努力。

所以这里我要告诉你们的不是一个通用的方法,而是我自己所特有的方法。这不是唯一的方法,可能也不是最好的,但是这对我很有效。

开始

首先,我在 YouTube 上观看关于编程的视频,找到切入点。然后我开始学习 HTML 和 CSS,按照教程构建了一些基本的 Web 网页。我开始明白这是自己想要从事的工作。

设定目标

我向两个在这个领域工作的朋友寻求建议。那些鼓励的话语对我在前行的路上专注于一个明确的目标至关重要。

我花了些时间整理所有的选项,并设定了对我有用的现实目标。我需要在最短的时间内转行成功。我没有其他的收入来源,这意味着我要继续做之前的工作直到能转行为止。

我认为前端开发是初学者最容易进入同时是需求量最大的一个方向。我专注于初创公司所需要的技能而不是自由职业,这样我进一步缩小了范围。

然后我设定了最后期限。我不希望这个目标只停留在待办事项清单的末尾。2017 年的春天,我向自己承诺接下来的教学将是我老师生涯的最后一站。就是说到 2018 年 9 月份,我将不会继续做教学相关的工作。

在这个阶段我能够使一切尽在掌握中么?显然不可能的。在做出如此具有冒险的职业选择时,肯定会存在不确定性。在那个阶段和整个过程中都存在各种各样的疑问。关键是能否坚持不懈,不半途而废。一旦做出决定,我将沿着这条路走下去,看看未来将会发生什么。

image-18

学习

我明白不断进步的唯一途径就是学习。我有一份全职工作,所以永远都不可能等到有时间的时候。我必须一边工作一边学习,要么就干脆不做。幸运的是,我的妻子同时也在学习。这有助于安排我们自己的时间,以最大限度地提高学习时间。首先,我们给自己制定了一个 "周末训练营" 计划,就是说我们会花整个周末来编程。

典型的一天是这样的:

  • 8:00 am:起床,吃早饭
  • 8:30 am:开始编程
  • 12:30 pm:去健身房
  • 1:30 pm:吃午饭,休息
  • 3:00/4:00 pm:继续敲代码
  • 8:00/11:00 pm:完成一天的工作

暑期来了,我将 "周末训练营" 变成了 "每日训练营",从而充分利用了这个假期。尽管有享受夏天和放松的诱惑,我还是坚持不懈地完成了计划。

九月份,我又得回去工作了。我有意识地决定减少工作时间,接受了更少的收入以换取更多的学习时间。这也是我在转行的路上踏出的更为坚实的一步。

暂停敲代码去工作的时候,我感觉很难受,我想要回到电脑面前解决某个问题或是 bug。但是现实生活开始了,一学年的开始总是需要很多时间来准备和组织。正如其他老师会告诉你的,这些工作也占用很多个人时间。

就在那个阶段,我感觉我平常的任务要偏离原有的目标了。尽管我尽最大努力,但是我编写代码的时间越来越少了。我开始失去动力。我试着坚持下去,但是有时候就是没有时间来写。即使有明确的目标和良好的动机,生活也会使事情变得复杂。

image-19
我的 GitHub 上显示了十月份活跃度下降

然而,你可以从我的 GitHub 活跃度显示中看到,我一直在尝试。我不停地投入时间,哪怕是一小时,哪怕是读一篇文章。我做了所能做的一切来养成这个习惯。当你把一件事拖得太久,可能会失去原来的习惯。

随着 12 月的临近,眼看着新年即将到来,最后的期限也越来越近,我再次振作起来,做事变得井井有条。我开始努力工作,不管我有多累,时间有多少,我都要坚持几小时。有时我会早点起来敲代码,有时会熬夜。

这意味着我的生活几乎被压缩到只能一边做一份付房租的工作一边学习。我基本上保持着这种节奏,一直到我收拾行李搬到马德里的那一天为止。那是 2018 年的春天,距离截止日期还有几个月。

image-20

工具和资源

在一边工作一边学习编程的这 10 个月中,我的主要精力都放在了编程上面,我在 Twitter 上面被问到最多的问题是“使用了那些资源”。我写了另一篇文章,深入回答了这个问题。这里,我列一个我认为是最重要的列表(包含最重要的工具和资源)。

课程

  • freeCodeCamp相关课程
  • Udemy 上面 Cassidy Williams 、Colt Steele 的课程
  • Wes Bos 上的 JavaScript 30 以及其他的课程
  • YouTube 上面的资源:Traversy Media,LevelUpTuts
  • Lynda.com 上面 Christina Truong 的课程
  • Udacity 上面的前端纳米课程(这是一个付费课程,但是我从 Google 获得了奖学金)

仅仅学习这些课程是不够的,所以我还通过这些工具或方式来学习,进而找到工作:

  • Twitter:这是我所有知识来源的地方,尤其是 #100DaysOfCode 社区,它给了我无穷的动力和支持
  • GitHub:一个非常重要的学习工具,也是我免费托管所有项目的地方,通常这是雇主重点关注的地方
  • 个人作品集:通过构建开发项目和其他项目,我学习了最重要的开发技能

你可以在 GitHub 上面查看我的学习轨迹,其中包含我前 10 个月学习路径和使用资源的完整列表。

image-21

找到工作

令人惊讶的是,找工作对我而言并不太复杂。我没有海投,也没有花很多很多时间找工作。相反,我是有选择性并且专注的。

最后,我获得了五个面试邀请。其中一个拒绝了我,有一个未能完成,完成了其余三个并获得 offer。其中一个我不感兴趣,其余两个很有吸引力,其中之一就是我目前的工作。

我并不是对找工作不上心,实际上我不知道自己的技能是否能够胜任开发相关工作:我会不会因为经验太少而被嘲笑?那段时间我很紧张,同时也很兴奋,充满希望。当我最终获得两份心仪的 offer 的时候,欣喜若狂,简直不敢相信。

我会永远感谢那些做出决定给我机会的人。

那两家公司的面试过程很不一样。其中一个是视频电话,我可以与公司里不同的人交谈。这是一家规模不大但是实力雄厚的公司,希望建立一个新的前端开发团队。经过几周的沟通,他们给了我一个不错的 offer。

另外一家是处于高速成长中的年轻初创公司。在一次电话面试之后,我收到了一项技术挑战,需要在几天之内完成。它包含构建组件、进行 API 调用以及显示正确的信息。然后视频聊天,讨论我写的代码。然后,技术团队邀请我一起聚餐,以便更了解我。之后,我拿到了 offer 。

最后我不得不从这两家之间做出选择,这是我不敢相信的。但是我知道自己想要的是什么,我接受了初创公司的邀请。这家公司有一点比较吸引我:他们非常清楚导师的重要性,并给我提供成长和学习的指导。这点很关键,绝对是正确的选择。

就这样,在马德里的一个下雨天,我喝完咖啡之后走进了商务区的办公室,介绍自己是新来的开发人员,然后开启了新的职业生涯。

希望你喜欢我的故事。如果你能给本文点赞,我会非常高兴,你也可以分享文章,让更多的人来阅读,从中找到动力。我想继续写更多的此类文章,如果你想要知道更多以及哪方面的细节,请在 Twitter 和我沟通吧。

原文:How I switched careers and got a developer job in 10 months: a true story,作者:Syk Houdeib