写在最前:之前答应了力扣的小姐姐,拿到offer就来分享一下面试经验。后来华为实习结束,等了一个月,终于在国庆前一天收到了华为的offer。薪资暂时未定,但应该不会想着去找其他企业了。如果不选华为,应该会考虑读博。
薪资目前已经定下来了,14级,尊重价。感谢一路帮助过我的人,希望此文能帮助那些转行迷茫的人儿!
个人背景:
1)转行时间:两年,研一到研二
2)转行基础:零基础,啥语言都不会,敲个代码一堆bug
3)个人学历:本科,华南理工大学,土木与交通学院;研究生,同济大学,土木工程学院
4)个人荣誉:本科学渣一枚,但也捞到了一个奖学金。研究生阶段拿了一个全国研究生数学建模比赛三等奖
(这些荣誉都没多大含金量,放在这里只是想说明,当你信念足够坚定,菜鸡也是可以转行的)
本文分四个部分:1. 笔试分析 2. 面试分析 3. 行情分析 4. 心得感悟
一、笔试分析
笔者参加过腾讯、阿里、华为、字节跳动、拼多多、小红书、哔哩哔哩、哈啰单车、红星美凯龙云计算等企业的笔试。
腾讯常考的笔试题包括但不限于:贪心算法、二分查找、BFS、DFS、动态规划。腾讯的笔试题是一年比一年难,去年的题目我在牛客上基本都能做出来。但今年的题目,5道只会做两道,最后当然也就没offer啦。
阿里的笔试题比较迷,分内推笔试题和正式笔试题。内推笔试题会简单很多,基本去力扣上搜一下就是了。但如果是参加他们的正式笔试,题目相当难(或者不是说难,而是在一小时之内真的很难写完两道题,而且语言限定只准使用Java)
字节跳动的笔试题包括但不限于:二分查找、BFS、DFS、动态规划。字节跳动去年的笔试据说是最难的,但今年从整体做题感受上来说,我感觉腾讯的会更难。要过这三家大厂的笔试,多去牛客上刷互联网公司真题就好了(千万别信什么剑指offer66题,那不是笔试用的,是面试用的)。
剩下的华为、拼多多、小红书、哔哩哔哩、哈啰单车、红星美凯龙云计算这些企业的笔试题一般而言都比较简单,这里就不在赘述了。
总结:各大企业重点考察的笔试知识点包括,贪心算法、二分查找、BFS、DFS、动态规划。这类型问题如果没有解题思路,建议去力扣上找对应的题目进行练习。但真实的笔试题与力扣的题目又是有所区别的,因此,牛客网上的互联网公司真题应当作为重点,多刷刷。
二、面试分析
笔者参加过的面试包括:腾讯、阿里、华为、小红书、拼多多、中兴、红心美凯龙云计算。
腾讯是一家比较奇葩的企业,我其实一面就挂了。感觉它是完完全全把我当科班的来对待了,问的全是计算机组成原理、TCP/IP这方面的专业知识。在这方面,我确实比不上科班出身的各位,所以HR问了20分钟也就挂了。
阿里偏重于项目,主要针对我的项目进行询问。同时也问了我一些算法题,让我提供解决思路。由于它问的那道算法题我是真的没见过,没见过就是做不出来,所以阿里二面挂。
华为面试不具备参考价值,在此略过。
拼多多偏重于算法,我是一面挂。最后挂的原因在于,面试官让我手写一个合并区间的题目,我当时考虑的不够仔细,有许多错误,因此最后也就挂了。
小红书偏重于数据结构。三轮技术面,前两轮全是让我手写代码,最后一轮是考察智商。三轮技术面我全过,但最后挂在了HR面上,也挺无语的。不过没了就没了,就算拿到他们的offer,也不想去。
总结:对于非科班出身的,大企们对你也没啥好考察的。重点在于手写代码!腾讯、阿里、拼多多都是我在华为实习前面的,说实话,当时我也是参照网上的经验贴,人家说要准备哪些知识点,我就去准备。但现实是,我花一到两个月死记硬背的,怎么能和别人四年的积淀相比呢?所以,作为非科班,需要的是扎扎实实的代码功底。这里推荐一个很笨但很有效果的方法:刷力扣或者牛客上的题目时,我们要逼自己一把过,即,代码一提交就是正确的!同时,也要多刷刷剑指offer66题,记住,不是在电脑上敲出来就行了,要在纸上写!因为现场面试的手写代码,是不会给你第二次提交的机会的,你,只有一次机会!
三、行情分析
这里我想告诉各位一个很不幸的消息,对于算法岗,各大厂基本已经饱和了。如果你是科班出身的,除了要能写的一手好代码,还得需要在顶会上有最少一篇文章。
想想15-17年,人工智能正处在风口上,安卓、IOS的火爆又促生了一大批新的开发需求。毫不夸张的说,那时候只要你是个人,想转行,就有人要,一点代码功底都不需要。但随着人工智能泡沫的破裂、安卓IOS开发需求的减少,各大公司现在都在缩招,想进去,没有一身过硬的本领是做不到的。
现在想转行对非科班真的太不友好了。这么说吧,以前非科班的转行,都是凭借着过硬的代码功底进入算法岗。但现在由于缩招,他们不仅要求你代码功底过硬,同时还需要你在顶会上发一到两篇文章!在计算机的顶会上发paper、发SCI?科班出身的都不一定能做得到,更何况非科班出身的了!到底有多难心里掂量一下就清楚了。
所以非科班们就只能往开发岗走了。其实我个人对算法并不感兴趣,而且在人工智能兴起之前,计算机毕业的学生也只是做开发的,所以别总觉得去开发就多low,相比于到现在还很难落地的人工智能,开发算是一个正路子吧!但非科班们转开发,如果是想去阿里,就需要对JVM有着很好的理解,该看的面经还得看。同时多去刷刷力扣数组类型的题目,也多做做剑指offer66题。手写代码一次过,这是成功转行的前提!
总结:随着人工智能泡沫的破裂和安卓IOS开发需求的减少,转行变的越来越难。算法岗或许很难(过硬的代码功底+至少一篇顶会paper),但开发岗应该还有机会!开发主要用的是Java,因此,对于JVM,就需要有足够深入的理解,同时,也要花足够多的时间提升自己手写代码的能力。对于非科班出身的各位,在计算机网络、操作系统、TCP/IP上,你是经不住问的!但在专业知识方面,你只需要对JVM理解的足够深,一样是你的亮点!面试是有技巧的,你需要向别人展示你擅长的!但又是没有技巧的,因为拼到最后,比的就是你学习的深度!
四、心得感悟
在转行的两年中(从研一到研二),我遇到了挺多贵人,也有幸能遇到力扣这么好的一个网站,提升自己的代码能力。九月份华为实习结束后,我只面了两家,一家小红书,一家中兴。小红书最后挂在了hr面上,我无话可说,可能是个人的价值观和它不一样吧。我仍然记得当时和华为的面试官聊天的时候,相谈甚欢,彼此相信,和优秀的人一起做对社会有意义的事,同时收获一份不菲的薪资,就是幸福的!但在小红书的面试过程中,字里行间,我都透露着小红书仍然需改进的情调,你让HR怎么想?最后给大家提几点想法吧!
1)转行很难,作为本硕双985的,我都感觉转行很吃力!华为是一个很看重学历的企业,如果你不是双985,想进去真的很难。即使是,由于目前华为内部正在提高员工质量,笔试面试难度在增大,想进去也不容易!因此只有扎扎实实的提高自己的代码功底,才是王道。
2)各大网站的面经很多,但对于非科班的,如果你全信了,那基本也就凉了。阻碍我们的不是我们的学习能力,是时间!我们时间有限,只能挑重点。面试的重点是什么?一是自身过硬的代码能力,二是专业上对其中一项有着深入的认识,如果是Java开发,我强烈推荐JVM。
3)永远要记住,面试只有一次机会!所以每一次面试,都要做充足的准备,推掉那些不重要的琐事!在手写代码上,要保证自己思路清晰,一把过!
4)行内有句话叫做,笔试刷牛客,面试刷力扣。由于笔试涵盖的知识点比较多,因此在学习知识点的过程中,建议刷力扣。力扣上可以看到优质的代码,这对个人代码质量的改进,有着极大的帮助,see the best,blind to the rest。但由于实际笔试是需要解决实际问题,因此也需要多刷刷牛客上的公司真题,来提高自己的阅读理解能力。面试题目大多考察基本的数据结构和一些取巧的算法,因此需要多刷力扣来扩充自己的知识面,但在刷力扣之前,建议先把剑指offer66题认真做完,因为那是基础中的基础。
(顺便透露一句,阿里、华为、小红书、拼多多、红星美凯龙云计算,面试要求的手写算法题,基本都是来源于力扣)
5)其实面试到最后,看的还是智商和paper。智商是没法变的,但paper是可以靠努力获取的!希望大家在自己的研究生生涯,除了为找工作作准备,也多花些时间在自己的科研上。无论是大公司还是小公司,比到最后,还是会看你的简历的!
最后,祝愿大家都能在接下来的秋招中,找到自己心仪的offer!
码字不易,如果有帮助,欢迎打赏~
