自学编程8个月后,我拿到谷歌的软件工

北京皮肤科哪家医院好 http://baidianfeng.39.net/bdfby/yqyy/

找工作期间我曾拿到谷歌、网约车巨头Lyft、最大的点评网站Yelp、云计算独角兽Rubrik、IBM人工智能部门、摩根大通等公司的offer。如果你正在找软件工程相关工作---特别是非计算机专业背景的人们——我希望我的故事可以激励你。

简介

你可能会想:怎么可能8个月就做到?

在这篇文章中,我会详细介绍我的决策过程和思考过程,也会提供更多的阅读资料。

首先,我必须承认,很多因素赋予我很大优势:我是个白人,直男,本科就读于美国排名前20的高校,旧金山湾区工作的三年也让我积累了自己的人脉。

每个求职者的故事都不太一样,希望我的故事也能对你有所启发。

决定冒险

年7月29日,我做了一个不理智的决定。

当时我面临着两个选择:一是去一家快速增长的广告技术公司担任办公室主任,二是参加编程训练营。办公室主任的薪水颇丰,发展稳定,似乎还是进入硅谷工作的快速通道,而编程训练营看起来代价又高、风险又大。

6月24日,也就是做决定的5周前,我才用JavaScript写下了我的第一行代码,但也并没有成为一名工程师的打算。本科时,我读的是经济学专业,过去三年在一家非营利机构做非技术管理咨询的工作。在湾区,有些职位要跟工程师一起工作,学代码只是因为我想让自己应聘这些职位时更有竞争力。

事实上,成为一名工程师像是天方夜谭。尽管我之前听说过许多人用一年时间通过编程训练营自学了编程,但我还是很难相信自己也可以达到同样水平。

据我了解,大多数工程师本科专业就是计算机科学,他们有着多年的工作经验,还会讲一门外语,我怎么能在这么短的时间内学会这么多东西呢?另外,要是我选择学习编程,我就要换行,为一个不确定的回报冒这么高的风险,值得吗?

办公室主任一职,则更像是梦想实现了:薪水比预想的要好,而且公司正在筹备不久后的收购计划,我将参与这一计划,几年后我也有望管理自己的部门。

但是,开始编程后,我就不想停下来。我热爱技术挑战,喜欢迎难而上。我还发现,发展第二个专业技能让我做足准备,准备开启一段不平凡的有影响力的职业生涯。

我内心里也有个声音在问:成为一名工程师会不会既能提升专业度,又能完成个人转型?如果我能学会编程,有什么是我学不会的呢?正是这种学习态度,支撑我坚持走完了整个旅程。

我选择了线上的编程课,连续三周每周编程时间不低于40个小时,之后我向HackReactor(被誉为“编程训练营中的哈佛”)提交申请,想试试看我是否能成为其中的一份子。侥幸通过测试后,同一周,我拿到了办公室主任的工作offer。

思考了72个小时,我最后再次查看了自己的银行账户,算了算HackReactor项目结束后,我可以支付三个月的房租和生活开支。我想,三个月时间足够我找到工作了。

于是,我选择了编程训练营。

我给广告技术公司打电话拒绝了他们的offer。挂断电话后我的情绪很复杂,一方面我很害怕:我可是为一个疯狂的决定放弃了一生仅一次的工作机会!另一方面我又激情满满:为了不让自己后悔,冒险前进吧!

没过多久,我的激情就消耗殆尽了。不过再没有回头路了:我已经踏上了冒险旅程。

学习编程

“你不必一开始就优秀,但你要开始变得优秀。”—ZigZiglar,国际知名演说家、作家

HackReactor和其他一些编程训练营都力求在三个月内完成传统大学计算机科学专业需要四年才能完成的教学任务,以让学员具备竞争一线软件工程工作的能力。

目标很宏大,所以得分秒必争。三个月的课程安排中,一周6天,一天上12-14小时的课,时间很紧,所以我们每天都要做大量任务。

每次收到任务时,我都会心里一惊:这根本不可能在截止期限内完成!我连从哪儿下手都没有头绪。但很神奇,每次到截止期限时,我总是能想出来或基本想出来一个解决方案。

经历足够的震惊与不可能之后,我开始感到一丝丝的激动:挑战看起来有多不可能,找到解决方案的时候就有多心满意足。

HackReactor不仅仅教授编程知识,它还会教给我们咬紧牙关坚持的精神,以及成长型思维,过程十分令人激动。

我仍然怀疑自己是否能在存款用完之前找到工作,于是我养成了最好的学习和生活习惯。

充足的睡眠才能保证学习效率,所以我规定了严格的睡眠时间。

为了缓解经常性压力,每隔一天我都会锻炼身体促进健康、支持学习。

为了提升记忆力,让每一天的学习都比前一天有进步,几乎每天晚上我都会复习核心课程,思考哪些事情做得比较好,哪些还不够好。

最重要的是,为了在一个如此紧张的安排中保持基本健康水平,每天早上上课之前我都会花一个小时来做禅修和慈爱冥想。

