之前在知乎发过实习和秋招的面经。见【2019秋招算法面经】,许多同学私信我,表达了他们初入研究生期间的迷茫,希望了解我研究生期间的成长路线。虽然说没有适合每个人的方法,因为每个人的特点和所处的环境都不一样,但有个参考总是好的,所以我在这悄悄把自己研究生三年的经历写一下,前面可能会写的详细一点,希望能对这些同学有所帮助。
1. 大四上学期(2016.1~2016.3)大三暑假的时候去QQ邮箱实习,一直实习到了2015年12月,回到学校正是2016年的元旦,跟现在差不多的季节,开始跟导师讨论毕业设计的思路,并动手实现。
主线任务:毕设毕业设计做的是一个多模态行人检索系统里的Java后端,跟班里两个同学做的前端和硬件采集端合为一个大的系统。导师刚评上副教授,带的研究生只有两个人(后来又多了一个计创的师弟),虽然还有很多本科生,但是对我们的指导时间很多,是那种实干型的导师,会一边给你理思路一边给你准备资源。
拿到几个大华的摄像头、NVR和SDK之后,在B3五楼会议室里调C代码读写数据,并且从Servlet裸写Java后端(虽然实习写Android把Java写得很熟了,但是当时不熟悉Java后端框架,所以就直接Servlet)。写了差不多两个星期就写完了。然后开始写论文初稿,到一月底,毕设就基本完工,虽然后边又各种调整,但基本的工作在这个时候都做完了。在这个Java后端里,把在QQ邮箱实习的时候熏陶的设计模式全都实践了一把,感觉写的挺优雅,但是好像有点过度封装,不过也还好,这个系统就一直沿用下来。
在后边研究生几年里这个系统又被部署到超算虚拟机上,经过离线化等等变更。合作的两个同学毕业后他们的Hadoop后端和JS前端,路由器硬件都变成我维护了(:з」∠)不过因为没有特别大的改动所以还能Hold得住,一直到现在还在运行着。
支线任务1:自学写完之后就回家放寒假,因为有大把时间,所以开始刷GitHub,熟悉Git,Markdown,Gitbook,期间翻译了一个当时Github上Star上万的工程,大概讲的是程序员的自我修养之类的东西,收货了几百个Star,后来因为在邮箱期间遇到的Webview问题没彻底解决,心存执念,又开始翻译Chromium的文档,因为当时国内也没有Chromium的中文文档,所以就动手翻译,也从中学到了许多架构设计方面的东西,虽然因为内容太多没有最终翻译完。
支线任务2:物资管理系统毕设这套系统更偏向工程,还没有一些计算机视觉的东西,当时导师就跟我讨论就想是不是可以往这方面发展做点研究,于是开始学Python,因为我之前在学校学工办勤工助学,实习的时候就跑路了,准备大四下回去在挣一点生活费,毕竟奖学金只够学费,吃饭还是得自己想办法(当时没想到导师每个月给我们发的钱完全够吃饭了),所以就用Python+Django写了一个物资管理系统,当做回归的见面礼,顺便也是试手Python。这套系统从2016年3月一直用到2018年12月,因为之后我要毕业不在学校,办公室那边的同学维护不了,所以及时过渡到了以前的Excel工作模式。我感觉这套系统做得还挺好看的,实践了一把当时比较推崇的Material Design。
支线任务3:羽毛球每周1个半小时的羽毛球,一直打到现在,学校的体育馆还是可以的。
2. 大四下学期(2016.3~2016.9)主线任务1:毕设这学期主线任务还是改毕设啦,改格式很烦(:з」∠)
主线任务2:入门机器学习导师之前其实也不做机器学习,我也是自己摸索,当时TensorFlow,Caffe各种框架百花齐放,因为之前做Android比较喜欢Google,所以在TensorFlow还只是0.8版本的时候开始自学,看的是Google在Udacity上发的教程,一边学一边整理笔记,放到GitHub上又刷了几百个Star。差不多5月的时候,导师也开始跟我们讨论当前机器学习的一些进展和研究方向,因为发现调参很麻烦,所以想做一个自动调参的东西,用神经网络来给神经网络调参,然而当时我只有CPU,整天在Acer笔记本上呼呼呼地跑实验,一直到暑假快结束了实验效果也不好。后来发现Google用N多块GPU做出了AutoML…后来差不多到研一导师才开始重视设备,所以这段时间