这个非科班学妹是真的厉害...
共 4482字,需浏览 9分钟
·
2021-11-14 01:46
大家好,我是鱼皮。前几天朋友阿秀跟一个学妹聊天,惊讶的发现发现她是个名副其实的offer收割机,offer又多含金量又高,拿到的还基本都是后端研发岗。
不得不说一句,在今年的秋招困难模式下,还能拿到这么多的后端研发岗offer,而且人家还是非科班的,实属不易!
给大家分享一下她的经验,下文中的我代表学妹本妹~
目前意向书情况
字节跳动后端意向书
阿里云后端
网易雷火游戏研发
网易互娱研发
商汤科技后端
个人背景
某非科班工科专业硕士在读,原专业太坑,找工作很难找,于是转行互联网行业。
去年年末刚接触C++,一直在持续学习C++,慢慢准备校招。
我的C++启蒙书就是**《C++ Primer 6th》**
个人投递情况:优先投递后端研发,有后端投后端,没后端投相关开发岗。
面试前准备
互联网校招面试需要准备的有:项目、算法题、八股文。
算法题
可以在力扣上刷题,我一开始是按照分类刷的,这样比较有计划,而且可以对比着看同类型的不同题目。
Github上有一些高star的刷题仓库,上面有题型分类,和各个分类下的题目精选,大家可以去看看。
分类刷完一遍后,我就开始刷高频题,截至目前我在力扣总共刷了三百多题,里面有一小部分高频的我做了好几遍,应付一般的面试应该没有太大问题。
一般来说,面试的代码题不会太难,一般是简单或中等题,偶尔会有几个高频的hard题;笔试相对会难一点,比较重要的笔试之前可以刷刷题找回一下做题手感,让笔试更得心应手一点。
顺便一提,我在面试中遇到过最多的题是回溯、链表、二叉树和二分查找,笔试中遇到过最多的题是BFS找最短路径。
八股文
八股文这块我主要就是看文档,包括C++、操作系统、计算机网络、数据库等等。
第一次看的时候确实很多地方不明白,所以我一般对一些重要的知识点还是会去网上搜资料,进一步理解,从而加深记忆。
其实我记性很差,直到现在我也只能记住一小部分,那一小部分就是理解了之后记下来的。
如果大家记性比较好,可以尽量多记,如果记性跟我一样差,不妨找一些高频的记一记,深入挖掘一下,面试时候多说一点。
后来我面试了那么多次也发现,问来问去就那几个题目。
像C++我被问的最最最多的就是多态的实现原理;计算机网络问的最多的就是TCP的可靠机制;操作系统问的最多的是进程线程的区别;MySQL问的最多的是隔离级别;Redis问的最多的是数据类型……
除此之外,我男朋友每天也会收集一些牛客上的面经,我就直接拿来用了,每天看各种真实面经,我会在ipad上边看边写写画画
项目
项目经验我觉得最好是能够去实习,如果因客观原因不能去实习,就自己准备。
除非你学历或其他条件比较优秀的话,只讲科研成果或许也可以(对于非计算机专业的研究生来说)。
我项目是自己做的,主要还是参考开源项目,因为我不能去实习,而且我也非计算机专业,老师只有硬件项目。
其实我准备的项目不难,但是我刚做的时候对C++一窍不通,所以边学边做花了较长时间。
另外,我的项目其实跟互联网后端也没什么关系,主要还是往我科研方向去靠的。如果能有相关项目当然更好,如果没有也没关系。
因为我觉得对于一个没有实习的非科班应届生来说,很难接触到多么复杂多么契合的项目,所以项目难易程度和相关程度并没有那么那么重要(当然如果要冲击SP的除外)。
很多大厂面试官,其实更想看到的是你在项目中有自己的思考,最好是有自己的一些创新或优化的点。
这里要说到,其实有时候大厂的面试会比小厂更简单一点,因为小厂更看重的是你是否有实际的项目经验,能否一来就做事,而大厂主要看你的思维能力。
最后,自己的项目自己一定要了如指掌,做好被面试官深挖的准备。
简历
知识点那么多,如何引导面试官问你会的问题很重要。简历就起到了这个作用。
个人建议不要写的太笼统,尽量把知识点列出来。这个知识点,可以是项目中的,也可以是专业技能中的。
面试官其实很多时候不知道问什么,所以极大可能性会对着你的简历问。
比如我简历上写了epoll,他就会问“epoll是什么“、”为什么用epoll”、“还有什么其他IO多路复用的方法?它们有什么区别”、“epoll实现原理是什么”等等。
那么只要你把简历上写的内容都提前准备了,面试自然会觉得很顺利。
投递路线
投递公司的顺序,那就是先投小厂,再投中厂,最后再投自己想去的大厂。
一开始,我也投了一些小公司,想要积累经验。但是我发现,好多公司不是简历挂就是一面挂。
后来,我投了一些不太想去的中大厂,获得了一些面试机会,积累了一些面试经验。
其实从第一次面试,到最后一次面试,有一个很明显的感觉,就是我的心理素质变好了。
前几次面试,每次面试官让我手撕算法题时,我都很紧张。明明题目不难,脑子里却一片空白。
后来面了几次,拿到一两个保底意向书之后,我就很明显地感觉面试不怎么紧张了,做题时可以让脑子转起来了。
这样也可以帮助我更好地发挥出实力,去冲击更理想的offer。
这么说就是想告诉大家,除非你准备的真的真的很充分了,心理素质也很好,否则不要一上来就冲击自己最想去的公司。
可以先试试自己第十想去的公司,如果过了就去试第五想去的,这样逐步逼近自己心中的Top3。
但是也不要面太多,因为面试真的很疲惫呀,万一还没试到你最想去的公司你就躺平了,就有点可惜了哈哈哈。
另外很重要的一点是,我建议还是早下手为强,不要太过犹豫,总觉得自己题也没做好,八股文也没背熟,就迟迟不敢行动。
我觉得比这些更可怕的是hc没有了,那就更加束手无策了。如果真的没准备好的话,也可以再准备几个月,冲击春招。
此外,大家如果对Base地不是特别在意的话,可以尽量避开高竞争地区,比如今年虾皮上海hc少投的人多,竞争太大。
其实上海的竞争一直比较大,可能是附近高校比较多。
如果觉得去哪里都可以的话,可以事先了解一下意向公司在哪里的HC比较多。
一般来说总部的HC会相对充裕一点,机会可能也大一点。
心态
秋招是一场持久战,心态很重要。
其实很多时候,面试的难易程度,取决于面试官想不想要你。
而他想不想要你,又取决于多个因素,例如HC还够不够、项目匹配程度等等。
在八月份的时候,我几乎每天都有面试,很累,但也很充实!
我也碰到过让人生气的KPI面试,但是不必太放在心上。
一个好的面试官,如果问到一个难的问题你一时没有思路,应该会去引导你,让你逐步去思考,去挖掘你的潜力,而不是一上来就否定你,或在那边沉默或叹气。
如果遇到这种情况,不必在意,放平心态,继续努力就好了。
好的面试官就那么多,不好的多了去了,遇到几个也不奇怪,把这篇揭过去,下一页更精彩!
总结
首先,对于校招来说,学历肯定是重要的,没有哪家公司会完全不看学历,只不过比重多少的问题。但是这不代表学历不占优势就没有机会了,双非上岸的例子比比皆是。
学历、获奖、论文、项目经验、大厂实习、绩点、基础扎实、善于思考等,任意一项都可能成为加分项,而每个公司都有自己看中的点,只要肯努力肯思考,机会就多多。
其次,我前前后后面试了大概有十几家公司了,我总结一下我面试过程中一些公司的特点,并不代表全部:
1、华为、阿里非常看重项目,我从头到尾几乎一直在问项目。另外容易被忽视的点:华为测评很重要。我碰到好多华为测评挂的同学,大家尽量在轻松愉悦的情况下去做的哈哈哈。其他公司测评挂人的比较少,但听说也有,所以都要认真对待呀。
2、字节基本上每一轮都是项目+八股文+做题的形式,而且基本就是照着我的简历问的。可能我也是比较幸运,看网上面经说字节很看重算法题。
3、拼多多笔试有点难,而且后两题很有可能会跟数学有关系。面试主要看面试官个人风格,一般前两轮比较重基础。
4、其他公司比如网易游戏、米哈游,或者其他公司的C++岗位,对于C++基础会挖掘的比较多,例如我碰到的关于delete this的思考、关于dynamic_cast的原理等等,这些对于不懂C++的面试官,可能根本不会问,但是游戏厂或C++岗就可能问到,可以针对性地准备。
5、最后,到了HR面,大家也不要掉以轻心,有些公司的HR面是很重要的。一些HR会问你个人的一些经历,来判断你的综合能力,比如与人沟通的能力、应对困难的能力等。
此外,HR还会判断你去他们公司的意向是否强烈,我有时候太过耿直,实在说不出骗人的话,然后就挂了哈哈哈,希望大家引以为戒。
下面是我的面经
我面试的公司不少,就挑两个有代表性的吧,我主要分享一下商汤科技和字节跳动的面经
1、公司:商汤科技,岗位:C++开发
一面
项目
八股文
STL中的容器了解哪些?
deque和vector的内存分配情况是什么样的?
时间中断是什么?
做题
写一个生产者消费者模型
二面
项目
做题
一个无序数组,返回出现次数最多的k个元素
八股文
C++、操作系统、gdb
gdb 怎么打断点、查看所有线程、打印堆栈,怎么传入参数?
死锁怎么排查问题,怎么打印堆栈,那怎样查看某个线程的堆栈?
动态库和静态库,为什么要有这样的区分?
用户态和内核态的区别?为什么用户态的崩溃不会导致系统崩溃?什么情况下会系统崩溃?
C++有几种创建线程的方式、线程销毁的方式?
线程之间同步的方式?C++里面怎么创建一个信号量、条件变量,条件变量有哪些接口?
线程之间通信呢?
C++11右值引用是什么?移动构造函数具体怎么实现的?
大小端是什么?什么时候用大端什么时候用小端?
三面
八股文
C++中重载和多态是什么样的关系?多态的实现原理?
代码设计题
一个函数要生成0,1,2要让生成0的概率是10%,生成1的概率是50%,生成2的概率是40%。
项目
讲C++项目,项目目的,最大的难点。
讲科研项目,看理解能力和表达能力。
2、公司:字节跳动,岗位:后端开发
一面
项目
介绍技术难点
epoll的原理是什么
为什么用epoll
讲一下零拷贝
做题
二叉树的序列化和反序列化
八股文
https的加密认证的过程
redis数据结构及其底层实现
二面
项目
八股文
多进程和多线程的区别?
TCP的粘包问题?除了分隔符还有什么方法解决吗?
epoll和select的区别?
epoll中水平触发和边缘触发的区别?
零拷贝介绍一下
为什么redis里面,用单线程,还能这么快?
MySQL中聚簇索引是什么?
线程之间通信的方式?进程之间通信的方式?
介绍一下几种排序算法的时间复杂度?什么是稳定性?
做题
字符串全排列
找递增递减序列的最大值 (就是lc162的简化版)
三面
项目
三面的时候,明显感觉到问的比前两轮深
八股文
C++11有哪些新特性?
智能指针有几种?unique_ptr是什么,如何实现的?
STL中存储键值对的容器有哪几种?map和unordered_map有什么区别?
做题
实现unordered_map,不能用STL中的容器,只能用数组和链表,实现插入、删除。
好了,以上就是学妹本妹的分享了!我们下期再见。
本文来源: