实习一圈之后我认为实习生的生存指南

910 阅读7分钟

当你踏进公司的那一刻,说明你已经具备了某些留在这家公司的潜质,你要做的就是展现你的能力和潜力,留下来。

楼主渣硕,曾在网易、微信和阿里短暂实习过,目前手上收到了零星几个offer,但是应该会大概率留在阿里(因为买不起北上深的房子,只能来杭州了)

说实话,从学生到员工、从学校到公司、从独立开发者到团队协作开发有着很大不同,楼主也苦于大多数文章都是在说什么面试技巧和刷题指导(滑稽,真香),当然,这些连同你的学校是进入公司的门槛,但是如何完成转变融入team,则是你的立身之本。(可能下面这张图会说明这个变化)

所以,我把这几段实习以及最终转正的经历总结了下,说了一些我认为比较重要的点,当然,都是些拙见,各位看官取其精华(可能没有)、取其糟粕(可能全是)。

section1.入职前

由于是团队协作,所以投入实习工作前你需要学习融入团队的基本功:

  • 熟练使用你的IDE:例如我的工作相关就是Xcode
  • 了解常用的调试工具的使用比如:Charles、iHost,Chrome dev tools等
  • 代码工具:git或者sourceTree等(熟练的使用工具可以极大的提升你的工作效率)
  • 你自己的效率工具:Xmind、keynote、pages等
  • (可选)一些通用型工具:Aone、JIRA等(这些根据公司决定,但使用流都是类似)

section2. 入职后一周你需要做的:

  • 了解清楚你所在的组负责的产品和模块,这部分直接通过导师获取输入即可,直接在该模块发力,可以省去你很多时间,毕竟一个产品太大了,2个月的实习周期来不及。这些可以从大家每周的周报看出来,大家都在负责什么模块和每周的工作量。
  • 学习团队的技术大图和了解模块owner。
  • 把你的项目环境配好,项目跑起来,先参照gitlab和团队文档的说明独立完成,这里面会夹杂着权限审批什么的,及时记录防止错乱。在跑项目的过程中其实就可以看出一个实习生的水平和学习能力了,不要一上来就问,先自行解决block住后再询问。
  • 如果你参照文档不能顺利的解决的话,记得解决后及时更新你们的文档,方便后面的新人同时也能显示你新人的素养。
  • 尽快和导师计划好你接下来的工作内容,工作内容必须要是有些挑战的、会有产出的、有可借鉴案例的、会对业务有推动作用的且有价值的。不然你最后的实习答辩会很难受。当然,最好是可上线能拿到数据的。毕竟没有数据就只是个人YY了,对高管也没说服力。

section3. 开始搬砖工作

我认为这部分由具体的工作内容决定,但是有一些工作原则作为指导:

1.owner你的模块体现在:

  • 认真负责:体现在你的代码必须是易维护的、易扩展的,拒绝很挫的代码,毕竟有code review。可以参考集团的代码规约和内部同学的代码规范,大家的代码风格一致。这会减少code review的时间并且提升组内同学对你的好感度,毕竟大多数实习生的代码习惯都与团队会有些出入。
  • 主动提优:这部分是对PD的补充,毕竟PD不是实现者他肯定会有些疏忽,而我们真正实现时会覆盖所有细节逻辑,这部分PD大概率会有疏忽,一个优秀的技术会注意到这些点并优化他
  • 关注数据:对于埋点数据的计算方法有认知,知道业务背后的价值如何再数据上体现出来。

2.优先级:

我们每天会被各种事情扯皮,我建议以时间节点和花费估时为纬度去对事情进行优先级划分,尽量把事情的粒度控制好,做到有条不紊,不delay项目。

3.承认错误、实时反省:

实习期犯下的错误是你踏入这家公司后成本最低的,这种机会不要浪费。

  • 遇到问题,第一反应不要甩锅,当然也不要背锅。错了就是错了,就坦诚地承认,不要说「没人告诉我,我也不知道」
  • 实习生必不可免的会踩坑,当然在可接受范围内的坑是团队可以接受的,但是同一个问题不能犯第二次,每次踩坑之后需要及时反思,大多数情况下是我们没有完全吃透引起的,所以我们需要实时反思,把工作规则化、流程化。做到杜绝。
  • 有bug不要慌,不要试图隐瞒bug。没bug那就说明要么是你太牛逼,要么是你写的模块太简单了

4.交流:

把想说的话先咽下去,经过大脑过滤后再表达出来,表达的内容要凝练、简洁、有说服力、有表现力。 每个人时间都很宝贵,不要浪费别人的时间,可选择一些大家都舒服的时间节点去交流:

  • 每天下班前给你20分钟
  • 利用中午吃饭的时间
  • 将不紧急的问题总结到一起,用钉钉或邮件发送给师兄、师姐,待他们下班后统一解答
  • 其他任何让双方“舒服”的方法

5.拒绝:

有些事情是你应该拒绝的,随着业务发展,原先的实现肯定是需要更新的,比如这期的业务,应该服务端打的补丁,在前端去打补丁显然是不合适的,徒增团队之后的维护成本,原则:

  • 假如原先设计本身不合理,那就应该是不合理的那一方去进行修改。
  • 单方修改好过双方修改。
  • 出于长期的发展去决定。

6.不要浮夸:

对于公司项目而言,不要为了炫技和盲目追求新技术而牺牲稳定性和易维护性,当然这不是让你写低效的搓代码,而是在稳定性和易维护性满足的情况下,尽可能去提高性能。你写出一个bug上线,基本是你leader帮你背的。。。。你leader可没时间帮你一行代码一行代码看,并且有些坑是看不出来的。

7.树立参照物:

去年的校招生和今年的实习生都是你的参照物,不是说鼓励什么比来比去的坏风气,而是让你督促自己,毕竟人都是有惰性的,没有参照物是可怕的。

8.方案review:

在收到需求时,先自己设计一个或多个架构,然后去找你的导师定下方案,这样会避免单向输入,也能纠正很多自己本身的认知错误。千万不要没有思考就去询问解决方案,这样你会被鄙视的,毕竟大家时间都很宝贵。也不要做完了再去确定是否合理。。。不然你到时候哪怕重构自己的代码,也会让你爆炸的。

最后,这可能不是指南,也不是指北,因为我们每个人都是不同的个体,他可能是指向东南西北,最终决定你的是你自己的选择,祝大家都能顺利拿到自己满意的offer,告辞~