分享

码农求职经历+书籍推荐(写给非计算机学院非软件学院的同学)

 白杨4546 2016-11-18
 本帖最后由 945453541 于 2016-11-3 11:21 编辑

前提:我本科专业是电子信息工程,自己倒腾了一年多的c语言和单片机,研究生项目用的都是Matlab。整体来说,无论文,无专利,无实习,无计算机专业相关的项目,计算机方面的基础知识几乎全靠自学(除了本科学了c语言和微机原理),找工作时投的岗位都是c++软件工程师,最终也拿到了几个offer。我写这个帖子的目的是想给那些非计算机专业的但又想和计算机专业的抢饭碗的同胞们一些学习上的建议,同时希望给你们带来一些信心。望计算机学院软件学院的大神们轻喷,当然,如果我有写的不对的地方或者你们有更好的建议或者有更好的书籍推荐,欢迎讨论,毕竟造福下一届的学弟学妹们才是目的。还有就是请大家不要把我写的东西复制到外网上,非常感谢。以下内容分为求职经历和书籍推荐两部分。



一、求职经历:简单说一下几个公司吧,他们的offer我也都拿到了。
(1)广联达:广联达分两批,八月底招一批,九月下旬一批,关于这家公司,我只想说:千万别去!!!千万别去!!!千万别去!!!至于为什么,请参考这篇帖子: http://rs./forum.ph ... F%E8%81%94%E8%BE%BE  同时也提醒大家,在找工作时,对一些没听过的公司尤其要慎重,不要被可观的薪水所蒙蔽,社会处处是坑,别觉得就业办放进来的公司都没问题,签三方要慎重。我参加广联达招聘时还没看到这篇帖子,看到之后,广联达打电话给我offer时,果断拒了。但另一方面,广联达八月底就来了,算得上是很早了,拿它练练手也不错(这不叫offer收割机,毕竟这种公司还是希望大家都别去,尤其是那些没看过那篇帖子的同学),面试经验还是挺重要的。对于专业面试,能让你及时发现自己的不足,查漏补缺,同时也可以在和面试官的讨论中学到新的东西,从这个公司面试时学到的东西就能拿来去忽悠下一个公司,同时虽然概率低,但很多公司考的东西有相同的,比如:中兴模拟招聘笔试第一题和百度笔试第二题几乎相同,我在腾讯一面和搜狗一面时考的编程题相同,还有很多公司问到了C++面向对象的特性有什么?多态是怎么实现的?红黑树的效率?内存溢出怎么检测?等问题。对于综合面试,重复的就更多了,比如:近两年做过的最自豪的事?做过的最受挫折的事?你怎么评价你自己?有什么爱好?对公司的了解?自己以后的职业规划?选择offer时的依据?你觉得你的优势在哪里?。。。面试面的多了,也可以使你的心态越来越好,我刚参加面试时,很紧张,后来面的多了,越来越淡定,越来越能忽悠
广联达是现场笔试,试题如下:
       1、heap和stack的区别
       2、有一个数组,找出其中和为0的三个数
       3、数组中有一个数仅出现了一次,其他数都出现了三次,把这个数找出来
       4、原题忘了,考的动态规划
       5、一个国家有26个民族,有n个人,这些人是否民族全不相同
       有意思的是第二题和第三题,用常规的暴力解法可以解出来,代码也不长,但仔细想想有更好的解法,比如第三题,用二进制的思路去做,时间复杂度是线性的,具体解答自己网上搜。我的意思是,电脑阅卷和人工阅卷不一样,电脑阅卷只要测试用例能通过,算法好坏无所谓(有例外,即限制运行时间和内存时)。但人工阅卷不一样,如果题难的话,只要能做出来就能超过很多人,但题简单时,就要多想想有没有更好的解法了,同时边界条件、特殊情况、错误反馈什么的都要考虑清楚,这样才能让阅卷的眼前一亮,脱颖而出。
       不过在线笔试时有特殊情况,很多题会限制运行时间和内存,所以如果你的程序能通过大部分测试用例,但就是不能百分百通过,最有可能是两种情况:1、特殊情况和边界条件没检查好  2、超时或者内存使用过多,此时只能优化代码或者想更好的算法了。
       广联达这个公司虽然不怎么样,臭名远扬(在另外一家公司的hr面时,hr听我说拿到过广联达的offer时,很惊讶的问我“你还去广联达呀?”),不过技术面的面试官很有水平,问得我快奔溃了,受益匪浅。大家也可以报着玩玩的心态去体验体验,砸场子也不错。

