【随笔】原文名:鹅场offer已Get,下周签约,终于能静下心来总结总结

版权声明:本文为博主原创文章,如需转载请注明出处。

本文原写于2015年9月,是原博客中比较重要的一篇文章,故转至新地址

  2015年9月20号下午,接到腾讯总部的电话,确定了offer相关信息,算是正式get了鹅场的offer,坐等下个周一周二的签约会。

心路篇

  2015年2月:已经2月份了,自己在大学的时光已经来到了比较关键的阶段性,大学的很多经历让自己已经放弃了上研的打算,当然这其中也有很多自己的喜好问题。也就是从这时候自己开始进入了找工作的状态,然而,并没有自己想象中的那么顺利。。。

  2015年4月:回到学校有一段时间了,很多公司的实习生招聘都开始了,可是自己这段时间只顾着看书,没少注意到这方面信息,知道后也没有很好的做面试准备;腾讯实习生招聘的笔试轻松过了,但是第一次面试就是腾讯,自己对于面试问题也没有太多的概念,一面就被给予了沉重的打击,之后也是总结发现了自己各方面的缺陷真的比较多,痛定思痛继续强化自己。。。

  2015年5月:学iOS开发学了也有一段时间了,但是总感觉自己不上道,思考了自己的发展路线,决定先不做这样偏向于应用层项目工程的学习,还是继续深造底层的知识架构。这段时间也做了学校的ACM,虽然成绩还凑合,但是很明显的感觉到自己对于数据结构和算法的实现能力比较欠缺,于是6月份一个月疯狂的刷题,在Uva上刷了几百道题目,这样自己的算法编程能力也是稍微有了点底气,这也奠定了之后校招时各公司的笔试编程大题都轻松AC的基础。

  2015年7月:这个月过去就放假了,对于是否实习这个问题真的是比较纠结的,8月份有很多公司的内推,如果这时候实习会有点影响面试,毕竟内推都是电话面试,指不定什么时候就打过来了,一次就是一个多小时将近两个小时的时间。自己手上广州的一个,北京的一个,西安的两个,都是能去实习的。这时候也是纠结,最后自己鬼使神差的就放弃了所有的实习机会,全身心准备内推了。顺便说一句,由于最近的知识曲线,重回了C++相关的学习,逐渐转向了后台开发。

  2015年8月:这个月经历了太多太对的起起伏伏。7月29号穿过茫茫人海,我的简历成功突围了腾讯TST内推的严格筛选要求,接到了TEG的第一次电话面试。第一次面试并没有强烈的感觉自己能进还是不能进,实际上隔了一天之后的第二次面试结束后还是这种莫名其妙的感觉。第二次面试结束没有了音讯,过了12天之后突然又接到了电话。刚开始都不知道是第三面,以为是我投的其他内推又开始面试了呢,面了N久结束后告诉我这是3面了,瞬间感觉好爽,貌似基本没什么问题了吧,那几天异常兴奋,以为没啥问题了呢。第四次电话打过来告诉是第四次技术面,瞬间被泼了冷水,一下心态有点慌,对于自己做过东西的优化回答的稀里糊涂,知识体系也描述的不够好,网络方面更是短板。结束后虽然没有告诉结果,说是如果有的话,一两周内会有HR面。自己虽然觉得希望不大,还是侥幸心理觉得万一有机会呢。结果9月初看到最终名单,翻了5遍都没有找到自己的名字,失败的感觉总不是滋味。

  2015年9月:金九银十,校招的黄金月来了,虽然偶尔去睿思看看投投简历,但精力还是放在了腾讯的校招上,整个校招过程还算顺利,也是有了很多底气,每个问题基本都能从底层分析,两面过程都很顺利。最后的HR也和那个姐姐聊得很开心,每一个面试官人都非常nice。面完所有的也是尽人事听天命了,终于熬到接到了腾讯总部的offer确认信息,然后学校那刚好也发了三方,就可以去签约了。真的是一路跌跌荡荡,其中经历的个中委屈数不胜数,但最后还是坚持去了腾讯,实现了最合适,最完美的目标。

