先说为啥转cpp,之前因为字节校园(现在没了)参与的一个前端开发项目而做了一段时间前端,java go python也都有做过,但后来发现自己更想做底端一点的(其实是前端面试挂麻了),加上本科cpp和cs基础还行,于是就决定转战cpp。
由于自己算法能力偏弱,第一步决定先刷力扣。大概做了一个月左右,基本就是代码随想录+lcr200多题,外加hot100(里面有一些重复)。感觉这段时间集中刷题,对于很多算法和数据结构有了比较深刻的认识,也慢慢形成了一些方法。
然后就开始看书背八股,因为有一定cpp基础,就没有去看primer cpp,主要看的代码随想录星球里总结的cpp八股。看八股的同时,自己也去敲敲代码,看看std和stl的一些源码实现,写一写模板和模板元编程相关。然后就是计算机基础,这块因为本科学的还有不少印象,看起来比较快,然后还翻起以前的课件来加深一点理解。
看完八股的时候已经3月中旬,看到牛友们很多都已经在流程中,有的已经都拿到offer了,不免有些慌张,但是又不敢投,因为还没做项目。一开始打算直接就webserver,但是听说已经烂大街了,就从网上找了两个看起来还行的其他项目,一个是sylar的协程库,另一个是cpp实现的raft kvdb ,就开始做了,也是主打一个学习。这期间一边做一边了解了linux网络编程,cmake和gdb相关的东西,然后大概搞了一个多月,中间腾讯来学校宣讲,但是因为项目没做完,就没敢去。
此时4月中了,感觉再不投都快结束了,匆匆忙忙投出简历,投了七八家,主要集中在深圳,但是都没任何反应,这时候看到牛客上普遍都在说cpp岗位很少,都在劝润,心情有点烦躁,浑浑噩噩了半个月
直到五一假期完还是没有反应,这时就重投了一下腾讯,投的是csig的后端方向,因为自己一直在用腾讯云的服务,就比较想去云。又等了几天,11号的时候突然收到了面试通知,是teg的云架构基础部,非常认真地准备了两天,然后13号一面。
因为是cpp方向的第一次面试,非常紧张,害怕他会让现场手写内存池线程池这种的,或者考很难的算法,但是面试的过程中发现他其实问了很多基础,然后项目的话准备尚可,答的也比较流利,算法也比较常规,是个链表,最后问了业务,是腾讯云这边的,部门比较多,主要做底层,最后听面试官说有一些ai相关的,因为自己有了解一些cuda的东西,就问有没有这方面的业务,面试官说有一些(这是个伏笔)。
面完后感觉比较稳,果然当天晚上一面通过,此时腾讯音乐打来电话约第二天一面。
14号腾讯音乐一面,上来就三道题,都比较简单,写完后跟面试官说了思路,然后在指引下做了一些bugfix和优化。后面就是八股拷打,印象很深的一个是问库函数和系统调用,这个问题因为不熟悉然后拉扯了很久,自己也有点搞晕了还有就是问大端小端怎么判断的,这个一时半会没想到指针和union。但因为项目和其他八股答的还行,就还是给过了。
15号腾讯二面,面试官起手就问机器学习课学了什么,有没有实际的落地项目,我说主要是介绍性质的,有一些lab但没有大的落地项目。后面开始问协程库,答的还行,紧接着,大的来了,他突然开始问cuda
这下措手不及了,我就跟他说正在学习,不是很熟练,但是他还是问了一些跟核函数调用参数,cuda优化,gpu为什么快有关的东西,也还行(幸好没深入问)。晚上的时候显示二面通过。
然后当天下午5点,腾讯音乐突然来电话说晚上电话面试,紧张的饭也没吃,赶快刷了点题。7点,面试官准时来电话,上来就是大数据基础拷打(可能因为项目写的raft),比如什么1亿个数找前1000,1亿个数找出现两次的全部数,海量用户信息里找一条符合要求的记录,因为完全没看这些问题,答的磕磕巴巴,然后经历了一个小时的折磨。后面面试官就开始问cpp基础,这部分答的很好,最后面试官说你前面答的我不满意,但是后面答的不错,还是会让我过,他真的,我哭死。反问环节面试官说是做酷狗搜索引擎的,这里感觉其实不太匹配。
第二天腾讯三面,面试官上来就cuda,问cuda优化技巧,gpu为什么比cpu快,问的非常深,一直到了系统架构,问cpu组成部分,分支预测,控制结构等等。问矩阵乘法怎么优化,只答了分块和共享内存。后面问课程,说了云计算,然后就开始问容器怎么实现隔离的,只记得cgroup和命名空间了,但命名空间是干什么的都忘记了,后面在面试官提醒下答了文件系统隔离。最后面试官评价我懂一些原理,但是不够纯熟,然后讲了一些道理,大致就是用什么语言用什么技巧,其实没那么重要,关键是要懂原理,即使什么语言都不会,也能快速的找到错误在哪里,听的我醍醐灌顶,也深深感觉到自己的差距。反问环节面试官说他们组做serveless架构的,有一些cuda加速的需求,希望这方面比较熟练的。我一听心里有点凉,下去散步去了,但没想到一看居然通过了
腾讯音乐三面约到了20号,但是腾讯一直没给hr面,一直等到25号。这期间面了tme三面,三面问了一些基础问题和智力题,感觉答的还行,但是没后续了。另外就是字节的风控,部门用的golang,所以一直问我八股和项目,加上做题,相对来说比腾讯问的常规,因此就不细说了。
25号发现tme挂了,外加腾讯流程回到测评,突然感觉有点崩溃,但好在字节还在流程中,还是得打起精神继续面。
结果某天上午阿里云打来电话直接当场面试,七七八八问了好多,最后还做了套题,加起来大概100分钟,面试官说是做智能网卡的,还有cpu架构,高性能计算,还发了一些paper,我一听,这也太高级了,我不配我不配,就默认阿里挂了。
紧接着腾讯突然给我捞起来了,当晚一面,面试官说他们是上次那个组的隔壁组,之前看面了好几面了,就随便问了个os内存分配,然后做了个层序遍历的题就完了。10分钟后直接通过。
第二天下午字节三面,感觉答的一般,尤其最后给了三道题我以为他是觉得不匹配要挂了,结果过了一会儿约hr面了,感觉很激动,终于有个hr面了
晚上腾讯二面,这次面试官说前面面评都很好,技术问题他就不问了,问我对部门有什么疑问,跟他聊了挺久,他说回去等hr通知,感觉稳了?
第二天终于约hr面了,心里一块大石头感觉放下了。然后就是字节和腾讯的hr面,很常规没啥好说的,之后字节先oc,腾讯以为流程较慢还在评估中,就拿字节的offer催了催,也很快oc了。
最终考虑个人偏好和技术栈,还是选了腾讯,这个组是做cdn和网络加速的,二面面试官说如果隔壁组(有cuda的那个组)做大的话,我还是有机会去的,这个平台整体都不错,感觉个人也很满意。
番外是阿里云打电话二面,面试官说一面表现很好,笔试成绩也很好,直接不问技术问题了,然后问我愿意在哪里工作,我说深圳,他说可以,他们正好在深圳,问我愿不愿意去,这时候腾讯还没oc,就先说愿意了。腾讯oc后就和阿里的hr联系结束了流程,因为确实很想去,并且感觉自己系统架构这块不是很行
唉,感觉这几个月心情就是一直在过山车,虽然有了个相对较好的结果,但是个人感觉运气成分还是占比大,毕竟看到牛客上那么多大佬面试问的很难,感觉自己的面试确实有点顺利了
不过,感觉人最终还是要相信自己,脚踏实地不断努力,越努力越幸运 也希望看到这篇文章的小伙伴们能早日收获理想的offer!#实习工作,你找得还顺利吗?#
#投递实习岗位前的准备##第一次面试#