大三学弟的学习面试经验,他很成熟
作者:阿秀
原文链接:https://mp.weixin.qq.com/s/QDID1F35OFmfHN6vFHnPyA (opens new window)
我知道很多关注我的都是研究生来着,可我也不能一直发研究生的学习和上岸经历啊。
现在来填坑来了。。。刚好最近有位大三学弟跟我分享了下他的学习、面试经历(三七互娱、字节跳动、阿里、腾讯、美团、华为)。
我看了后觉得很不错,他想得很多想的也很远,很多思想不像是一个本科生所拥有的,于是邀请他做了一些学习找工作的心得分享,现在分享给我的本科学弟学妹们,建议你们看到最后,会有不少收获的。
下面是正文:
# 个人背景
本人211本科,拿过两年奖学金,软件工程专业,无大型项目经验,无ACM/ICPC获奖经历。
# 大学轨迹
大学决定自己发展的主要节点从大二下学期期末考试完,发现自己基本没有保研的希望了,就干脆放弃保研。
自己干自己的事情,打算想找份好工作,但因为我缺乏实习经验。所以提前做好职业规划,在参照各种网上经验和几位师兄指导后,大概在 2021 年 1 月份就开始想下定决心往C/C++后台开发方向转,也就是我大三上期末的时候。
写到这里,感觉有点天意弄人,最后的offer却不是这个方向的。
我本科做过的项目也没有和研究方向相关的,说破天了也就一个破产版的 QT 实现计算器,有多破呢?这么说吧,我连信号与槽都没弄懂。。。
还有个 Java 相关的 SSM 框架实现的商城,我相信大家是懂的,因为这种学校作业含金量极低。
在此特别提一下我的互相监督的四人小组,在开始学习到如今,互相监督彼此,一起去图书馆、一起去吃饭,监督彼此,督促彼此,相互搀扶着走过这段时间。
感谢他们三个大佬给予我莫大的鼓励,真心感谢。
这是我们的四人学习小群。
群名就叫青年大学习,一语双关~
我们会一起约着去图书馆,谁不去谁是狗的那种。
Lib就是library,去图书馆的意思
# offer成果
阿里巴巴-UC事业群、华为消费者bg软件部
# 学习时间点
1、寒假
2~3月份主要在打基础。
2、3月初~3月中
主要是混迹牛客寻找面经并总结、期间就找到了秀哥的八股文,跟着秀哥的C/C++八股文走了一段时间并进行部分归纳完善。
3、3月中旬~3月底
这期间主要是项目的研发,第一个是烂大街的webserver,第二个是之前做的一个微信小游戏的回顾,第三个是看秀哥推荐了一个跳表项目,非常有用,可惜不够时间实现。
4、3月底开始投公司,面试笔试
在整个寻找实习的过程中是辛苦的,但也是有所收获的。
在面试中、面试后,都要去学习与总结。在面试过程中,遇到了不会的问题是很正常的,这个时候也应该尝试跟面试官讨论,说出自己的想法与思路,若实在没听过或者面试官不给机会的话那就没办法了。
但是态度一定要好,“卑微”一点,别跟你是他大爷似的,拽的二五八万一样。
毕竟大厂的面试官基本都十分友好(当然挂了我们的就不友好了hahah)。
# 面试经历&心得
# 三七互娱
一开始投三七是因为面试大厂前,想找一两个小公司进行面试练手笔试练手之类的,其实到后面发现,并没有什么用,流程完全不一样。
“
这里阿秀插一句,对这位学弟的说法,我持不同意见。我觉得是有必要的,流程归流程,作用归作用。前期多面面一些小厂能够找找手感,减少紧张感,我觉得很有必要!不,应该说是非常有必要!
三七互娱(CVTE也一样,广州三大坑)一开始就是丢给你类似一张试卷一样,大概20道选择题两道编程题。
听上去还挺正常是吧?
我最开始也以为是这样的,但是考试内容就不正常了,我投的是C/C++岗位,结果他中间穿插着考Java的知识(还好Java有些基础),具体考察题目我给忘了。
其中两道编程题,一个二分查找,一个求根号2的后十位精度(不能用sqrt)。
最让我不能忍的是编程题还是那种白板记事本写码,基本的缩进也要自己Tab,美其名曰考察代码熟练度,真是吐了。
然后就是45分钟,60道的图像规律题。。。。着实给爷做吐了。。。然后过两、三周再告诉我挂了。。真心体验极差。。。
算了,此处不留爷,自有留爷处。
# 字节跳动
我投的是后台开发-系统架构部门,base北京。
因为是内推的,所以没有笔试环节。
“
这里阿秀再说一句,以免造成大家误会。并不是每位走内推投递简历的同学都不需要笔试,也不是走了内推就能保证一定进面试。内推是更快更好地筛选面试人,不是保证你一定能进面试,也不保证你一定能面笔试的,这点大家要了解的。
可以说,这是第一次让我自闭的面试,面完对自己产生了极大的自我怀疑!
但不得不说,这也是令我改变良多的一场面试。
那时候因为抖音/火山系统架构部门一句招满人了,于是就把我移到了其他架构部门。
有一说一,面试官人很好,很和蔼,温文尔雅的。
面试问题主要集中于计算机网络、C/C++基础、锁机制,主要是 QUIC 和Sped 协议、HTTP1.0、1.1、2.0、3.0这些知识点。计算机网络问题问得比较深入,我也没准备好,被问的自闭了,自然挂了。
至于编程题是一道 LeetCode 分糖果,我倒是顺利解出来了。在面试结束后,我马上恶补了一手HTTP知识。虽然在后面其余公司的面试中,没有再问到自己恶补的知识,但这次经历真的是一一个非常好的提醒我查漏补缺的警示。
# 阿里巴巴
我投的是阿里巴巴-创新事业群-C/C++研发工程师,base-北京/杭州/广州。
一面主要是项目面,只要面试官对你项目了解部分技术,被问的非常深入,对部分技术深入到底层。
二面的话偏场景题,没有固定答案,一直自由发挥,面试官会提出他的质疑,我也会给出我自己的回答。
三面leader面(大佬),直接丢两个大问题:
1、如何优化磁盘I/O写入写出,从底层往上逐层叙述
2、操作系统内存管理。
第一个问题,直接内心一炸,因为我不会,还好我态度良好。。。怂一手再说...
第二个就简单说了一下而已。
我感觉应该是个人思想的缘故,才导致我最终阿里面试顺利通过的。。。
# 腾讯
我投的是后台开发-光子工作室。我个人感觉是我整个找工作难度最高的一次面试了,凉凉也是不出意外的了,整个过程大概一个半小时左右。
一面凉经
普通问题
考研吗?
什么时候能来实习?
大学现在在学什么课程?
项目
1.怼项目(被问的要死)
2.线程池、有限状态机(缺点)
3.如何查询服务器瓶颈、tcpdump抓包、gdb调试
4.epoll中LT和ET的区别,使用场景,你的项目]用哪个最好
5.项目中如何debug、详细说说
6.服务器的瓶颈如何查询、并如何进行优化
7.项目如何进行压力测试
8.测试过项目的CPU占有、时延等性能吗
9.人物碰撞、射线检测、伪随机的控制
操作系统
1.Linux进程中空间如何分配
2.Linux常用命令
C/C++
1.C++三大特性(虚函数、虚函数指针、虚函数指向地址存储在哪,虚函数表存放在程序哪个区)
2.一个类对象如何进行存储
3.STL map的底层实现(红黑树底层不会,没有深入)
4.B树、二叉树、B树的使用场景
5.泛型底层如何实现,泛型是为了解决什么问题
6.为什么构造函数不能是虚函数?
7.一致性哈希算法,哈希失效了怎么办,服务器查询不了了 如何解决
8.快速排序的时间复杂度
情景题
一个有序数组,如何优化插入。数组很大的情况下,也不可以变成链表。
# 美团
我投的是后台开发,base北京。
由于美团后台开发要求技术栈是go和Python,面试官在一开始聊的过程中发现我的技术栈一点也不符合,基本面试一开始就凉了。
不过面试官也没有敷衍这次面试,在简历中还是问了他比较感兴趣的微信小游戏项目,我讲了半个多小时,我们一起讨论,就好像聊天一样,面了一个小时。
面试官态度还是十分良好的,这次技术栈不符合就没办法了,Go和 Python 接触的都比较少。
挺奇怪的,我明明投的是 C++ 岗啊。。。
# 华为
我投的是软件开发(C/C++),base深圳。
对于华为,就一句话总结吧,面试比较简单,但华为不属于纯正的互联网公司,它的研究方向是音箱、智能汽车这些。
它的面试题目大概就是C/C++基础知识、算法,其它好像没怎么考察。
# 个人总结
在自己两个月的面试中,我学会了三点:
1、遇到不会的问题要积极与面试官进行沟通交流
像一开始阿里的一面,面试官问到:数据库宕机,如何维护数据库连接池?这个问题的时候,我甚至都不知道数据库连接池中连接数据存放在结构体中,尽管数据库宕机了,数据库连接池的数据仍然不会改变。
我就一直尝试着问面试官,能不能尝试重启、重新创建数据库连接池等自己的想法。
有些问题可能面试官也希望和你达成沟通桥梁,有时候自己说的龙飞凤舞,面试官可能什么都听不懂。因此沟通是很重要的。
2、引导面试官往自己擅长方面进行考察
这点秀哥的面试部分讲得比我好,你们可以去看看。
“阿秀保证没拿刀架在他脖子上让他说这句话,他指的是这篇文章三个多月、40余场面试浓缩为6000字 (opens new window)
3、总结与反思
每次面试完,都要对这一次面试的题目,自己不会的、不熟悉的地方与知识点进行归纳总结,查漏补缺才是重中之重。
最后说一句,个人认为最重要的是在学习的过程中要始终总结自己,永远保持一颗谦逊的心,永远居安思危,有能接受最好结果的预期,也要有能接受最坏结果的准备。
# 结语
祝福这位小兄弟。
还有,努力不一定成功,但结果一般不会太差,但不努力一定不会成功!