作者:cyan
链接:https://www.zhihu.com/question/309666864/answer/578185965
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
今天看到
@Cat Chen
猫陈老师回答这个问题,很受启发。实习刚结束半年,回忆一下子涌了回来,心血来潮也想分享一下自己的经历。
我仔细阅读了这个问题下的大部分的答案,觉得大家都回答得非常好,很到位。尤其是我实习过后再读起来,更能体会大家所言的个中含义。有很多回答提到的点,我觉得当时自己实习前如果能看到的话,一定会至少有个心理准备,甚至少走一些弯路。
我想跟大家分享我实习的两个片段:team match 和实习渡过困难期的阶段。
一、
从拿到前端实习的 offer 开始,到四月 team match survey 大概有四五个月时间。在那个时候我已经算是一个有一定经验的 React 的开发者了。之前实习的时候一个外国同事告诉过我一句话,”The laziest people send their resumes and wait for responses.” 聪明的人都会提前做好功课,利用好自己的人脉。过去的一年我一直在 twitter 上密切关注 React core team 几个人的动向。也正是因为 React 是开源的,所以自己一直有机会借助这个话题在 twitter 上跟 team 的几个人互动,学习 React 的源码,诚恳地请教问题,帮助改进文档,甚至提交 PR。甚至在这之前的面试,我每次的自我介绍也是从 React 谈到开源,谈到我自己的态度和做出的努力。这样一来,在自己力所能及的范围内,不仅提升了自己的知识水平,也会给他们留下或多或少的印象。说起来,虽然 Facebook 是 React 的最大“用户”,但是我当时倒没有觉得想说“学习 React 是为了准备实习”,而是因为我真的喜欢这个东西。
后来 team match survey 下来,看到有 React core team 的选项的时候我脑子嗡了一下,因为自己从来没想到现在有一个 option 可以在自己的 dream team 实习。我当时不假思索把这个选项选了 “Extremely preferred”,然后象征性地勾了另一个 preferred,其他全部是 Not preferred。提交上去之后我就冥冥之中有种感觉会中,果不其然过几天就在 Twitter 上收到了 Andrew 的私信,说很高兴我能加入。
知乎上做前端的同学很多,我觉得大家能理解我当时的做法,毕竟是 React,毕竟是 dream team。当时脑子一热,就做出了这个大胆的决定,从来没有考虑过“哪个 team 拿 return offer 更容易”这种问题,因为我自己心里很清楚,如果不这么选,一定会后悔一辈子。
后来我在实习期间遇到了很多困难,也一度抱怨说来这个 team 实习压力好大。但是我从来没有后悔过当初做的决定。到后来每次遇到困难的时候,每次担心自己会不会错失 return offer 的时候,我总是用一句话来安慰自己:“勿忘初心,想想自己为了什么而来”。
现在看到很多这个回答下的前辈说每个 team 的难度也不是固定的,不能一句话说死。还是建议大家自己做好功课,看看每个 team 做的什么业务,抛开拿 return 难度这个问题,选一个自己真正喜欢的、感兴趣的。
二、
后来我在这个 team 实习的时候,遇上了很多困难。一方面,自己的能力和经验和队伍里的其他成员差距很大,进度比较慢;另一方面,React 属于 infra team。从 impact 这个角度上来说,infra 的 impact 可大可小,如果是一个影响大的功能的话,确实有很大 impact。但是有时候很多的时间和精力被用来 fix 一些 bug 或者 issue,不像业务一样有具体、直观的成果,甚至不足为外人称道。但是后来我在努力克服渡过这个阶段的之后,还是收获了很多。分享给大家一些我的小 tips:
- 做一件事情之前,一定要知道自己为什么在做这个。这个东西对于你整个 intern project 起什么作用?它有怎么样的 impact?如果你不知道你在做这个东西的理由,问你的 manager。一定、一定、一定要有目的性。
- 调整好心态,调整好心态,调整好心态。结果很重要,但是不要让对不好结果的焦虑把你压死。该吃吃该喝喝。一杯奶茶不行就两杯。
- 每个人都会有 imposter syndrome。自信点,别人也在 fighting a battle。
- 没必要跟别人比,做好自己的事情就好。
- 代码量一定程度上说明问题,但是也不能完全反映出你的成果和能力。还是那句话,做事情前先想想为什么。
- 别怕沟通,你不问人家以为你都知道了。
- 但是,过分地依赖别人、请求帮助也说明你自己功课没有做够。每次问比人问题之前,先做好足够的研究。到最后问问题的时候,保持礼貌,提供足够的上下文,考虑一下别人的感受,先把问题在自己心里复述一遍。如果有的话,提出一些自己的看法。
- 除了写代码,要重视写文字的机会。写注释,写文档,在 workplace 里回答别人的问题,等等。
- Build a growth mindset。当你的 manager 说出你的缺点和不足的时候,觉得受打击是正常的。但是尽量试着把它看作是自己一个成长的机会。在接下来的阶段努力去进步。
- 不能解释自己的代码的时候,就不要提交。Trust me, it’ll come back at you.
- 工程师的任务是“解决问题”,“写代码”是解决问题的方式,不是目的。
- 最后的最后,think about the bigger picture。拿到、拿不到 return offer 不是一个天上一个地下。
实习结束已经半年了,回想自己最大的收获,更多的在于心态和沟通这个层面。这三个月跟世界上最优秀的工程师一起工作、进步,身体力行地感受到了 FB 工作的节奏和脉动,真的很喜欢这种“务实”的风格。最后分享给大家一个很厉害的前辈说的话:
“Growth feels like pain, when it’s happening.”
FB 见啦!
祝大家新年顺遂