(2)中兴:我参加的是中兴六月底七月初的模拟招聘,我非常感激中兴的这次模拟招聘,让我在大规模校招开始前就有了一次应聘经历。虽说是模拟招聘,但其实就是提前批,模拟招聘过了的就能拿offer。如果你模拟招聘笔试过了,面试没过,那么九月份校招时可以免笔试,直接面试。不过这里有坑,有一小部份人模拟招聘时面试没过,但校招时居然没再给他们安排面试,是的,别觉得大公司一定守信用。再插一句,我怕一会忘了:绝对不要在一棵树上吊死,多找个备胎总没有错,正式签三方前即使口头答应给你offer,也不要全信,不要脸的公司还是有的。还有就是通过面试和拿到offer是两个概念,尤其是竞争激烈的公司,面试发挥很好但最后拿不到offer也是有可能的,因为这些公司供远大于求,不大可能通过面试刚好把多余的人刷掉。中兴模拟招聘的流程是:在线笔试、在线测评、专业面试和综合面试。中兴的在线笔试时长80分钟,两道编程题,第一道较难,第二道简单,题目网上可以搜到,不说了。我第一道对了百分之七八十,第二道全对,笔试还是挺重要的,我觉得我能拿到这个offer,靠的就是笔试成绩略高(第一题做出来的不多)。对那些之前没有网上刷题经历的人来说值得注意的是,一定要在考前认真熟悉在线考试环境的使用,测试用例,评分什么的,而且有的允许使用自己的本地开发环境,有的不行,只能用它的。一般很多公司正式在线笔试前会有个模拟考,这是个熟悉考试环境的机会,别不当回事。中兴的在线测评是个奇葩,除了那些智力超群的人,大部分人我相信要两个半小时左右才能答完(放心,大部分公司在线测评没这么长时间,所以说中兴奇葩),包括:性格测试、逻辑推理、数字推理、图形推理等。大家一定要耐着性子认真答,大部分人分数都不高,别自卑,只要别是乱写的,几乎都能过。但值得注意的是:在线测评只有一次机会,也就是说,如果模拟招聘时在线测评挂了,无论模拟招聘笔试面试多好,都不会在校招时给你第二次机会,只能和中兴无缘了。
千万别乱写。       中兴的专业面和综合面是连着进行的,每个都差不多20分钟,而且都有2个面试官,其中一个人问的最多,另外一个一直在电脑上记录,很少提问。专业面问的都很基础,没难度,不过范围广,我记得问过我冒泡排序,都没让我写程序,讲讲就行。综合面就是我上面提到过的,面试时面试官居然问我“近几年有没有在北京买房的打算?”,他问完后,旁边的面试官都笑了。七月初面完之后音讯全无,我都以为自己挂掉了,结果在九月二号时,才知道我过了。我猜一下:中兴这么晚出结果,不是因为办事效率低,而是因为八月底时,中兴正式校招的在线笔试都结束了,这时他对这一届学生的整体水平已经清楚了,才确定模拟招聘该发多少offer。中兴在签约前又搞了个终面,从我了解的情况来看(不一定对,因为我没去),女生刷的比较多,还有就是薪水谈不来的,你要是要求加薪水,他就在终试时专问刁钻的问题,问到你奔溃,问到你怀疑自己的实力,问到你不好意思提加薪 。
       拿到中兴这个offer,让我之后找工作时,底气十足,比中兴差的公司简历都不投,同时去其他公司面试时也有了从侧面证明自己能力的谈资,很多面试较晚的公司都喜欢问你现在有没有其他公司的offer,如果一个没有,他们对你考察时只会更慎重,尤其是竞争激烈的公司。

