实验室一般是在研究生二年级的时候会放实习,在以后的日子就是自己完成毕业+工作要求,基本上不再涉及实验室的活了,目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享,本着不想把这个良好的传统在我们这届丢失,故做本次分享。
本人暑期,秋招战绩在实验室都算不上优秀,主攻的方向是后端开发,截止目前有四段实习经历,从初创到大厂都待过,最后选了蚂蚁作为自己毕业之后的第一份工作,希望自己能保持对技术的初心继续往前走。
经验分享网上有很多,大部分都是从八股+算法这两个方面进行入手以找到工作为目标结束,但是我理解的目标不光是找到一份实习或者工作,而是需要把做技术当成自己的职业,找到一份好实习或工作只是职业的开始而不是结束,所以想就对整个过程做一次分享也是自己对暑期和秋招总结。
相信这个时候开始找实习的同学心态都比较焦虑,可能存在着两种情况
当时我就是属于情况一并且心态也是比较差的,白天着急干活,晚上匆忙复习和刷题。但是实习过后回头看其实发现复习八股和刷题固然重要但是习惯更加重要,当然每个人的体会都不同,这是我在第三段实习才懂得的道理。
开发不是赛跑,是一个需要坚持的赛道,如果再给我一次机会,我会选择静下来心来,好好把实验室的活做好,从原本的80分做到90分以及以上,现在就是很后悔当时没有好好地把握实验室的锻炼机会。其实在公司做的工作和实验室其实差不多,如果运气好,到了一个比较锻炼实习生的组那还好,如果运气不好,其实说的不好听就是打杂,锻炼的机会少之又少,发育全靠自己,如果再加上自己急于求成,习惯不好可能并不能有很多的成长。
习惯的养成对于我们就是在实验室里面养成的,比如开发规范,记录习惯,记录wiki,issue等等,也就是解决问题,做事情的习惯,相对于公司来说是很自由的,至少带我开发的老师也是技术很牛,比较开放的。
综上所说就是思考,解决问题的好习惯比背八股,刷算法更重要。做事情不能太功利,要持之以恒。
简单来说就是针对自己的目标去制定计划。
目标
目标很简单,即想去的公司,想做的方向等等,因为不同的公司面试的风格都不太一样的,侧重点也不一样,这里分析下来有几个。
字节偏智力题,算法;阿里偏项目和思考;其他的感觉都差不多;中小厂会有线下手撕算法;按照互联网的要求去准备银行没有问题。
计划
计划部分可以分为短,长计划,按照个人的习惯制定。我个人很喜欢马斯克的按照一天以小时为单位的方式来制定计划,毕竟专注力和DDL才是第一生产力。
简历这部分是找实习,工作的第一部分;对于互联网开发的同学来说不需要有很多的学生工作和学术论文,更加看重的是经历和项目。
简历也有结构,按照总分的结构进行编写。
简历通常都有教育经历,专业技能,实习经历,学术论文,学生工作这个结构来编写。在专业技能中的关键词一定要在实习经历中体现,一是有说服力,二是要有总分的结构。
既然项目在简历中很重要,那么项目应该如何编写呢?当然项目也有结构。
在描述项目的时候建议以产品内容(是什么)-> 个人工作(为什么+怎么做)-> 用数据证明结果怎么样。这种演绎递推式的方式去写可以突出自己的亮点。
埋点
同时在简历结构部分也可以看出,专业技能点需要在项目/实习经历里面有体现,这也是项目中的埋点部分。面试官看到这些关键技术的同时多半会问相关中间件或架构设计的技术细节,这个是需要去着重准备的。例如:使用MQ来让操作异步化,那MQ相关的问题需要去准备,包括但不限于:
几个问题一问下来,你的知识水位大概是什么样子就能体现出来了。
八股部分其实很多人都说的是需要背的知识,但我的理解是学八股不光是知道更多的是理解。我把八股分成几个部分(仅针对于后端开发)
参考左耳朵老师的话,计算机的技术层出不穷但是最根本的东西都大都不会变,比如操作系统,计算机网络等等相关知识,如果说只是应付面试的话,确实只需要把相关的高频面试题背一背就行了,但是做技术人很多时候不能这么功利,更多地需要去考虑如何提升自己,所以这块其实就是仁者见仁,智者见智了。
场景题设计这块,需要平时去积累,但是常见的几种场景题(高并发场景下常见的优化方式)需要知道。这里感受比较深,在实习过程当中发现其实不是一上来就去设计一些很高大上的架构,而是基于目前的状况去选择合适的架构,因为产品可不会去考虑架构如何设计。前期小步快走迭代,在取得一些成绩了之后,得到产品信任,再去做一些架构上的迭代才是目前互联网选择的方式。
其实编程,因为我个人不是ACMer,编程平时的学习方式也是通过刷LeetCode和少量的OJ去提升自己,最后的刷题数保持在1300左右。
暑期/秋招和日常实习不同,存在着笔试的环节(但其实懂得都懂,很多时候都是团队作战),所以我的理解刷题也是因人而异,分Type去刷,每天不去追求题量,而是争取把同一类型的题目搞懂即可,至少现在面试出的题目都写出来了(所以说面试编程不会太为难)。
刷到什么程度合适?
个人的感觉是可以独自完成任何一场公司的笔试,当然如果特别喜欢可以一直刷下去。原因有二:
推荐可以平时参加一下LeetCode的周赛,一般来说周赛三题笔试应该没啥问题(能过不是AK)。
事后也是我现在需要去学习的阶段,往往会缺少做事情之后的复盘环节。
一开始我听说这个词的时候,更多的是不屑。但是学习之后才会后知后觉,举两个例子:
总结自己做的事情也是软实力的一种表现。
硬实力不用多说,都是靠技术吃饭的。还是那句话,开发不是一蹴而就,是一个长期积累,持之以恒的过程,我对自己的要求分三点:
感谢研究生期间带我科研,开发的老师们(刘老师,马叔叔,yan老师),对我的耐心培养,给了我很多学习的机会和资源。
感谢实验室师兄师姐们对我的帮助,让我深刻体会到了实验室一家人不是白吹的。
感谢lab-荣哥,mt-超哥,ant-城哥,bytedance-明哥对我的耐心指导也祝愿你们工作顺利,发展的越来越好。
场景设计
海外兔(场景设计题)
凤凰架构
数据密集型应用系统设计
酷壳-左耳朵博客
极客时间
基础八股
小林图解网络
哈工大操作系统
MySQL是怎样运行的
黑马程序员Redis
JVM虚拟机
Java高并发核心编程
刷题
想参加一下CSDN的征文大赛所以重新发了一遍~