回馈牛客-秋招总结
在牛客的三次许愿都实现了,回馈牛客,写个秋招总结吧。
双非本,985硕,非科班选手,最后去了华为。
电气工程本硕,硕士的项目基本是用单片机写控制算法,这是背景。
1.确定方向:春招,发现电气的对口工作太少了(如果不想去电网的话),决定转码。
2.刷题:
四月中旬:
两天时间看了一遍菜鸟教程的C++教程。
四月~五月:
刷完牛客上的华为题集,熟悉ACM形式的输入输出处理,对字符串,BFS,DFS,递归,DP有了一个初步的概念。
这一套题算是代码启蒙了,哪里不会就上CSDN上搜一下,顺便学了一些基本的STL库的用法。
这一阶段的刷题,基本就是暴力破解,当时对复杂度毫无概念,就硬写,就暴力破解。
五月~六月:
《剑指offer》- 终于对代码复杂度和优化有了概念,了解了强大的字典法和哈希。
七月:
在看专业书,暂缓刷题。
八月~九月:
Leetcode刷了200题目,按照Leetbook的字符串、链表、二叉树、哈希、二分查找刷过来。
冲了月度会员,刷华为的。
Leetcode很棒,题解非常详细,一个题解看不懂可以看另一个。
当时因为时间不够,刷的比较混乱。
按照大佬们的经验,按照类型刷是非常有帮助的,重点关注几个类型的题:字符串、链表、二叉树、BFS(特别是字符串相关的BFS,不容易直接看出来,需要转换一下),DFS(关注如何剪枝),DP(重点在各种背包问题),位运算和数学相关的题目(这两个类型比较容易被忽略,但是在秋招的笔试中有见到)。
3.基础知识复习
操作系统:看了一遍清华的小紫书。(本次秋招出现频率最高的面试题是:进程和线程的区别)
数据结构:看书,黑色封面的一本。
计算机网络:来不及看书了,在地铁上看B站考研课。
计算机组成: CSDN上的面经。
MySQL:B站的速成课。
4.关于复习的心态和时间安排:
前期白天科研,晚上复习。走读的原因,一天有三个小时在交通工具上,可以拿来上B站大学。
八月中旬以后,全面投入复习。
由于是非科班选手,要接触大量的新的知识和概念,早上学习的概念,晚上睡前要复习一遍巩固。
有很多零碎的知识点,如果不复习,就很容易忘记。(八月学的http协议到十月份就忘记了,被字节的面试官问啥了)
短时大量学习比较慌的一点是总是担心学不完学不会,到面试的时候就尬住了,不会。
非科班选手证明了,可以的!拼命学!能学会的!
5.关于笔试和面试的心态:
笔试:
总体看一下笔试的题目,题目的难度倒是不一定是从简单到难的,有时候第一题难第二题反而很简单。
总的来说,你熟悉的题目就是很简单的,那就先挑选熟悉的题目AC掉,有了保底分数之后,再调试难的题目心态就会好很多。
另外,注意做题时间,一个中等难度的题目,在比较顺利的情况下,应该在半个小时左右的时间做完。Leetcode现在有模拟面试的功能,可以在刷题的时候计个时。
(vivo是一小时三个题目,我没注意时间,于是没做完。)
不要在一个题目上纠结太久的时间,我遇到过两次,觉得自己写得明明一点问题都没有,但是就是0AC,这个时候,先放弃它吧。
就像做项目的时候一样,一些细节上的bug导致整个代码无法运行,而这个小bug往往需要花费一周的时间去调试,这个时候,在笔试中,就放弃它。(vivo和网易的教训)
面试:
要够抗压!
要够抗压!
你可以认为你面临的所有面试都是压力面,那么所有的压力面都变成了普通面试。
接受一个现实,面试官都是本领域经验十足的前辈,他们的知识面一定是比你广的。
接受一个可能的情况,面试官会不断探索你知识范围的边界,可能从广度上下手,也可能从深度上下手,简单来说就是,非要把你问傻掉为止。
所以,面试中,(像我这种比较菜的非科班选手),就会出现答不上来的情况,这时候稳住心态,微笑着说“抱歉,我没涉及到这个领域,我回去再学习一下”,并记录下这个知识空白点就好了。
接受面试中出现的像这样的瑕疵和不完美,不要被这个影响到心态,抗住!
7.项目
了解项目中的每一个细节,包括项目流程,时间节点,市场调研;包括代码优化,运行时间 ,性能指标完成度。
项目不完全对口是没关系的,只要你能通俗易懂地给面试官讲清楚这个项目是干什么的,实现了什么目标,具体是怎么做的就可以了。
面试官会找到他感兴趣的点,进行深度挖掘,常见的点比如:代码优化,运行时间,问题如何定位,软硬件交互etc。
一点小建议:视频面试的时候准备一张项目框图,现场面试的时候可以现场在白板上画图,对着图讲,更容易讲清楚,也能帮助面试官理解。
8.关于各个厂的秋招回忆:
1.华为:通用软开,给了offer,去华为了
我最想去的公司,也如愿以偿了。
如果没有非常充分的准备,并不建议优招,华为似乎是看笔试面试的成绩来定级的,和面试的批次关系不大,所以,为何不多复习一个月呢。
笔试:3个题目,600分,得到100分就过了。常见考点:字符串,链表,排序,BFS,DFS,DP。注意,笔试题目可能很长,要考一下阅读理解。我的第一个题目就扑在了读题不认真上了。(现在想起来,就是很后悔,非常后悔)
一面:一面抽到了Leetcode的hard题目,排序K个链表,之后是数据结构和算法知识的快问快答,非常刺激。
二面:二面抽到了Leetcode的mid题目,括号匹配,用栈做的。之后是基础知识+深度挖掘项目经历。
三面:项目经历,涉及到一些项目管理方面的事情,出专利的细节,项目投产情况,指标完成情况,预研与交付是怎么做的。
问城市,问薪资期望,问对华为奋斗文化的看法。
面试在一天之内完成 ,面试官非常友好,虽然今年泡池子非常痛苦,但是它值得。
2.字节跳动:后端,扑在三面了
杭州的飞书做了一次笔试,我做的第一个笔试,挂了。
北京的抖音给了第二次机会,笔试过了,一面Leetcode hard+http协议+C++语言知识+数据库基础。
二面:Leetcode mid,面试官让我自己写测试用例,并且对测试用例进行分类,想了大概十几个分类的测试用例,然而面试官依旧温柔地提示“你再想想看呢?”,当时有点崩溃。然后是手撕MySQL,当时没学过MySQL,根本不会。然而面试官依旧耐心地提示我,简直是给我上了个MySQL基础课。于是回去恶补了MySQL,但是三面没有考到!!!三面是海量算法题,手撕Leetcode hard,最小覆盖串(对不起,我太菜了,没写出来),然后是各种的算法题目,要求就讲思路,不是完美方法的话,面试官会要求你做优化。第三面,扑了。
字节我是抱着,我想看看我这只小菜鸟能存活到第几面的心态去的,所以,就算答不上来,也能接受。字节的面试官非常温柔和蔼,但是不会的题目会疯狂给提示,而不是放过你。怎么说呢,痛并快乐着吧。
3.海康:嵌入式算法应用,泡在池子里淹死了
免笔试
一面:电话面(突然来电,没有预约),讲了项目中的团队协作
二面:技术面,顺利通过
三面:综合面,卡在了一个问题"你觉得你的三大短板是什么?"
然后,淹死了,我想可能是,招聘页面比较靠后的岗位HC是没有的?
4.恒生:C++软开,给了offer
笔试:非常难,要写数据库和进程通信算法,读代码题也非常难。行测要做两次,也非常难。
一面:问了STL中Vector的[] 和数组的[]实现上有什么区别,要求对STL理解非常深入
二面:综合面,去现场,谈人生。恒生很好的一点是,不压价。
5.大华:C++算法应用,给了offer
笔试:大量的C++问题,时间不够,没写完。涉及到了智能指针。
一面:突然来电,技术面,围绕项目。
二面:突然来电,技术面,围绕项目,一个比较好玩的问题是:你调试过最傻最哭笑不得的bug是什么?
面试官很亲切,在聊天的过程中学到了一些嵌入式的观点,很nice的公司。
6.中控 : C++软开,给了offer
没有笔试,现场面试,围绕项目。问到看了什么书,对不起,我光看课本了,这就下单《C++ Primer》。
7.新华三: C++软开,给了offer
笔试:嵌入式相关
面试:现场面试,一面技术面,二面hr面,三面主管面,全部围绕项目。被问“了解新华三有什么产品么?”,没提前做好功课,顿时尬住。
央企,要加班,新华三的楼气势磅礴。
8.博世杭州:嵌入式软开-电机控制方向,给了offer
传统行业,德企,招人很少,非常遵守劳动法,八小时弹性工作,班车早八晚四点半,反正八小时干满就下班的公司。
不笔试,面试围绕项目,交流非常愉快,唯一面的专业对口公司。
有机会全球轮岗,其实挺想去德国博世工作一段时间看看的,但是当时已经签掉了,含泪放弃。
9.浙商银行:软开 要的JAVA,但我是C/C++
一面,笔试,交材料,然后就没有了
10.vivo:笔试,然后就没有然后了。
11.网易游戏:笔试让我印象深刻,四个阅读理解题,打印矩阵,写文件系统,写神经网络的优化,写流浪地球的行星发动机的配置。AC了一个,写了两个,后面两个实在是超出了我的内力范围啦~
12.中国移动:
笔试是海量行测和企业文化,一面问成绩和愿不愿意调岗,二面我已经签了,所以没去。
9.一些唠唠叨叨的话
写完这个,我的秋招就结束啦,要专心写毕业论文去了。牛客算是我秋招启蒙,感恩!
师姐说:“秋招不是终点,重要的是坚持学习!”
所以Leetcode刷题还是会坚持下去的,《C++ Prime》《算法导论》也该看起来了,加油哇,阿云!
一起加油吧,曾经秋招过,正在秋招中和即将秋招的各位~!