(3)华为:我没参加华为的提前批,参加的是校招。华为的流程和中兴一样,挑重点说说。笔试(或者叫机试)三道编程题,第一道100分,第二道200分,第三道300分,总分过100分就能进面试(有一些机试三四百分的居然没得到面试机会,不清楚内幕,不好乱说,华为水有点深),题目有些人的一样,有的不一样,难易程度不一,想考高分,除了实力还得看运气。性格测试半个多小时就能答完,不过挂的人略多。传闻,只是传闻,西电西交西工大的学生性格测试没过给第二次机会,其他学校的看情况,的确,身边两个性格测试没过的都给了第二次机会。搞笑的是专业面试,我把我本科时的八九张奖学金证书带上了,面试官一张张的看的很happy,让我讲了下项目,然后讲讲机试时的一道题,然后就没然后了,前后都没用十分钟,就让我过了,还不如中兴考察的广。大家也可以借鉴借鉴,bat应该不好使,但中兴华为每年招人多,面试官工作强度大,时间紧,专业面又只有一轮,所以他们确定offer时,会考虑其它因素,比如奖学金、竞赛、实习什么的,虽然不一定有用,但肯定无害。我的几张证书里拿得出手的只有一个国家励志奖学金,再有就是两个校级计算机竞赛程序设计组的一等奖(比较水)。还有就是我本科时玩过一两年的单片机,
我当初报的是云核心网和IT产品线这两个部门,和单片机其实没什么关系,但面试官看到我简历上写了单片机和几个玩具级别的小作品,就想忽悠我去做程控交换机、路由器之类的。之后给我打电话的也不是云核心网,反而是北京的固网部门,继续忽悠我去他们部门做程控交换机、路由器。大家不要放弃任何一个在简历上和面试时展示自己的机会,因为你也不知道面试官会对你的哪个技能感兴趣。总结一下,我的技术面就是,前十分钟问了两个问题,之后就是面试官忽悠我。
       综合面时遇到个特别爱抬杠的面试官,我说一句他抬一句,还好我脾气好,一直陪着笑和他说,最后也让我过了。后来我明白了,他绝对是故意的,一方面测试我的口才,一方面试探我的脾气,这难道就是传说中的压力面。华为的招聘安排的非常混乱,通知的我11点面试,结果硬生生的等到下午三点多才轮到我,四个多小时啊!!!!!其他公司最多就等了半小时。而且在休息室等待时工作人员每隔20分钟左右就会叫一批人去面试,所以大中午的也不敢睡觉,怕叫到名字没听到,等待时间更长,而且不知道什么时候会被叫去面试,所以一直都处在紧张的状态,这种感觉谁经历谁知道。招人多根本不是借口,中兴招人也多,但安排的比较好。不过华为今年薪水好多,我在天大读研的本科同学,他们实验室大神拿到了18k。     
       中兴略微有点性别歧视,而华为卡年龄,做好心理准备。华为好像打算把业务扩展到互联网领域,从今年招聘情况来看,软件岗位较多,算法岗较少,竞争很激烈。而且今年华为社招名额增加,校招名额变少,明年估计还这样,华为也要翻身不做备胎了。
       今年华为并不好进,我是个例外,运气太好了而且我面试时是技术类岗位面试的最后一天,面试官赶进度,技术面就问了十分钟,大家还是要好好准备。华为的无线和终端两个部门奖金多,报的人也多。西安比较大而且近几年发展很猛的是云核心网这个部门。
       今年西电26号发三方,中午拿到手里的,而中兴26号早晨就发完了签约短信,早点的26号下午就有让签的,动作真迅速。华为就不行了,签约短信断断续续发了好几天,这让很多人纠结,因为三方一发,别的公司也开始逼签,要不要冒风险等华为?This is a trouble。华为今年又有点不守信用,之前接到电话,给了口头offer的,最后居然没发签约短信,坑了不少人。我很幸运,收到了短信,看来是真想让我去做交换机,问题是我本科时挂的唯一一门课就是《程控交换原理》啊,好打脸。中兴让我26号晚上去签三方,数码视讯是26号下午6点前,华为是27号下午,而百度27号晚上才出录用结果,三个公司不等人,纠结的很,最后决定拼一下,三个offer都放弃了,只为等百度。如果百度不要我,就只能一无所有,重头再来了,风险挺大的,因为十月份好公司比九月份少多了。

(4)百度:百度的面试是我经历过的最专业的。面试有三轮,前两轮都是技术面,第三轮是一半技术一半闲聊。时间也比中兴华为长,我三轮面试时间分别是:40分钟左右、50分钟、50分钟。百度今年笔试题不难,比中兴华为简单,但面试刷人特别狠,到第三轮都没多少人了。由于我的项目和计算机专业相关性不大,用的还是MATLAB,所以只有第二轮我主动讲了讲项目(面试官也没听,只是礼貌性的点点头),另外两轮都没让我讲,好忧桑~~~。这三轮面试很有特点,第一轮,基本都是在考察基础,没有太难的问题。第二轮难度加大了,考的更灵活,问的挺多的,记不太清了,记得多少写多少吧,比如出了两道编程题让手写代码,这两道题都不难,但每道都让用两种思路解答。还问了一些开放性的题,比如:有一个非常非常大的数据流,内存放不下,且事先不知道数据流有多大,怎样在其中采样M个点。面试官还让我讲了讲读写锁,紧接着给我出了一个传统读写锁解决不了的场景,让想一个解决方法。第三轮,实际只有一道开放性的题目,让设计个内存池,有申请和释放内存操作,其他就没了,自由发挥。百度的面试真的很专业,基础知识、基础知识的灵活运用、分析能力、设计能力都考到了。我投的软件开发的岗位,居然不限制编程语言。我三面时的面试官就说:我们不在乎你会什么编程语言,c++也好,java也好,甚至只会fortran,我们的面试官考察的问题都是工作中会遇到的问题,只要你能通过我们的笔试和三轮面试我们就要,认为你能胜任以后的工作。当然,他说这些话是针对我报的岗位,其他岗位对编程语言还是有点要求的。从给了我offer来看,他们也没在乎我的专业背景,没在乎我有没有计算机方面很贴近的项目,没在乎我有没有计算机方面的论文和专利,我觉得这可能就是他们对自己招聘团队的专业程度的自信吧。

       百度的面试安排的非常好,面试官很守时,说几点就几点,几乎不用等,比华为强多了。还有就是一般绝大部分面试(包括其他公司)都会在最后问你有没有什么问题想问他的,大家不要不拿这个当回事,要提前想好,这是一个展示自己对公司的兴趣、对自己职业的规划、自己的求知欲、自己的学习能力、对技术的追求等等的机会。对不会Java,只会C++的非计算机专业同学们,其实BAT里真正能拼的只有百度,因为阿里这两年招人很少,而且阿里是java流,不重视c++,岗位少。至于腾讯,腾讯的岗位适合c++的好像只有服务器开发(我不确定),而服务器开发要求你熟练掌握linux、多线程编程、网络编程,对非计算机专业的,我相信熟练掌握这三个,而且有使用经验的没多少人。腾讯和阿里更像是在招能直接上手干活的人。我并不是说百度比腾讯阿里好进,是因为百度这几年社会招聘招人很少(听说直接取消了,再从社会上招人需要李彦宏签字),把名额都给了校园招聘。



       在面试时也要注意技巧,举个例子:百度一面时,面试官问我用过哪种通信方式?我一个都没用过啊。。。但我并没有直接回答没用过,我这样回答的:进程间通信方式常用的有这几个,管道、消息队列、信号、信号量、共享内存、套接字,我只简单用过点套接字。我这么回答,虽然面试官还是知道我没什么使用经验,但我的回答体现了我基础扎实,比直接回答“没用过”好得多。

       最后奉劝大家不要做offer收割机,这样真的不好,有了更好的offer后,之前拿到的不如这家的,及时拒掉,之后不如这家公司的公司的招聘,也别去凑热闹了,给别人一次机会。当然,备胎还是要留一个的,以防有的公司不守信用,或者福利待遇谈不来等意外发生。



