原创: Amyzen
这个夏天被分配到两个实习生,实习项目是在3个月时间搭建一个新的service。
之前总听人问:
怎样才能实习拿到return?
或者
感觉项目做出来了,为什么没return?
我写了很多代码为什么没有拿return offer?
写两个完实习生的feedback,整理一下实习可能的坑和加分的项目,蓝色是简洁版。
《一》实习生小a
我给的评价是超出预期,原因有以下几点:
- 按时完成给的每一个大小项目。
- 独立性很强。 当项目有一定不确定的地方时候,他会自己首先在公司内网上查wiki, 自己看组里的code和一些包的源码。仍然有不理解的地方,才会问mentor。 因为我自己本身还有自己的sprint task,带实习生只是算我额外的task, 所以有时候我自己的项目也很忙的时候, 他的独立性就给我省了很多时间。同时因为他问问题前都自己先查过资料, 所以他问的问题,也都是些mentor愿意回答的问题,而不是当伸手党。
- 每次都多做一步。 实习生每两周周一会给大老板汇报一次进度。 我通常周五下午5点会给他们的demo提一点建议, 因为不想让他们加班才能完成,所以我通常是说如果这几个小改进6点前能完成会比较好,如果需要超过1个小时就下次再做也行。
他每次都能把我说的建议做出来, 虽然不是技术上不是很难, 我也说了不是必须的,但实习生每次都愿意花自己额外的时间并且把optional的建议做了,还是让我很惊喜。
- 非常愿意帮助其他的实习生。
《二》实习生小b
我非常的后悔当时面试debrif时帮他争取了这个实习名额。不考虑retrun offer的原因是以下几点:
- 不愿意做简单项目。
这我第一次对b感到失望的地方。 其中给b的一个项目是加log,虽然看起来很简单,但对我们整个service却又非常重要。
b在被分配到加log的项目的那一周都很消极, 一周只加了2行log。他觉得这个在技术上没有很难度,并不开心,他用很慢的进度让我感到他并不不想做这个task。
作为mentor,即使是很小的项目也是希望实习生能按时完成的。
那一周我不得不反复给b讲解查log对排查故障的重要性。同时跟其他的实习生mentor聊了一下,也有其他实习生是因为每次完成项目和写代码都太慢而最后没拿到return offer的栗子。
提前和mentor沟通好这个预计完成时间很重要。mentor在分配项目的时候即使没有明说,心里通常会对完成时间又一个预计。
技术上的简单并不代表不重要。 不歧视并能积极完成即使是自己认为很简单项目。
简单项目也可以是加分项。 比如加log看起来很简单, 但如果能花时间多做一步,比如把已有的code的edge case自己都在复查并对error handling可能可以改进的地方提出自己的改进,这是加分的。
- 依赖mentor debug
小a在实习的最后阶段一次提交了code reveiw后对我说:你可能要仔细review我的这个代码,可能会有很多问题,因为我还没有test过。
这是第二次对小b失望。
我们通常是所有的code reviw提交时必须保证code change是被test过的,可能是unit test 可能是integration test。提交code review代表提交者能保证是deployment ready的代码 -这一点在小b最开始实习的时候就告诉告诉过他。
小b在实习快结束的时候还不记得要写test,仍然很依赖mentor和其他组员去帮他找bug,有时候review他的代码非常的花时间,有时候几乎自己想重写一遍。
认真对待每一次code review,mentor提出的意见包括组里的coding convention,争取不需要mentor重复多遍。
对于对test有要求的公司,一定保证提交的代码是自己有信心的,尽可能的用各种方法自己测试过的,而不是在实习快结束时还依赖mentor来debug。
- 对新技术和新知识没有好奇心。
小b的另一个task,我给了他一个例子来照葫芦画瓢。 例子里面有metrics。小b最后的提交的code review中直接copy了例子中的metric, 包括例子中的bug小b也原封不动对的一起copy了。
小b对我说:我直接用了例子,因为我不懂metric, 不知道怎么改,改哪里。
当时内心一万匹XX🐎奔过。公司内部有非常多的wiki可以查,metic的源码和api都是可以自己学习的。
对于公司代码和学校代码不一样的地方,保持好奇心,自己学习时不懂的地方,提出问题,都是mentor很欢迎的。
小b的这三点,前两点中更多是一个实习生的态度,我会开始考虑不给return offer,毕竟技术都可以学,但如果主观态度都八字不合,mentor是不太可能愿意招进来做同事的。