接上文,决定了要当一个前端开发工程师,那么应该怎么做呢?

找工作

人生最怕没有目标,一旦有了目标,生活就有了动力。

在确定了自己要走前端开发这条路后,我反而心态放松了许多,因为自己有了明确的目标,虽然还是很迷茫。因为彼时的我才刚入门前端开发半年时间,期间完全靠自己在网上找资料自学,身边也没有其他小伙伴一起,可以说那个时候的我真的是一个人在战斗。

接下来的日子,我开始边学习边找暑假实习,每天基本上只要没课就泡在图书馆了,那个时候的我对前端知识饥渴到只要看到书名和Web、JavaScript沾边的,就一定要去借来翻一翻,觉得不合适的就放回去继续下一本。每天从图书馆回来看到室友在打游戏开黑,自己心里也会有抑制不住想加入他们的冲动。但是理性告诉我不行,我和他们的目标不一样,要找到心仪的工作,我必须努力先找到实习,加强自己的经验。

然而,事与愿违,那段时间成了我最痛苦的一段时间。

因为之前完全没有任何项目经验,都是自己小打小闹,一个人摸索。去实习面试的时候别人一问到项目经验就懵逼了,再加上自己内向的性格,有时候语言表达不够清楚,刚开始面试的几家公司是屡战屡败。

接二连三的面试失败让我萌生了想要放弃的念头,怀疑自己到底能不能找到实习,找不到怎么办?到时候校招没有实习经验别人更加不会要。但是,还好我及时调整了心态,当时也是去知乎、v2ex等论坛翻看各种前人经验和鸡汤来鼓励自己。我当时就是有一种不信邪的劲,为什么别人能找到实习我不可以,我又不比别人差。

调整了心态后,我开始把面试当成打怪升级的过程,每一次面试后都进行总结,把问到的知识点都记下来,回去一个个消化。基础不好就补基础,没有项目经验就去看别人的项目怎么写。由于时间有限,短时间我不可能去生造一个项目出来。于是我采取了两步走策略:主要是看各种前端开发面经和面试题,一个一个地看,强化自己的知识点;同时,根据网上推荐的前端书籍去图书馆一本一本地借阅,慢慢补基础。

就这样,我的实习面试慢慢变得越来越好,不再是一面挂、二面挂。腾讯的暑期实习面试更是走到了最后,HR面都面完了。正当我觉得腾讯的面试稳了(因为HR面基本上不会挂人),老天爷给我开了一个玩笑。

因为觉得腾讯稳了,所以后来的面试我也就比较随意,也没有再去投更多的公司,现在看来是个严重的决策失误。一直等到五月底,腾讯实习面试结果都没出来,那个时候我才知道,我凉了。在那个时间点,好的公司暑假实习基本上早就招完了,有的甚至已经开始实习了。我只能匆忙投了几家小公司,甚至去学校的实习双选会碰碰运气,然而由于心态的变化,最后都渺无音讯。

一般人这个时候肯定慌的不行,我也不例外。我无数次地问自己,自己的选择到底做对了吗?我是不是该和大多数人一样去考研,以我的成绩,要去考肯定能考上的。但是,我读研到底是为了什么?我问自己。首先,我不喜欢读本专业,如果要读研的话我肯定要转计算机专业,但是现在学专业课已经来不及了,很有可能考不上。再者,即使读了计算机专业,但是我想当前端开发的话,读研对我的提升真的比工作大吗?我得出的结论是,工作对我的技能提升更快。我并不是说读研不好,没有用,而是在我看来,如果读研不能更有效地帮助我提升自己,只是为了一纸文凭的话,还不如尽早工作。我不想让读研成为自己能力不行、逃避工作的借口。

但是,这个时间找实习已经来不及了,我该怎么办?我仔细总结了到目前为止自己的优劣势,发现自己最大的缺陷就是缺乏实际项目经验,找实习的目的也是为了增加经验,那么,我为啥不自己写项目呢?虽然可能体验不到公司那种多人协同开发,但是总比没有经验好。于是我开始在GitHub上找项目,去YouTube上找教程,自己从零开始模仿着写。慢慢地,我开始沉下心来。

到了暑假,我每天给自己安排学习计划,上午看JavaScript书,中午看会CSS、HTML,下午写项目,晚上去牛客网刷会题,对知识进行总结。就这样有条不紊地进行着,我反而没那么着急了。

后来的事就开始顺理成章,我的项目经验慢慢丰富起来,简历上能说的东西也多了。到了正式校招,我陆续投了几家公司,没想到这次运气眷顾了我,我拿到了网易杭研院的提前批offer,于是我在网易开始了正式的程序员生涯。后来机缘巧合下又加入了微信。

回顾

回顾我是如何一步一步当上程序员,和那些拿ACM奖拿到手软、大厂实习经历丰富的大牛们来说,可能显得有点平平无奇。但我想表达的是,想当程序员并且进一家还算不错的公司其实没那么难,纵观我的经历,没有竞赛拿奖经历,没有工作室经验,没有大厂实习光环,最后一样拿到了大厂offer。

其实关键在于,你有多想当程序员,你有多热爱你的事业,你有多大的决心。如果只是单纯的认为程序员工资高,觉得程序员很容易当,那我劝你还是迟早放弃这个念头。

金融、销售等等行业工资一样高,做得好不会比程序员差。相比较之下,程序员反而显得更加枯燥,它需要一个人长时间坐在电脑面前思考、敲键盘,对人的精神和身体都是极大的考验,所以没有一定的毅力和热爱,很容易就会放弃。

但我不是说当程序员不好,而是在当程序员之前得想清楚,自己的目标是什么,自己到底有多大的决心。不管是为了梦想也好、钱也好,都必须有个明确的目标,并且持之以恒地坚持下去。

程序员是个需要终身学习的职业,或者说没有哪个行业不需要学习。所以,当你一旦确定要当程序员,最好的方法就是,确定目标、制定计划、行动起来!

最后,附上自己当时校招找工作时看的部分书单:

  • 《JavaScript高级程序设计》——必读

  • 《你不知道的JS》——强烈推荐

  • 《CSS禅意花园》——学习CSS很有用

  • 《JavaScript设计模式》——对代码质量提升很大

  • 《高性能网站建设指南》——了解网站优化

  • 《响应式Web设计全流程解析》——响应式布局、网页设计