二、书籍推荐
我觉得想和计算机专业抢饭碗,至少要具备以下几条中的一条:计算机相关的项目、计算机相关的论文或专利、编程大赛获过奖、大公司实习过、扎实的基础。我相信非计算机专业的大部分不具备前几点,如果再没扎实的基础,说难听点,计算机专业的本科生研究生有的是,人家凭什么要你。

其实想知道一本书好坏或者适不适合自己,看豆瓣书评就好了,我感觉挺靠谱的。

声明:我只是推荐一些不错的书,但并不代表,只看会这些就足够了,尤其是想去一些竞争激烈的公司。我是运气好,百度问的和我学的很对路。

(1)刷题用的书,找工作前几个月再看都行
《剑指offer》
《算法竞赛入门经典(第二版)》:粉皮那本,最后一章太难也考不到,不用看,其他章节难题适当放弃。

《编程珠玑》和《编程之美》据说不错,不过我没时间看。
除此之外,牛客网和赛码网也是很好的网站,很多公司在线笔试用的就是这两个网站的笔试环境。

(2)对计算机知识整体的把握
《深入理解计算机系统》:大概过一遍,但讲虚拟内存和缓存的那两章很重要。

(3)c++书籍
《c++ primer》
《effective c++》
《more effective c++》:没有
effective c++好,没时间看就算了
《STL 源码剖析》:有的面试官还是挺喜欢考:标准库中的set和map是怎么实现的?vector是怎么实现的?
《深度探索c++对象模型》:有点难,抓重点看看就行,别太较真

(4)计算机网络
《TCP/IP详解(卷一)》:经典,不解释
我只看了这一本,但并不代表这一本就肯定够了,自己定夺吧。偏实际编程的好书有《unix环境高级编程》、《unix网络编程(卷一)》、
《unix网络编程(卷二)》。

(5)操作系统
互联网公司对操作系统考的挺多的,我看得少,没什么好书推荐,自己网上搜吧或者大神们评论里补充,我只说我看了《现代操作系统》、《鸟哥的linux私房菜(基础篇)》,粗略的看过《操作系统概念》。

(6)毫无疑问的重头戏:数据结构和算法
《数据结构与算法分析(c语言版)》:我的第一本算法书,挺经典的
《算法设计与分析基础》:这本书覆盖面广,难度不大
《算法导论》:这本书最难的其实是习题,如果不做习题只看正文,其实难度挺小的,这本书正文讲解很详细清晰,不看习题的话,都能当入门书(大神们恐怕要骂我暴殄天物了)。

       数据库也会考,不过考的很少也简单,可惜我没学
,有时笔试选择题会考,腾讯笔试有道大题考了,面试时没公司问。

       这些是必须要学扎实的基础,除此之外,如果:网络编程、多线程编程、linux操作系统等等学的好,会是很大的加分项。建议大家,如果现在就有了心仪的公司,可以上网搜搜你感兴趣的岗位的要求,趁早做准备。

      再
推荐一位大神的两篇博客:我的算法学习之路 http://www.cnblogs.com/figure9/archive/2014/05/05/3708351.html                                            
                                               从微软到谷歌,应届计算机毕业生的2012求职之路 http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html
      这两篇博客对我的启发很大。


最后:欢迎大家探讨,指正错误。











    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多