有的人可能会对最后一个习惯感到惊讶,但是有充足的证据表明“冥想能改善健康”,尤其是慈爱冥想。它帮助我保持对编程学习的好奇和愉悦,缓解了我面对编程学习挑战和工作的不确定性时的忧虑,对我来说十分有价值。

因为交通问题,我没有选择面对面授课。所以尽管我离校园步行只需十分钟,我仍然选择了网课。因为我上课无需通勤,吃饭方便,公寓环境十分安静,所以,我每天多出了90分钟不被打扰的深入学习时间。

刚开始的6周,有两天是在未完成代码库的基础上,进行结对编程冲刺。两天时间里,我们重写了JavaScriptUndercore库,从零开始建立了基础数据结构,学习了面向对象编程和函数式编程,计算了时间和空间复杂度,构建了一个包含从客户端到服务器端到数据库的全栈应用。我们组有24人,每天视频会议时间不下10小时,逐渐成为朋友,可以互相开开玩笑。

学习了三周以后,我担心我可能不会通过中期考评,所以我给未来的自己写了一封信,告诉自己要想通过考评需要如何做。

我提到了我现有的生活和学习习惯,又增加了一些新的习惯,比如,如果没有能力在脑海里给一个虚构的小女孩(费曼学习法)解释核心代码,那就要复习这些我没有完全理解的代码,直到有能力给她解释为止。

3周以后,在24小时内,我从零建立起了自己的第一个全栈应用,出色地通过了考评。大学教育十分重要,但这里的教育是另一种体验。

第二个6周里,有更多的自由形式小组项目。我从正向偏差中汲取灵感,追随着训练营营友的步伐,跟他们进行了交流。这些营友找的工作都十分成功。根据他们的指导建议,我设定了严格的deadline以应对巨大的技术挑战,在求职市场上挑选出最受欢迎的职业技能,例如能使用Docker和微服务系统工作,在不同的项目中扮演不同的角色。我还请一个营友对我进行了一次辅导,我用两天时间成功运行一项新性能,这位营友刚开始却花费了数周时间。

HackReactor会从每支队伍的毕业营员中雇佣一些作为短期兼职助教,来支持全职员工的工作。毕业以后,我在这里担任了6周的助教,每周工作35个小时。工作内容包括:帮助制定课程安排、进行独立调研、基于调研结果帮助在找工作的营员、面试前来应聘的候选人等。

我跟训练营负责人商量只做6周的助教,而不是通常的12周。助教工作让我接触到了新的课程,同时也让我兼顾找工作和全职学习两件事,没有太多耽搁。非常感激能在助教工作中学习,助教工作确实进一步加深了我自己的学习,开出的薪水也足够我两个多月的开支,极大地缓解了我的压力。

求职旅程

给我工作offer的公司

12月7日,距离我写下第一行代码已经过去了天,我的HackReactor训练营也结束了,剩下的存款还够我承担4个月的房租和生活开支。训练营告诉学员要预留6个月的时间来找工作。倒计时正式开始!

即使困难重重,我还是想要放手试一试,所以我给自己制定了以下目标:

拿到的薪酬在训练营排名要在前25%,目标是年薪超过12万美金工作尽可能具备最刺激的学习体验,希望职位既能让我充分发挥主观能动性,也有机会接触到行业大牛工作团队和公司的文化以技术为重,同时要以人为本工作要有趣也有意义要做后端开发工作,至少要是全栈开发(大多数训练营毕业生都是从事前端开发工作)

我从未设想过我的目标能全部实现。我知道找工作一定会像过山车一般跌宕起伏。

通过在HackReactor这段短时间的学习,我的基础并不扎实,但是在去一流公司面试之前,我还有几周时间可以全心学习。

而且,我可能会面对数不清的拒绝。尽管有调查显示,在面试中,训练营学员跟四年计算机专业科班出身的学生表现一样优秀,大部分公司仍然不愿意聘用从编程训练营毕业的学员。软件工程面试中牵扯到的话题范围特别广泛,这也让我根本没办法面面俱到地准备。

等到求职之旅终于尘埃落定时,我总共申请了44家公司,其中41家是熟人帮忙介绍的,遇见了14次或编程挑战或技术电话面试,其中有8次进入了现场面试。截至年2月15日,我共收到了7个offer。这距离我写下第一行代码,已经过去了天。

有16%的工作offer都是在我第一次写下代码8个月后拿到的

开始找工作,从失败中汲取教训

“学习不是偶然获得的,必须保持热情,勤于钻研”——AbigailAdams,美国第一夫人

刚开始找工作的几周是最艰难的。12月一整月,我只获得了几个编程测试机会,只拿到了IBM人工智能业务部的面试机会。

前两个编程测试的反馈就不如人意,我做的时候超时了,还被告知我的代码“准确性不够,性能也不够高”。

第三个编程测试有几个小时的时间,但我仍然心跳加速。我在时间结束前几秒完成了测试,却没来得及点击提交!

我告诉自己量变才能引起质变,现在我需要积累。每天早上一个小时的慈爱冥想结束后,我都会花一分钟提醒自己两件事:

第一,目标确实给人方向。但如果只



转载请注明地址:http://www.henanledxianshiping.com/rjkfjh/20524.html
  • 上一篇文章:
  • 下一篇文章: