背景
加本毕业,马上开始第二年硕士。本科5年其中一年实习。
这次实习前,我已经有本科期间16个月实习+本科到研一的暑假4个月实习。本科在某养老bluechip呆了一年碰到了特别好的经理和组长用心培养我,所以我现在实习对自己的要求是new grad水平。
先说有意去做好的地方
交流
1. 什么时候问问题
苹果用的基本都是内部tools无法Google,我一般先看document,再去slack team channel & xxx tool help channel搜碰到的问题关键词,如果还找不到或者跟着做行不通再去team slack问
2. 怎么问问题
hello team, I’m trying to do xxx following this doc [link]. But ran into . I have tried but still getting the same issue. Does anyone know how to fix this? [attach small error log snippet of where I think the problem is] 然后再thread里面reply自己发完整error log (error log发到主message里就会霸占一整面,你的同事打开channel只看到满屏error log还要scroll up)。
3. 问问题频率
只要有需要就要问。我是不怕问问题的,尤其是一开始,一天往group slack好几个问题。自己尽力找过但是找不到解决方法就得问,把自己unblock了再说
4. 什么问题不该问
很容易找到solution或者别人跟我说过的。为避免这两点,我每次都会先搜聊天记录再去问,meeting留不下记录我会take notes,当然很惭愧我也有miss过几次meeting讲过的内容导致去问了第二次,不过没有让人解释第三次的。
5. 怎么报告进度
每次sync前我都会把要报告的内容写下来组织好语言,做到报告时精简且让人听得懂,另外引出需要帮助的比如:can someone review my PR & having trouble with xxx tool does anyone know how to use it。
6. meeting准备
比如在别人做的的frameworks上develop,需要上手问问题,跟人家meeting之前先把能吃透的搞懂,如果document做得好的platform,开会前我已经能跑起来了,然后就是问infra & development related questions。能一次会议搞定的就不要浪费人家时间。
技术
感谢本科bluechip实习遇到的组长重点培养architect mindset,我现在写代码不止在意它现在能不能跑,还会关注以后能不能maintain,别人来用能不能上手快,甚至碰到屎代码会去想怎么优化等等
1.Coding规范不用多说了, format, comments & naming that makes sense, squash before merge (你敢信我去年今年实习的两家都是好公司,但是都碰到了不squash的,commit history一塌糊涂)
2.Follow up with pipeline after push: 这点我一直很注重,但是今年力不从心,因为苹果access管得严我甚至不能kick off pipeline & access log,所以没办法只能让我mentor管了。不过address PR comment我还是很responsive的。
3.当有人需要测试你的代码:我build好executable然后给人发过去,build的那个代码base里几十个submodule,每个都不停的有新tag出来,让人家自己build可不折腾死了
4.碰到屎代码:我需要develop on top一个framework,document is unorganized and outdated, setup及其复杂,而且没有规范,你写你的我写我的 。大概就是那个framework里面好几个人写tests,但是tests基本只能在写码的那个人自己的local跑得起来的程度。我自己啃了好久才在我自己电脑上跑起来。最开始气得我都想把这东西dockerize 了再refactor。但是冷静下来想想这工作量太大以及这不是我们组maintain的码,这么干吃力不讨好还得罪人。最后决定写个精简版setup guide以及把我的那部分代码弄的好用一点(反正没规范嘛我想怎么弄都可以)。我自己吃屎就够了,至少让我们自己team的人以后少吃点屎,也算是我能力所及的一点改变了。
欠缺的地方
1.虽然尽力避免但是偶尔还是会有stupid/redundant questions
2.嘴笨,team sync提前组织好语言还没问题,很manager或者mentor的1:1我经常会ramble。但其实说白了就是人笨LOL。这点我特别佩服我的导师,说话一针见血,他不懂的话题也能引出很多interesting discussion,同时还幽默风趣,当然这是因为人家本来就厉害以及多年知识的沉淀
3.本想在实习结束前挖个新坑搞个side project,但是实在是想不出来,可能是能力还是欠缺吧,希望接下来几周能有idea哈哈
4.有时候会摸鱼LOL
5.不够聪明,我以上讲的都是努力能凑的东西,比天赋的话差远了,不过这是没办法的事情
实习收获
Presentation skills
我参加一个intern contest阴差阳错被选为finalist,要在一群公司大佬面前present,给我安排了presentation coaching把我roast的外焦里嫩,说我这是typical engineering presentation lol。通过这次经验学会了多用animation and graphics,做出来的slides没有那么枯燥了,另外pay attention to the speaking (我以前不怎么注意都照着slides念)
也应用到我的intern presentation里面,比如describe behaviour,我以前肯定就文字描述然后slides上全是字,这次用图形做了了个animation
工作不是生活得目的而是手段,尤其是大部分我们这样做螺丝钉工作的人。
ReplyDelete