【秋招总结】双非小硕挣扎算法转研发

投递:26
笔试:14/26
面试:9/26
走完流程:3/26
offer: 2(网易✔、华为✖)

部分面经在文末


从现在的立场看半年前的自己,或许只能用“愣头青”来形容
四月开始刷leetcode(近500),剑指刷了近三遍,还有hdu、lintcode等,然后在六月初信誓旦旦地立下“算法岗”的宏愿,小论文的录用(虽是水刊)更进一步坚定了决心
然而,是什么让自己决心转研发呢?
可能是当同一家公司同一个部门,算法AC接近3/4被刷,研发AC<1/4却至少收到面试通知时?
可能是投递简历一个月,16家公司,无一给予面试的机会?
也可能是当真正走上秋招,发现算法岗的竞争对手,top高校/顶会/算法竞赛/大厂实习至少占其一时?
也或者,发现自己的第一个面试,竟是游戏研发?
转型的对错,尚不可知,或许伯乐找不到千里马,也会发现我这只笨鸟?只是从结果论,会感到庆幸

1. 求职历程

大概年后三四月份开始刷题,自己本科时有一段ACM经历,因此对常规的算法如bfs、dfs、并查集等拎起来还算快,但一些稍复杂的,如几种最短路、各种动态规划的变形、字符串相关(马拉车、kmp等)、最大流等都需要慢慢填补
当时小论文的实验也在进行中,所以大致保持每周leetcode周赛+至少4题的量

六月开始看计算机基础、推导公式,主要是计网和操作系统,以教材为主,公式由于本身的硕士方向为时序数据预测,与大热门CV、NLP并没有大的契合点,因此既推LR、SVM等,也包括RNN、CNN梯度传播,以及BERT的发展等,都是基础
同时由于论文告一段落,刷题量开始增加,基本上一天三四题,同时之前收藏的题也会回去继续思考
(这里收到了华为公共开发部电话,让关注即将开始的优招)

七月提前批拉开序幕,开始边刷面经边继续看算法理论,并正式开始投简历
然后噩梦就开始了,一直到八月中下旬,真的颗粒无收,别说面试,笔试都只有零星两三个,也找人改过简历,多次质问自己,这条路真的正确吗,真的适合自己吗
最后下决心,转型C++研发,于是另一场噩梦又开始了,C++只会写刷题的代码熟悉STL,什么智能指针、内存泄漏、STL源码完全不了解,包括前面的网络和操作系统,需要和C++语言本身结合起来,以及linux和windows下又有诸多不同,天天做笔记、编码,让自己记住

八月下旬,游戏研发面试,还是很感谢网易吧,无论是面试官,还是HR,都给了我勇气,当时也真是没给自己留退路或不报什么希望进了门,很欣喜以后将经常出入这扇门
最前面的汇总,只投了26家,也是因为面完大概一两周就给了意向,后续就不再海投或是也没怎么投了

