秋招进程过半,最近很多人看到我的面经的帖子都在询问楼主做什么的,非科班该如何备战秋招,因为实在一个个的回复起来比较麻烦,这里趁着闲暇时光整理了一下自己作为一个非科班的学生是如何准备秋招的过程,供大家参考(科班大佬们绕路),因为本人水平有限,所述内容可能甚有不妥甚至偏谬之处,还希望巨佬们批评指正。
先说一下自己的情况吧,本科南方某211网络工程专业学生,摸鱼四年,感觉上学的课程不少,但是没有哪一门很精通,简单说就是杂而不精,可能大部分的学校都是这样吧。大四的时候看着身边的人都在考研,自己也没什么目标的跟着考研(跨考通信专业,当时的想法就是跳出本科的专业),因为数学没过目标院校的分数线,被调剂到了某知名院校的“隔壁学校”—北方某211学校的电子与通信工程专业。实验室呢是做一个非常偏的方向,分软件和硬件,说软件呢其实就是拿MATLAB跑跑仿真,改改算法,硕士基本难有科研成果;硬件方向呢主要是跟老师干活,基本是做纯电(电路调试,涉及一点STEAM32编程),FPGA核心部分是老师做,学生是不插手的。研一学了一堆通信相关然而其实和自己研究方向没有一毛钱关系的专业课(比如5G,信号编解码啥的)。实验室的要求呢是不准实习(实习的前提是二篇SCI,所以实际上基本不太可能),自己做的方向呢是三维重建(自己找的方向,因为实在不想做实验室的方向,太偏了,基本出来就是零对口)。不知不觉就到了研二要开始找工作了。好了,说了这么多,大概的经历就是这样了。简单总结一下就是:非科班,不给实习,没有名校光环加成,没有文章,没有系统的学习过编程。
说完自己的非科班经历再说一说自己的秋招情况吧,自己投的不多,投的公司应该都在下面列出来了,楼主比较幸运,这次秋招只要是给机会面试了的都拿到了意向书或Offer
拿到了意向书的有:字节跳动提前批(已签约,薪资保密,只能说薪资+福利都还蛮给力)、某为无线嵌入式软开(14A,20*15)、某里(录用,,20*16+杭州人才一次性补助9W)、航天科工集团四院某所(录用,解决北京户口,薪资第一年23W,第二年25W,第三年28W)、航天科工二院某所(录用,不解决户口,直接拒了,没谈薪资)、某破站(20*15)、某信服SP(18*16)、中兴通信南京(算法工程师14*12......)。
简历被挂的有:依图的算法工程师、虎牙和拼多多的cpp工程师、腾讯算法。
因为个人原因投了简历放弃笔试面试的:苏宁、大疆、大华、映客
接下来说说自己的准备经历吧:
简历部分:经得起推敲
其实面对众多大佬们的光环,这里楼主就不多介绍其他内容了,更多想说的就是你简历上的每一个字都要经得起推敲,其实身边有同学就是这样,为了自己的简历显得更充实一些,一些自己不了觉甚至没做过的东西也往简历上写,很多时候被问到了结果答不上来,就会对你整个人的印象分大减,甚至质疑你整个简历的真实性,比如以楼主简历的专业技能方面,楼主被问到的就有:Python会到什么程度,简单讲一讲(对应Python),去噪算法有哪些,图片如何缩放(对应OpenCV),OpenGl会到什么程度,主要用了哪些功能(对应OpenGL),摄像头的二次开发主要做了哪些工作,有什么效果么?(对应摄像头二次开发).......几场面试下来,这个部分基本都被面试官扒了个底朝天。
同样的项目部分也是这样,不在于多在于精,在于透彻,在于对每一个环节细致的把握。面试官的套路基本都是一致的,就是由浅入深,层层扒皮,直到问到你觉得困难了,那基本面试官也了解你是什么水平和深度了。很多身边的人为了简历充实,贴了一堆不是自己的项目,问起来也只是知道皮毛,结果留下的印象就是:很水,不深入等不好的印象。
尤其是作为非科班的同学,你还需要额外考虑的就是你做的东西怎么给面试官讲清楚,怎么讲的符合逻辑也至关重要,以楼主的感受,楼主去面试软开类岗位,面试官懂图像的不多,很多人就担心不对口什么的,其实不是这样,对口当然很重要,但是面试官更关注校招生的其实是你遇到问题,分析问题和解决问题的能力,而且你要有这种自信,就是:你不懂,那刚好,反正我说什么都是对的(当然这是精神层面的hhhh,不鼓励大家瞎说(吹)啊)。基本你把项目流程将通顺,让面试官作为一个“小白”依旧觉得你做的东西他懂了,你基本就成了一半了。
编程部分:一遍记不住,三遍还记不住么?
在这部分前先推荐几本书吧,仅仅针对非科班而言,大佬们无视就好:
《大话数据结构》:刷题前有必要过一遍的书,身边很多非科班的同学连数据结构都没学过就开始刷题,其结果往往是非常痛苦+中途放弃,建议有时间的同学刷一下这本书,不需要你多深入,至少简单了解:树,遍历,排序的一些基本概念再去刷题,就会轻松很多。
《剑指Offer》:这本书的地位这里就不多赘述了
再推荐一个网站:https://www.acwing.com/(北大一大佬建的网站,真心力荐,楼主后悔没有早点找到这个网站),里面有剑指的所有题以及视频讲解(讲解都是现场编程,Up主带着你写,分析思路),还有很多经典问题(背包九讲、DP专题等等)。总之这个网站值得拥有。
好了推荐完这么多楼主说说作为非科班的怎么刷题吧:最开始的时候楼主其实也是上来就抱着剑指就“啃”,因为没有学过《数据结构》这门课程(其实本科上过,但是因为是非计算机专业的,上的就很水,到研究生也早忘光了),所以也经历了上面的那个痛苦的过程就是“剑指不是手撕么?怎么这么难?题解都看不懂!”(科班大佬们别笑.......)。所以楼主赶紧花一周时间从头到尾学习了一下《大话数据结构》,然后再去看《剑指offer》就会觉得轻松很多了,至少看讲解是看得懂的了。然后第一轮剑指楼主大概是画了两周的时间搞定的,看的很细(每一题的解法和图都写到小本子上面,配一个笑哭的表情)。看完之后觉得成就感十足,然后反手来了一波“回头看”,结果又发现“这题我看过么?怎么还是一点思路没有!”。好吧,楼主发现自己并非天赋异禀(之前看帖子有大佬面试前花四天时间准备一波剑指233),就开始了为期两个月的《剑指Offer》“拉力赛”。既然一遍记不住,那楼主就多刷几遍。从七月初到九月中旬博主不完全统计大概刷了5遍《剑指offer》,当然后面两遍更多的是追求0bug和面试前的温习,其实刷到后面,就会发现越来越简单了(最后一遍楼主刷剑指是在准备华为面试之前,大概一天就能刷完66题),说了这么多,想强调几点:
1、《剑指offer》只是开始
剑指offer只是基础,如果只是刷完剑指可能你只能应付一大半的面试,而实际做笔试的时候你会发现一脸懵逼,因为只刷剑指可能你连笔试题的题目都看不大懂,输入输出都不会写,所以这里首先推荐大家刷一下leetcode的前一百多题(牛客网上有,这些题里有一部分和剑指重合,可以当练手,还有一部分是比剑指要难一个level的,可以提升自己的思维能力,关键是这些题里可以弥补剑指中对于动态规划(DP)问题的巨大缺失,而DP问题在楼主的面试经历来看大部分公司都问到了)。刷完这些之后建议刷一些真题实战(楼主刷的是华为机试题,当然有志于互联网的可以选择刷校招真题,这部分可能会很难,但是可以让你真实的体验到做笔试题的样子,尤其是写从头开始,写输入输出和函数部分,这部分对于时间紧凑的来说不用很多(时间充裕的当然多多益善),以了解套路为主)
2、不要你觉得自己会写,我要你真的会写
现在的面试包括笔试的现场手写代码环节其实是很多人都怕的,因为一是你写的每一步都被对方关注着,同时要你现场跑出来。所以这时候需要把握两个字:细节。就举个简单的例子:刷剑指谁都刷,但是能一遍AC的我相信还是少数,而你面试的时候很多时候能不能写出来往往就是因为一些细节平时不注意导致出现Bug(最简单的例子,二分谁都会写,但是很多人写出来就进了死循环,究其原因是因为边界条件这种细节上的把握还是不好)
3、刷题别走火入魔,要学会思考和甄别:
身边有一些人刷题量非常大,但是到最后发现还是效果不好,其实楼主定义为这种刷题为“无效刷题”,比如有一些题目,你已经做过了(面试手撕级别的题目除外,手撕题目需要你的熟练度,还是要循环性的刷一刷的),但是遇到类似的他还在刷(浪费秋招的宝贵时间),有一些题目非常难(楼主刷2019校招题时发现的通过率巨低,个人建议巨佬外的“普通我们”还是了解一下思路就可以了,也不建议因为一道题搞个两天,后面发现这种题基本不太可能出)。
基础部分:多问自己点为什么
这部分其实对于科班的大佬们来说,问题可能不是很突出,但是对于非科班的同学们来说就可能是比较大的问题了,因为没有系统的学习过相关课程,你的知识没有形成体系,导致最后记忆力存储的是一个个的散点。而很多面试官愿意考察的是你的知识体系能力(也可以说是总结能力),这样的考察显然对非科班的人来说就很不友好:还是举个例子:说到c++特性:多态,封装,继承。很多人就会觉得很简单,都知道这东西面试基本“必考”,但是更多人只是背背皮毛:多态是什么,封装是什么,继承是什么的概念。而面试官一问:那他们具体是干什么的呢?应用场景呢?为什么要有这种机制之类的问题很多人就不会了。
说这个例子其实是鼓励非科班的大家在准备面试的时候思考要深入一些,比如还是刚刚的那个问题,C++特性,你要是在回答的时候能画出这样一张图再佐以大家都会的概念的介绍,相信你的面试官“好感”一定会+10086
还有建议非科班的同学可以刷一刷牛客网的专项练习,至少博主个人感觉还是比较有用的,虽然都是选择题,虽然比较多(大概2000多吧),但是刷完之后还是能对你基础上的把握有一个整体的提升的(时间充裕的)
面试准备:不卑不亢,别头铁
1、面试环境方面:之前牛客网上看到的,说:你面试开始几分钟之后就大概率的知道面试官给不给你过了。所以给面试官一个好的印象还是挺重要的(精神一点,面试环境安静一点,网络要好,毕竟我要是面试官,看到一个胡子拉碴的你坐在电脑对面,加上各种杂音,再加上网还不好使,我也不想让你过的,对吧)。
2、技术面方面:这点我觉得更重要的是你的回答要深入一点,因为面试基本上都是有一个时间上的范围的,你答得多了面官问的自然就少了(问到你不会的概率也自然就小了,注意:多说你深入了解的,别硬说),比如楼主面试问到TCP,基本都会从机制,区别,状态,拥塞控制,滑动窗口,socket,UDP,.UDP改进等多个方面来说(最后还会礼貌性的询问一下用不用画一下TCP的帧头的报文结构,配一个笑哭表情)。当你blabla完这么多之后,相信面试官对你的“好感”再次+10086。
3、别头铁:这里话不多说,技术岗面试面试实力虽然是硬道理,但有时候你真的就会卡壳不会(比如手撕,就是撕不出来,或者某个问题就是忘了),这时候我觉得你就直接告诉面试官,换一题,或者这个忘记了,您再问个其他的,别头铁硬答或者瞎答,这是非常严重的扣分项。
4、自信点:这里不说太多就一句:别总觉得自己菜,比你菜的多了去了(依旧配一个笑哭表情)
一些题外话:
1、对非科班而言,有时候选择比努力更重要:
这里其实想说一下算法岗,很多非科班(比如楼主所在的实验室)做的虽然是算法,但是此算法非彼算法。秋招时候就觉得自己只能投算法(问起原因是因为不会编程,所以投算法)。但是其实当非科班去投算法(尤其你不是做的很深入的时候)基本就凉了一半了,这里楼主想说一下就是:
首先:算法岗≠对编程要求略低,实际上是更多的算法岗对于编程的要求会更高(博主做过几家知名大厂的算法和开发的笔试题,综合来看,算法岗无论是从编程难度还是解题思路等方面来说都是要高于开发岗的,其实我们也可以反过来验证这个问题就是为什么算法岗普遍薪资会高一些),而很多投算法岗的同学问他为什么算法这么难还要投算法的时候,他都会一脸无奈的说,我只会matlab或者说我只会Python,不投算法投什么呢?
其次:算法与“伪算法”,其实身边更多人所做的工作是某个算法在实际领域的应用,比如AI技术在SLAM的应用,比如AI技术在auto pilot方面的应用。甚至有更多的人还停留在“调参大师”的领域,比如网上clone了一个开源库,然后发现有5个参数可以调,好了,就开始调这五个参数的大小,突然发现五个参数到某一个取值范围的时候效果比较好就觉得自己做了一件“了不起的事情”,而至于为什么参数要这么调和这几个参数都代表着什么?有没有内联关系的时候却是一问三不知,那更不要说算法的原理了。而这样的“伪算法”也让很多人觉得算法是一件很容易,很好上手的事情。放在几年前,可能还能“摸鱼”,但是在算法岗竞争如此激烈的今天,这无疑是给从事“伪算法”的“调参大师”们发了一道劝退文。
2、机会总是留给有准备的人
其实很多时候你很想进的往往进不了,你随意投的反而给你发offer了,比如楼主面字节提前批的时候就觉得自己根本没准备好,又是非科班,当时一度差点放弃了笔试,后面还是女朋友说你就试试呗,结果还真的就幸运的中了。华为面试前一天晚上楼主才回到学校,半夜12点从机场拎着行李箱就直奔实验室敲了一个通宵的代码题,结果第二天就考到了原题。面b站也是因为女朋友很喜欢动漫,让我去试试看。(这些听起来都很狗血,但是细细想起来其实也都是你平时一点点攒的人品(做的准备))。很多人可能投出简历的时候会想:对方要不要我啊,要不算了吧,太难了之类的。但是你简历都不投,平时都不看那肯定是没机会的。让我想到了之前的一个笑话:一个乞丐天天向上帝虔诚的祷告彩票中奖,到死都没中,到了天堂之后质问上帝:我这么虔诚,为什么你对我这么不公。上帝的回答简单粗暴:因为你总要买了彩票我才可能让你中奖啊。
3、保持警惕,但是请相信未来:
这里其实想送给还在坚持中的“战友们”以及最近有私信问我的一些即将入坑的“准战友们”
首先保持警惕,杜绝眼高手低:
其实很多身边的同学在找工作时候都在纠结我是去阿里还是去腾讯之类的,博主这里插一句,别纠结,阿里腾讯不会因为你多纠结一点他就会给你offer的,其实你更应该纠结的是你的剑指Offer还有多少题没刷,你是不是连new和malloc的区别都不知道是什么,千里之行始于足下,内功修炼好了,erverything will be easy!
最后放一张图,大家自己体会哈
全部评论
(24) 回帖