小心 5 个误区,成功转职前端工程师

2022年12月2日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

因为过去分享过自己的转职前端工程师的经验,以及转职后顺利拿到 FAANG 工程师 offer 的经验,陆陆续续有收到读者询问关于转职工程师的事宜。其中很常被问到要如何转职成功,所以想说与其一一回答,不如整理一篇文章给有想要转职的读者朋友们。以下五个点,是我根据自己转职经验、看到身边其他转职的例子后整理出来,推荐大家要避免的误区。如果你能避免下面提到的问题,相信会更有机会成功转职。

误区 1 — 看一堆教材影片但不实作

假如你过去完全没有程式背景,但想要转职前端工程师,从程式学习影片开始是个不错的选择。然而,你不应该只停在看教学影片。写程式是非常实作导向的,换句话说假如你读了一堆学习的教材、看了一堆程式教学影片,但是始终没有开始动手实作,你将会很难把程式学好。 Ping Lab 创办人 (前 Twitch 工程师) Theo 曾经用「教材地狱 (Tutorial Hell)」来形容这个现象。试想今天你要学游泳,你可以看很多游泳教学的书籍,也可以看很多游泳比赛的影片,但假如你不实际下水去练习,看再多影片都没帮助。这边不是说读教材不重要,而是不能只是读教材但不实作。就像游泳选手也会不断钻研游泳技术,但不会有游泳选手只钻研技术但不实际练习。所以,务必学了一个概念后,就一定要练习与实作!

误区 2 — 没有个人专案

上一点提到不要只看教材与影片,学程式一定要实作。但实作的方式很多种,你可以跟着某个影片实作,这是好的开始。但当你已经有这种手把手跟着影片做的经验后,请务必要有个人专案。举例来说,做一个简单版的 Twitter,或者简单版的 Airbnb。现在 YouTube 上面有蛮多这种个人专案的教学影片,但强烈推荐不要只是跟着影片做。因为假如你都是跟着现成的影片做,你将会失去培养解决问题能力的宝贵机会。

解决陌生问题是程序员非常重要的能力之一。面对一个过去没做过的功能,你需要先分析这个功能,拆解功能成不同的子功能,最后发想实作的方式。在过程中你可能会卡关,这时你要练习与培养如何有效搜寻解答 (练习问对的问题)。如果只是完全跟着影片做,将会失去学习这些的机会。因此,即使在网路上找得到别人录制好的简单版 Twitter 实作影片,也建议你先自己试着做,真的某个功能卡关时,再去看那些影片。

个人专案除了培养解决问题的能力外,更重要地是,如果你的个人专案如果做得好,放在简历上是非常加分的。试想,假如你只是跟着某个影片做一个 To-do List,其他一样想转职前端的人,多半也都做过这种入门的专案。假如你的简历只有放这类大家都做过的专案,将会比较难在简历海中脱颖而出。有个特别的个人专案,不仅让你的简历能更受青睐,在实际面试时,你也会有更多故事可以讲。

举例来说,被问到「你遇过最棘手的技术问题是什么? 你是如何解决的?」假如你只是跟着影片做,可能做下来都不会遇到什么问题,因为影片中的讲者都把知识内容包装好,所以一切都很顺。这反而让你在面试时,没办法有故事可以说。但假如你是做个人专案,你就可以分享你如何解决某个陌生问题的过程。有这类解决某个技术问题的故事,会对面试很有帮助。

误区 3 — 广而不精

在入门学程式时,会比较推荐专注学好一个程式语言。不同的程式语言,虽然语法与语言特性会不太一样,但许多模式 (patterns) 是可迁移的。有些人在初学程式时,学 JavaScript 之余、又学 Python,又学个 Java,这样看似同时会很多语言,但反而会让你没办法学得足够深入。许多核心或进阶的概念,是需要投入足够多的时间在同个语言上,才会慢慢领悟。如果想要转职前端,那就先把 JavaScript 学好,然后选一个框架 (例如 React 或 Vue),然后把精熟该框架。在你足够精熟前,不要再去碰其他语言或框架。

很多人会担心说,只会 JavaScript 求职上会不会比不上那些会多个语言的。假如以初阶的前端工程师来说,这个问题是多虑的。会 JavaScript 加一个主流框架,基本上就会有足够多的职缺机会。假如你真的想探索其他框架的思考方式,或想多了解不同语言,这种想多学习的心态很棒,不过请先等你已经精通 JavaScript 后再做。

误区 4 — 遇到困难就放弃

很多人转职没有成功,不是因为没有天份或是没有方法,而是因为遇到困难时放弃。只要你还没有放弃,就不算转职失败。这段不是要灌读者鸡汤,而是要想说,除非你是程式天才,不然学程式的过程一定会遇到很多卡关的时候。而一个人能不能转职成功,往往决定于遇到这些卡关时,你能不能坚持下去。要拿到初阶前端工程师工作,需要的知识没有像造火箭那样困难,假如某个概念弄不懂,多看不同人讲解的,或者休息一两天后才回来看,最后一定能弄懂。

更有什者,很多时候程式迷人的地方要在峰回路转后才能感受到。以笔者为例,我当初从 JavaScript 要进一步学 TypeScript 时,一开始有非常非常多的挫折。每写一小段,TypeScript 的编译器就吐出几个错误,即使当时我已经转职当前端工程师一年了,我遇到那些错误时,还是怀疑自己到底会不会写程式。但是随着我慢慢熟悉 TypeScript 后,我慢慢地感受到静态型别的好,我开始珍惜编译器会帮我看到我自己忽略的错误。在用 TypeScript 半年后,我有机会去协助维护一个用 JavaScript 写的旧专案,那时我边写边抱怨「这个型别是什么呀?」,我才意识到,自己已经离不开 TypeScript 了!

分享上面这段是要讲,假如我一开始因为学 TypeScript 的挫折就放弃的话,我最终会无法体会到 TypeScript 的好。所以假如你现在因为某个功能写不出来的话,再多坚持一下。坚持下去终会转职成功,也终将能体认到程式的美。

误区 5 — 没有好好吃饭睡觉运动

OpenAI 的 CEO (同时也是 Y Combinator 的前总裁) Sam Altman 先前写了一篇[回顾人生的重要学习](https://blog.samaltman.com/the-days-are-long-but-the-decades -are-short)反思,他的其中一个重要体悟是 Exercise. Eat well. Sleep. Get out into nature with some regularity. (运动、吃得好、睡眠,适时亲近大自然)。这一个体悟看似平常又简单,但这真的是非常多人会忽略的。笔者认为对于学程式、转职工程师,要能够成功,照顾好自己的身心状态是很重要的。假如你正在转职的途中,除了冲刺学习与实作外,务必确保自己有照顾好自己,确保该吃饭时吃得健康,确保有充足的睡眠与运动,这些基本但重要的基底,是能让你走得长久的关键。

最后,假如你把基本的前端知识都弄懂,也做出了个人专案。下一步就是投简历与准备面试。关于前端面试,ExplainThis 上面有我们整理的常见问题与简答笔记,推荐给正在密集准备的你(点此前往) 。祝每个在转职路上的你,都能顺利发展出最适合自己的职涯 🙂

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們