整个九月,状态慢慢放缓,却又不敢松懈,毕竟只是意向,心里还会有些疙瘩,面试了阿里(因为linux基础不稳固被刷)、依图(唯一一家给我算法面试的公司,全程问项目和撕代码,二面的时候申请转C++,当时有同意但没了下文
面着面着,赶在放假前收到了正式offer,默默说一句,you deserve it

之后就真的没投简历了,华为的简历早早投了,石沉大海,反倒是国庆后,中软电话告知可投他们的操作系统,抱着试一试的心态在十月中旬面完试,然后进池,然后oc,然后签约

2. 求职感触

  • 算法需谨慎
    如前所说,top高校/顶会/算法竞赛/大厂实习至少占其一再考虑算法,否则连简历关都过不了,谈何展示自己
    若是走算法,也建议多注重工程和基础,别老想着“我面算法为什么还要考那么多计算机基础理论”,多看paper
  • 转岗需谨慎
    腾讯、依图和招行都是半路算法转研发,后两者一面都聊得挺好,但商量完转岗的事情,说是后续HR会联系你,就没有下文了;因此务必尽量对自己有认知,转型/转岗真的不容易
  • 留条后路,提前准备
    前者可以打个问号,如果的确想好了,那就往前冲吧
    但后者,秋招需要补的东西真的很多,不要以为操作系统看了线程进程的理论就完了,放到实际的操作系统里去理解,会是一个新天地;还有刷题也是无止境的,其实我觉得leetcode刷个两三百差不多了,大致的常见的算法都接触到了,后面就是保持手感,如何在笔试、面试时,看到题立马有思路
  • 内推与提前批
    目前互联网的内推有点“形同虚设”,网上一搜都是内推码,所以究竟有没有用打个问号,但填了总比空着好吧,至少如果是互相认识的人,你拿到offer还有奖励
    提前批,有说法是记录会保留到正式批,同样存疑,但似乎个别公司有这个现象?但个人还是建议多尝试,提前批虽然对手更强大,只要面一个无论结果都认为是赚到,面试经验会在后面帮到你很多;此外,提前批会有更多sp的机会,如今年的OV和华为优招

3.部分资料

刷题
剑指
leetcode
C++:
《C++primer》、《effective C++》、《STL源码分析》
还有github上的一些教程,最开始我跟着huihut/interview学习
计算机基础
网络、操作系统、数据库教材
linux我用的《鸟哥的私房菜基础篇》,以及《linux网络编程》
设计模式相关

4.部分面经

网易:20190822网易互娱游戏研发
华为:华为杭州 中软操作系统开发面经
招银:20190928招银网络电面
工行:工行浙江省分行科技精英面经
其它面经汇总:
char const*p、 char *const p、const char *p的区别
void f(A a) 与 void f(const A& a) 的区别,分别何时使用
static 的作用:用于变量、用于函数
const 成员函数
右值引用
什么时候会引起内存泄漏
你了解过哪些智能指针?说明一下底层实现?unique_ptr 怎么保证所有权唯一,shared_ptr什么时候会引起计数值+1
移动拷贝构造?
了解过哪些排序算法?各自的时间复杂度是多少?归并排序的过程大致说一下,空间复杂度是多少?堆排序大致说一下,时间空间复杂度多少?建堆的过程说一下?堆的空间复杂度多少?是否可以通过in-place的方式建堆?说一下你的思路?
红黑树了解吗?有哪些特性?如何保证平衡?相对于AVL树有哪些优势?
如何解决哈希冲突?
了解过哪些设计模式?单例如何保证线程安全?
无向图如何判断连通性?并查集的查找函数有什么优化?
链表反转
malloc 和 new的区别,new会实例化,所谓的实例化怎么理解?
什么是内存泄漏问题?有什么危害?你认为最大的危害是什么?
计算机中的堆和栈有什么区别?堆上的内存和栈上的内存,哪个是需要程序员手动释放的?为什么栈上不需要手动释放?你是怎么理解的?你说的作用域是指什么含义?出了作用域后发生了什么才不需要去手动释放?C和C++在栈内存释放有什么区别吗?
什么是野指针?野指针会造成什么问题?如果使用了野指针会怎么样?
TCP和UDP有什么区别?TCP是可靠的,那么他靠什么来保证可靠?ACK字段什么时候使用,代表什么含义?数据的发送端和接收端是否均使用类似的机制?若确认字段没收到意味着什么?接下来会做什么处理?
多线程和单线程相比,有什么区别?找出1亿个数字中的质数,由多线程和单线程处理,分别有什么优劣势?是否多线程一定比单线程优秀?为什么?举个例子

#秋招##面经#
全部评论
优秀!
点赞 回复
分享
发布于 2019-11-11 21:11
前来为峰峰打call
点赞 回复
分享
发布于 2019-11-11 21:25
秋招专场
校招火热招聘中
官网直投
优秀!跟你一样我春招也想算法转研发,想问下简历项目是怎么改的呀?没有开发经历如何去投相关岗位?
点赞 回复
分享
发布于 2020-03-01 20:19
优秀!
点赞 回复
分享
发布于 2020-09-16 11:15
看这个头像以为是助班,没想到真的是助班
点赞 回复
分享
发布于 2021-11-12 18:43

相关推荐

22 84 评论
分享
牛客网
牛客企业服务