寒假时开始考虑要不要去找暑期实习,因为今年去找暑研面临着比较大的不确定性,而且对于找暑研,寒假显然已经不算早了,几番思想斗争后就明确放弃找暑研,选择去找份实习,不过寒假实在是太摸鱼,leetcode也没写几道,科研也动的不多,倒是文明6可以全文明神标200T内飞天了。


三月初开学其实已经有不少同学拿到日常实习的offer了,暑期的提前批差不多刚开始,但此时我对整个过程还了解甚少,在投岗位时就面临了很大的困境,如果选择开发岗,整体要求会低一点,本科生容易一点,但自己其实相关实战经验很少,OS和计网两门课都欠缺,而且java相关的岗位会多一点,如果选择算法,其实暑期实习是和研二的学生直接竞争,少部分公司会把算法的门槛直接拉到研究生,所以很可能过不了简历关,而且按知乎的论调基本是车毁人亡。


最后基本是算法,后端,大数据混投了,以算法为主,其实不太建议这样,实习显然是

专精选手>自由人

不过在被社会暴打之前我基本是在乱来,也没啥经验,然后就开始了一路白给的过程

第一次面试-字节AML

字节AML是第一个投的日常,也是比较想去的部门,部门主要以CPP和Python为主,技术栈也比较match,属于开发和算法都需要一点,不过那个时候自己也菜的离谱,写了5道leetcode就敢去给字节HR刷KPI,啥也不会,啥也不懂,面试前看了一个晚上的machine learning,结果面试问了进程线程和网络相关的一些八股,直接白给,你们可能不知道leetcode只写了五道就去面试是什么概念,我们一般只会用两个字来形容这种人—白给。

中期的准备和思路转化

三月初第一次白给之后,才开始逐渐去了解互联网面试的一些具体要求,然后整个三月基本处于同时准备托福和笔试面试的过程中,因为中间在准备托福的原因,不敢多做笔试,一直拖到考试结束才开始做笔试,这其实错过了很多机会,因为HC到后面只会变少。这中间笔试的字节和腾讯两家,但题目写的太少基本没有ac全部的,来道hard就直接选择放弃,最后字节强化学习中台挂在笔试。

持续白给的过程

托福考完后开始了一路的笔试过程,但其实写的题还是不多,网易有道的NLP和美团的data都挂在笔试了,特别是美团直接上来三道hard,一直到阿里的笔试,算是第一次拿到一个还可以的笔试成绩,阿里笔试就两道,笔试前刚剑指完了《剑指offer》,再零零散散的写了一些,大概有80+左右的体量在,最后两道一道100Ac,一道也写出了大半,其实两道题整体难度也估计在hard到mid之间,并不简单,阿里之后的笔试就开始顺利起来,其实只要有一定题量了之后,应试的东西是最容易解决的,百度的算法也过了笔试是挺吃惊的,因为其实难度不小,华为笔试第一次三道全部AC(第一次全部AC的心情还是有点小激动的,题目不算特别难,但全部ac还是不容易的)。中间一直笔试失利其实心态挺不稳定,基本每次挂了都会去看看还有什么公司能投的,中间也投过一些独角兽(图森,旷世,依图等)不过独角兽的门槛似乎更高,基本投完就没消息的。

整个4月初就一直开始笔试,笔试后开始面试,最多的一天笔试了三场,确实非常消耗精力。

网易

网易最后拿到了雷火面试资格,然后告诉我投的岗位现在没了,转到另一个部门,当然技术方向差别也比较大,自然是没有结果了,网易互联网,互娱和雷火三个部门分开面试笔试,所以得重复笔试,最后互娱有发我笔试通知,但真的没力气再去做,干脆就放弃了。

腾讯

腾讯其实挺尴尬,因为腾讯其实算法岗只有研究员性质的岗位,其余全是开发,然后本网瘾少年直接投了个游戏引擎开发,(寒假瞎玩过Stanford的UE4课程),然后一个天美的老哥直接来面,结果自然也是给HR刷KPI了。

阿里

阿里其实投的最早,但我笔试拖到很晚才去做,主要是之前也没有信心,因为听说阿里笔试爆炸难(最后主要是白给多了也就不怕了,大不了再送一次)最后结果居然还可以,但是阿里部门特别多,一定要靠谱的内推,不然会被一个部门卡住,投之前一定要对部门有了解,我就被一个部门卡了三个月的简历,不给面试也不给挂。最后直接让HR给我挂了(挂人倒是巨快,5分钟就发邮件了),这之后多亏了学长的帮忙,转简历到了蚂蚁,蚂蚁的整体效率非常高了,转完第二天就面试了,但比较可惜的是蚂蚁基本以java为主,自己不是非常match,而且java方向的东西基本不会。但确实这过程还是非常得感谢蚂蚁学长的帮忙,让面试官按C++的岗位去面,过了一面,但最后可能也是HC已经不多了同时自己能力确实有所欠缺,因为阿里基本四月初就结束一轮了。阿里的整个面试还是比较友好,基本不问八股,更加考察全面的能力,对某个方向最好有比较深入的理解。