派系篇

  这里非常想谈的一个问题,派系之分。首先说一下何为派系,派系这个概念是我找工作阶段逐渐认识了一些志同道合的同学之后,分出来的3中派系。

  第一种是大神级别,高贵派;这种人计算机、软件专业出身,有非常强硬的基础功底,在学校做的项目也是和工作方向相关的研究,有着先天独厚的优势,只要用点心,就能在这条路上一路驰骋,变身offer收割狂人。

  第二种是我这种,自学派;非计算机专业,但是自己想搞这方面,迫于专业课很少开这样的课程,导致自己不能丢下自己课程的同时(我是学数学的,数学乃计算机之根本,必不能丢弃),还要努力学习很多计算机方面的课程。自学派有自己的优势,愿意找工作之前这段时间做很多这方面深入的研究,所以相对于我即将要介绍的第三种实习派有着各方面基础扎实的优势。那我和知道的已经进入腾讯和我同一个部门的A同学来说:他是广州一个大学,也是数学专业,A同学就是喜欢去公司干,做过外包,也在小公司实习过;A同学这样的经历对很多公司而言是很占优势的,因为有实际的工作经验,很喜欢他的。但是腾讯这样的大公司而言,他的优势并不明显,实际上他的劣势是很凸显的。他对于很多语言相关的编译原理,系统方面的底层实现并没有很好的知识积累,对于自己做的相关内容有些实现也是不理解,而问到比较底层基础的东西也比较生疏。所有后来相互了解我们也是希望相互学习,我的实践经验没有他多,但我的知识深度广度比他要好。这点从我的一面中有体现。一面面试官也就是我的leader非常喜欢我,并不是我做过多么牛逼的项目(我的项目都是数学建模类型的,并不和计算机方向有直接联系),而是我有着对很多东西底层实现机制的理解,这让我对于很多问题也有比较全面的看法,所以这点其实对于应届生是很重要的。应届生进入工作强度比较大的情况下,很难长期静下心来补充自己的知识体系,而大学有这样的好机会,然后不能放过。(这里我想说明一点开课程的问题,并不是说开了课程就能学的多好,大家都懂大学的课程很多都非常的水,只按老师教授的走是很难学到很深入的东西,但是在每学期开设相关课程的时候自己愿意看很多国外的书,愿意做很多实践,那么相对就会有比较扎实的基础沉淀;

  第三种自然就是:不是专业的,但是喜欢多去实习公司的实习派了。好处不用多说,都懂多实习的成长速度,但是问题也有,如果基础不扎实,对于职业规划其实也有不利的方面。很多人都懂,做深了没办法进阶都是数学上的问题,但很多人并没有切身体会,因为一直做的比较表面,当然接触不到深层次的东西了。知识体系的建立是比较重要的,一定要对自己的职业尽早的开始了解,有个自我的规划。

  以上几种派系并不完全独立,大多数时候都是有交集。最重要的其实还是自己能坚持下来这个找工作的过程,这种坚持并不易。

感情篇

  说到坚持,我不得不谈到人情。这段找工作的时间自己经历了很多的挫折,但也认识了很多的贵人。微软俱乐部的MSTCer们都给了很多强大的榜样,也有很多内推的机会。各个工作群里面认识到的形形色色的应届生同学,共享了很多的信息。校招时候崔学长对我的鼓励。还有导员、舍友和亲友的支持。最后还有爸妈,我的压力巨大,家里的爸妈都非常的理解我,这段时间打电话我不提都不敢问我这个事,就是怕我没办法回答压力太大,和爸爸打电话,爸爸简短而少有的鼓励,都能让我眼中泛着泪光。最后我想说一直陪着我度过所有这些挫折,泪水,不安,惶恐的就是我的女朋友,每次的挫折之后都能很快收拾心情进入下一次挑战,也是因为对我们未来的期盼。她对于我的支持付出,都是对我无比巨大支柱。真心要感谢所有给予我帮助的人。爸爸妈妈我爱你们,轮到我努力回报你们的时候了。还有最爱的宝贝,我要先去为我们的未来开疆扩土,永远保护着你爱着你的耀琦。

杂谈篇

  这里主要闲扯一下随意想到的问题,想到什么说什么,别介意。前面基本只说到我面腾讯,当然我期间有面过大大小小一些其他的公司,但是我有特殊原因只想去深圳工作,所以主要目标就是腾讯了。

  对于面试题的问题,有些面试结束我有简单写一下问题,或者针对某些回答的不好的问题专门写一些文章,此处就不再综合赘述了,面试题问来问去都是那些问题,而且也是因人而异,并不能有什么好的通用法则。对于面经,我并不是贬低什么,只是希望大家能客观的看清那都是个人的经验,并不能起到很大作用。每个人遇到的面试官不同,面试官喜好也不同,简历重点不同,这些都是会对面试问题造成区别。自己面几个就知道面来面去差别不大。重点在于自我介绍的时候你需要给面试官体现出自我的优点,接着回答每个问题的时候有意无意的提到一些自己熟悉掌握的点,引导面试官接下来问你这方面的问题。能把握住尽量体现自己的强项,那四五十分钟下来基本就稳了。当然这里主要指校招现场面的情况。而内推的时候都是电话面试,这个就没办法了,电话面试时间会稍微长一些,基本都接近两个小时了,电话不像现场面那样着急,所以对于内推面试要有充足的心理准备。应届生对于大公司稍微要有一些了解,尤其是公司的传统语言,比如阿里是Java,腾讯是C++,百度主要也是C++,网易C++和Java都比较多。这个对你大方向有一定的作用。如果想去杭州那边,最好主攻Java方向,如果是深圳那边,则是C++多一些,就像我面iOS移动端,虽然我是想做这个,但是我最熟悉的语言还是C++,所以面试的时候问我最多的还是C++的问题,这就是腾讯传统语言导致的。也算是一个功底的体现,因为C和C++能吃透的人,学习OC是很快的,所以我不建议底层语言直接从OC学起,最好有一个比较通用些的面向对象的语言作为基础,学习算法、设计模式之类等等方面也会比较方便。推荐C语言必然是需要强化掌握,然后挑选C++和Java中的一个再深入掌握,以后遇到新的语言上手会很快。

  专业性的问题就不多阐述了,你想知道后台开发需要学习什么,前端开发需要学习什么,网上都很容易找到资料。对于百度这个问题,为了以后的职业发展,最好不要用太多百度(并不是黑百度不好),科学上网的方式比较多,大家发挥聪明才智总会找到一些科学上网的方式。然后去谷歌,谷歌的时候慢慢就会找到一些比较好的开源社区,Github;提到这里,当然就是提到最重要的问题了,进阶一定要多去读代码,代码乃是程序员的灵魂,当你遨游在高质量代码的海洋中,才能最深刻的理解到伟大的思想。代码选取方式自行谷歌。–||

  说一下简历的问题,这个问题我比较在意,简历在校招的时候作用不是特别大,只要能凸显出自己能力的强弱就行,但是内推的时候就不一样了。这里说明一下,校招的时候很多公司都会有简历系统,给你一个网站,进去按各个栏目的要求把个人信息都补充完整就OK了。但是内推基本都是往一个邮箱简历,以我腾讯内推来说:腾讯TST内推首先有很多的校园猎手,负责在自己的学校圈子里面收集简历,这些简历当然都是邮箱发给这个猎手,猎手再以规定格式将简历整理打包给腾讯。腾讯内部则开始筛选简历,这个简历可是自己做的那种,没有固定版面,没有固定内容,这时候就要看你怎么打动面试官了。刚开始我也是在一个微信公众号做任务得到了一份七百多套的简历模版,就这么准备开始找一份填了修改。可是我发现并没有完全适合自己眼光的简历,而我又不想像做设计工作的那样把简历做的艺术感十足。所以就开始自己修改,找了一份版面简单,但小图标很可爱,左右两列3:7开也比较合适,就开始了自己的调整。首先左边这占了3份的一列放置了照片(互联网公司还是放个比较阳光随和的生活照比较好吧,我觉得证件照太死板,还难看),简单的个人信息,教育程度,几条备注信息。右边放置了个人技能,编程经历和其他经历。这样板块分明还是很好的,面试官一眼就能看到你的重点信息。个人技能前两条我直接放了自己的博客和Github地址。下面可以写自己的技术曲线,当然如果项目多的话,这里可以不用写太详细,如果项目不多,则这里可以明确自己掌握什么,精通什么,每个内容有深入研究过哪方面,实现过什么代码。对于博客和Github我想多说两句,Github对于某些人可能并不方便,因为不为开源社区贡献代码的人,那么就算有Github,也是没办法公开代码的,因为你实习或者外包的项目那都是代码保密的。所以这个见仁见智,看你上面有没有能够体现自己能力的东西。而博客我觉得应该是每一个做技术的人都应该有的一个东西吧,一定程度上可以算一个应届生最好的程序员标签了。博客可以记录自己的学习历程,这个对于一个本科应届生的能力体现是有决定性作用的。我的博客和Github基本上是我内推简历每次都能畅通无阻的基石。

  编程经历就是个人自己的问题了,这里不多赘述。还有个小技巧是将字里行间的一些重要信息加大一号字,然后再加粗,这样看你简历不至于看不下去,随便一扫就能大概看到比较重要突出的内容了。

  对于简历真的一定要重视起来,短短的一张纸很难把自己的所有能力展现,但是一两个链接,就海阔天空了。

  面试还要多说两句,我个人有时候面试会很紧张,但是我每次去面试地点签到完成后,我就带两本书过去,也不要带那种还没看几页的,这种看起来时间长了吸神,耗费太多脑细胞等会面试的时候状态不好。我都带看过的比较经典的书,这样边看边入定,一边整理如果等会问起来哪些问题怎么回答。然后就逐渐忘记了紧张这种状态。切记不要在那里无所事事,那样只会想着面试这一件事,然后越想有时候越慌,越想越乱,最后慌张的进去面试,结果就悲催了。

  笔试的话我觉得都不是大问题,正常学过一些计算机基础方面的课程或者看过几本书,然后刷一点题目,笔试都能过,但最好是基础扎实,笔试也拿高分,自己也更有自信。

书籍篇

  • 这里简单介绍一下看过的各方面比较经典的书籍。
  • 《C++Primer》百科全书型的,千万别看《C++Primer Plus》,原因就自行谷歌吧==
  • 《数据结构与算法分析——C语言描述》比较推荐看C语言的这个,C++版的写的不是很好。
  • 《算法竞赛入门经典(第2版)》
  • 《算法竞赛入门经典 训练指南》这两本是搞ACM的时候看的,非常经典,建议看看。
  • 《算法导论》经典
  • 《编程之美》题目笔试面试常见。
  • 《结构之法,算法之道》这不是一本书,这个一个大牛的博客(百度谷歌),如果你读过很多他的博文,面试的大多数问题都已经解决了。
  • 《Effective C++》
  • 《More Effective C++》以上两本乃是翻来覆去看不够的两本书,很多面试题也都是这里面的思想。
  • 《Effective STL》涉及到高效使用STL。
  • 《C++标准库(第2版)》必备书籍
  • 《具体数学》估计数学专业的会比较喜欢
  • 《STL源码剖析》源码分析的还不错,可以好好看看
  • 《Essential C++》和《C++ Primer》一个作者,注重实践。
  • 《现代操作系统》蛮看一下
  • 《深入理解计算机系统》经典,好好深读。
  • 《计算机网络》谢希仁,和配套的《释疑与习题解答》一起看吧,很多内容分析的还不错。
  • 《鸟哥的Linux私房菜:基础学习篇》
  • 《鸟哥的Linux私房菜:服务器架设篇》以上两本算普适一点的,蛮看一下
  • 《深入理解Linux内核》
  • 《Linux内核设计与实现》了解一些操作系统内核的实现方式是很有趣的
  • 《UNIX环境高级编程》
  • 《UNIX网络编程卷一卷二》这两本是知识积累。
  • 《设计模式》软件开发必读。
  • 《Objective-C程序设计(第6版)》必读
  • 《Objective-C基础教程(第2版)》必读
  • 《beginning ios 8 development exploring the ios sdk》相关的iOS开发有很多比较好的资料,自行了解吧。

  剩下就是多去开源社区逛了,多看代码。对于英文书的问题,我建议英文能力强一些的直接看英文版,但是如果英文稍微不是那么厉害,我建议还是直接看英文。别对自己没有信心,能过四级就能看英文书,计算机方面的书又不像英文小说,不会有那么多恶心复杂的句式,各种偏僻的释义。我们接触的都是白话文,英文句式无比简单,唯一有点难度的就是专业词汇,可是一本书的专业词汇才有多少?坚持看个20页你基本就差不多认全了,要让自己习惯与英文阅读,以后看的官方文档基本都是英文,等人家给你翻译中文,技术都落后N久了,况且有没有翻译还是个问题。所以勇敢的去看英文吧,实在受不了也要中英对照着看,多熟悉英文的词汇,尽早脱离中文翻译文献。

文章目录
  1. 1. 心路篇
  2. 2. 派系篇
  3. 3. 感情篇
  4. 4. 杂谈篇
  5. 5. 书籍篇