Intern Plan List
这里总结下自己在这个实习中想实现的一些目标和注意事项。主要参考了这么三个帖子,
- 当我带实习生的时候我在看什么?
- 提供FB Internship的实例以及建议
- 给亚麻Intern的一些建议
- 从mentor角度聊一下北美大公司实习如何不踩坑
- 亚麻实习感受 — 以及一些经验和教训给学弟学妹们
- 记一段很虐心的亚麻秋季实习经历 + 转CS 拿到Dream Company Offer的神奇经历
实习的计划安排
首先是trust。
对于intern来讲,一旦project被卡或者进展不顺利,第一反应肯定是被坑了。同时,如果mentor经验不多,也会怀疑是不是intern不给力(极少数会觉得自己的proposal渣)。尤其现在都是remote intern,这时候如果两边互相怀疑/背后抱怨,那基本上即使intern project能做完但是对intern本身也是一个很难受的经历。一个intern proposal能够从大量的proposal里面杀出来最后被选中肯定有它的合理性,而且mentorship也是mentor试图证明自己hire and develop the best的最好机会,所以mentor肯定会设法让project完成并且帮intern拿到return offer。
我的建议是应该保持和mentor daily或者至少2-3 次一周的讨论,把project的进展document准备好,并且对不懂的东西及时提问(不管是找mentor或者找组里其他的IC甚至是其他intern)。时间不够可以缩短一点,meeting的时候说重点,其他的放在email update里面。
另外一个是ownership。
intern是这个project的owner,mentor帮助你理解和完成这个project。如果project遇到了和设想不一样的情况,intern除了大胆的质疑之外,也应该主动和mentor沟通GAP,搞清楚是可以给出alternative solution,还是降低expectation,或者是要求更多的resource。不管怎么样,intern应该设法push mentor帮助你deliver一个完整的solution;并且让manager知道里面的情况(很多时候manager更加清楚应该如何取舍)。平时聊天的时候,最好能多问问组里其他人都在干啥,谁是哪一个方面的owner,并且主动去schedule 1 on 1 (尤其是IC或者小的ppl manager)去了解他们做的东西还有与你这个project的overlap。在science组里面,会有非常多的talk 和discussion,如果不是confidencial的话也建议都去参加,并适当的提问(问题本身不要紧,但是注意控制时间并清楚表达)等到internship结束的时候,这些人都可能做为成为你的feedback provider (所以也及时和mentor说你和XXX讨论了啥合作了啥)。
Delivery。
internship的时间其实非常的紧张。进来之后大概4-5周就该准备mid-term defense,而往往这个时候只是把该踩的坑踩完。。。最后还需要准备intern的document,wiki page,poster,final defense等等。所以,一定要和manager还有mentor尽早讨论清楚,你至少要deliver 啥东西,哪一个部分是最有可能做到,哪一部分他们自己都没有想清楚的。千万不要随便同意mentor说要多加啥东西增加impact之类的狗屎建议。尽快开始写document和PPT的框架,只要起头了,后头改起来就会快很多。组里一般都有以前的intern document和PPT,早点问来看看长啥样,哪个是做的比较好的。
Mid-term的时候被打脸的点一定要记录下来,在final defense的时候说清楚你是怎么解决的。
- Making Sure Everyone is on the Same Page
操作:在实习刚开始的时候以师傅给出的proj scope为基准,写一个milestone doc,拿给senior review,确认后,跟老板一对一的时候拿出来给老板review。
细节:在跟老板聊之前跟senior聊很重要,senior会是你确认proj技术细节有没有超纲/mentor没有喝假酒/milestone有没有离谱的重要资源,也是你下一步说服老板不要造变形金刚的资本。
doc需要包括:为什么要做这个东西(impact),milestone & timeline,risk(即做不成的risk或者可能的难点)等等,不要写太长不需要技术细节,最多两页。
- Having Regular Sync up With Senior
操作:适时地找组里的带头大哥sync up。
原因:很简单,大哥会给你写feedback。组里的带头大哥和师傅会是老板摄取feedback的重要来源。师傅如果没有喝假酒的话一般都会尽全力保你,那么大哥的话就至关重要,更何况大哥的话语权>师傅。
- Asking (right) Questions Around
操作:别就逮着师傅问问题,其实全组都是你师傅。
原因:在一些比较忙的组,师傅可能并不会因为带intern被多分配时间,而且intern一般都会有很多问题->是人都会被问毛的->如果师傅不懂如何引导intern去问别人,毛了可能会找老板吐槽。
细节:适时地问一下其他组员问题,辣鸡setup问题问其他刚来没多久的,他们也熟。高级问题问sde2/大哥,别怕问,但也要善用internal search。
- Speaking Up If You Don’t Know
操作:不懂就问,不懂就说。
原因:不懂装懂是要付出代价的,先把对方对自己的期望调低,再把东西做出来印象会更好.
工作态度
Good Things
-
按时完成给的每一个大小项目。
-
独立性很强。当项目有一定不确定的地方时候,他会自己首先在公司内网上查wiki, 自己看组里的code和一些包的源码。仍然有不理解的地方,才会问mentor。不当伸手党。
-
每次都多做一步。实习生每两周周一会给大老板汇报一次进度。
-
非常愿意帮助其他的实习生。
-
Show visibility
Bad Things
-
不愿意做简单项目。
-
依赖mentor debug
-
对新技术和新知识没有好奇心。
-
忌back and forth! 忌back and forth! 忌back and forth!
我知道的很多没有拿到return的同学原因基本都是project没做完。没做完的原因基本都是在项目做到一半的过程中遇到了 严重的错误/强力的干扰 从而把之前做完的推翻然后重来。 这就是我们口中所谓的“被别人坑了”,不是intern不努力,而且之前的努力白白浪费了。 一遇到这种情况,return就很危险了。
为了预防这种情况发生,在之前design的时候,下足功夫。其实design的部分不应该是intern做的,而是你的mentor做的。抓住你的mentor,和其他跟你的project相关的人,在design meeting的时候好好讨论。 然后达成commitment! ! 一旦达成commitment,之后有人再跳出来想要你进行大改动的时候。你就可以有底气的说“Sorry, 我们之前已经决定好要这么做了”。
-
学会 say no
当你发一个CR之后,你会收到100条comments. “我觉得你这里可以换种方法”“我觉得我们需要增加一些feature”, “我们这里需要improvement”。学会say no! 你的实习时间就12周,你的项目scope就是画个鸡蛋,把他们的建议都采纳了,你的scope已经变成画只母鸡了,你还做的完吗?
这时候你就说“Thank you for your advice! But I really have limited time and I have other tasks that are urgent/ have higher priority. I will definitely put your advice into backlist and look back to it when I finish xxx….” 然后他们的建议就放在backlist了,然后就再也没有然后了。 在未来,这些就变成下一个intern的任务了。
亚麻家13条军规里面就有一条“Have Backbone”. 对不合理/不重要的要求要勇敢say no。
-
学会push别人
我做的第三个PJ生死权在德国的一个组里,我为了跟他们搭上话晚上定一个3点钟闹钟再定一个5点钟闹钟。我那时候时间已经很紧了,但总是被他们block。于是就不停push他们。我push不动就去叫我mentor push, 我mentor push不动我就CC manager。 到最后实习结束我push别人的能力得到极大提升,以至于我在我身上看到了日后当manager的潜力(大雾)。
-
搞好跟manager的关系
不需要过多social或者任何flattery words。你只需要做一个听话、努力有朝气的intern就好了。关键是,respond你的manager一定要及时,他交给你的任务火速完成,让他看到你的行动力。多跟他update你的情况,每次1 on 1都问他“ Am I on track of the return offer?”。是的,每次都问,don’t be shy。他会给你关键的feedback,之前我manager会回回答“需要看你项目完成情况”并且给我一些建议,到了后期他已经会慈祥的看着我说“YES”。
Mentor/Manager 在观察什么.
-
Learning Ability 这是最重要的没有之一,招的是个intern不是tech lead,呼应上文,没必要说自己啥都会,恰当的露出自己的短板并展示自己的成长重要的多的多的多。
我做师傅的时候也会提醒我的老板,新来的实习小哥以前不是学cs的之类,cr一开始改了快10版 到最后能中小型cr一次过 这就是闪光点,我给写feedback也会着重写成长。
-
Daily Standup 这其实算是对没有职场经验的新人的一个日常考验。怎么说把这个说明白(以及适当地摸鱼给自己留有弹性)是一门学问。这里不展开说,可以另外搜搜资料。
每天上来standup说的英语烫嘴实在是日常减分。我实习的时候会头天晚上洗澡的时候自己跟自己先说一遍,至少先能说服自己吧。
-
Communication Skill
同上,至少要能把自己的proj讲明白,1:1被老板challenge的时候讲明白(适当结合白板画图讲得更清楚)---这很重要。 很多同学关心是不是需要跟组里所有人搞好关系。这可能跟从小教育的跟所有人搞好关系不大一样。 我和老板探讨过这个问题,在我们看来完全没必要,你也完全没必要了解组里其他人在做什么(可以适当地表达兴趣,然后听完就忘),把手头的proj做完就完了,每个人都有不同的性格我们也尊重每个人的性格和社交选择。
-
NO Surprise (两个方面) 1. 当你对你当前项目/进度/得到的帮助或者其他有任何不满。先跟师傅沟通,不要“越级”escalate到老板那,因为最终老板会去问你的师傅。 老板对你师傅的信任肯定是大于一个小实习生的,不要造成不必要的麻烦, 特别是很多时候我相信实习生的concern应该是合理的concern,师傅需要帮助你把话说圆了,并且说服老板。
2. 当进行任何不熟悉的改动操作先跟组员确认,有重大改动要push出去现在chat room里吆喝一声。一方面增加visibility一方面防翻车,不要一顿改config/deploy过了半分钟听到你们组的oncall在自己的座位上wtf...
-
Actively Giving Contribution (bonus point)
完成自己手头的项目之余,我会期望实习生能对项目之外也有impact。最简单的一点就是随着team service的更迭,setup肯定会有变化,实习生肯定会“踩坑”肯定会出现按照说明书也搞不定的情况,不要抱怨,想办法figure out,最重要的事完成之后记录在wiki里,并且告诉全世界:我把这个wiki给改了,你们以后的new hire可要舒服的不行了。 这是一个最简单的例子,想办法延伸这一点。再举一个例子:我实习的时候可劲的在内网类似stackoverflow的找能答的问题答,最后攒了个几百分。给老板聊到这个,大概就是“无它 我就是想展示ownership对我们整个community做出一点微小的贡献” 老最后爷放到了我的final report里。 这当然不是拿return的决定因素。但确实能是一个加分项,当你的major proj比较弱的时候,老板和师傅有这类东西能在最后更言之有物。