百度

百度投的算法岗,面试难度确实自闭,我都感觉面试官在怀疑我的智商了,一个点会问的非常深入,问到你不会为止,我基本最多答出第三层,但面试官在大气层,面完就感觉白给了。

字节大数据

字节真的是算法后端大数据全挂一次,挂人的效率也是非常之高,感觉字节现在基本leetcode得200+刷透,得背熟八股文。

华为

华为面试前两天收到字节挂的邮件,前一天阿里二面挂的通知,自己的心态也发生了如下转变,只想随便找个班上,实在太拉胯了,

华为算是背水一战了,本来也是比较想去的,面试前一天除了复习完机器学习,顺便下了mindspore,跑了一下demo,这其实对最后面试结果帮助非常大,华为整个面试流程算是比较顺利,问了一些machine learning相关的基础知识,主要聊了一下项目经历,之后面试官在我写算法题的时候介绍了mindspore的一些工作。再后面就开始了比较随意的聊天,然后我凭借丰富的画饼吹逼经验和这几天对mindspore的了解,从前几天华为发布的通用模型盘古聊到具体的业务聊了好久,面试官问我,对汇编有没有了解,我说写过RISC-V的汇编器,ARM有简单了解,然后他居然说“你这全栈工程师啊”(前天还被挂,说基础知识不扎实,怎么到这就全栈了)我直接一脸懵逼(内心狂喜)。

最后的结果自然是过了,看到结果时我直接戴上了我的战术目镜和耳机,靠着一首Future Bounce在阳台一个人蹦了30分钟

复习总结

下面主要是自己学过和复习用的一些觉得非常好的资料和课程,

Udacity和coursera都是非常好的自学网站,特别是Udacity的课程和工业界实际应用非常的接近,知识更加实用。

面试总结

  • 传统ML SVM,KNN,LR问到最多,boost面经讲到很多,但我没怎么碰到,可能是推荐广告的岗位问的多一点?
  • 尽可能让面试官多问项目经历,要主动诱导面试官去问项目经历,当然前提是对项目非常了解。
  • 深度这块除了有个整体认识,最好对某一个网络有深入的理解。
  • 本科去面算法就要做好准备,不会因为你本科就降低要求。

我总共笔试了八场,面试了7场,这整个过程确实非常折磨人,但从中也确实意识到了自己的知识体系的局限性和技术能力上的不足,同时自己各方面也有所提升,从刚开始笔试0AC到后面可以全AC。

总结

整个找实习过程确实挺不容易,毕竟直接和研二学生对线,但最后结果还算不错,去了自己最想去的,对于AI整个行业来说,个人认为在现阶段显然是能实际落地的工程大于算法本身,数据质量大于算法。目前我将自己的方向主要聚焦于AI模型在端侧的部署和应用这样一个细分赛道,避开了CV,NLP这样比较卷的领域,对于整个

我花了近一年的时间说服自己不适合做偏理论的研究,更适合做能落地的工程或产品,做不了天花板,做个吊灯还是有机会的。所以对我来说与其再做些CNN换transformer的东西,不如做点能实际落地的工程,而整个工程能力却是学校教学所欠缺的,甚至个人认为学校的工程教学,哪怕是ZJU也是和工业界应用脱节严重的,不可否认现在zju对通识教育以及微积分这种以应试为核心的课程的教学的质量还是值得肯定的,但到工程教育时,很难想象,一些课程除了把2000年创建的PPT给你念一遍,然后来一场靠记忆驱动的考试,消磨你对这个学科的兴趣,并不会提升你的核心能力,确实让人失望,个人认为工科生最终主要还是去工业界去做一些伟大的产品或系统,而不是去纠结一些理论性的东西(至少个人定位是这样),在这样的情况下,不如自己去多上上CS四大的课程,去工业界提前积累实战经验而不是沉溺于简单的猫分类。

找实习期间有幸看到filestorm大神(现在已经是图森的CTO了)的上海交大生存手册,真心佩服这样可以聚焦自己热爱的方向,放下一些GPA这样一些表层的东西的大神, 大神会因为觉得考试浪费时间,而选择直接参加补考,只是因为补考简单,不需要花太多时间,我直到大三才有勇气去放弃一些原来认为很重要但实际没有意义的东西,去更加聚焦于一些更值得去做的事情(https://survivesjtu.gitbook.io/survivesjtumanual/li-zhi-pian/zong-you-geng-zhi-de-zuo-de-shi-qing