其实我的求职过程在十一之前就已经结束了,总体讲比较顺利。参加面试的几家公司基本都拿到了offer,分别是阿里巴巴、美团网、创新工场涂鸦移动以及华为。当时??也参加了其他公司的面试,比如人人,一面过后收到了二面通知,拒了。创新工场豌豆荚一面结束后等消息。十一过后的公司基本都是酱油而过。去哪儿面试拒了。腾讯一面后收到了二面的通知,也拒了。主要是因为自己已经拿到了理想公司的offer。看来人还是需要一点压力,这样才能发挥出自己的潜能。也本着攒RP的原则吧,感觉没必要刷那么多offer,而且我也知道自己的水平,对阿里的offer已经很满意了。剩下的时间还不如先预习一下入职要用到的东西。其实好早就想着写总结的,一直拖到现在,我想要是我再不写总结,估计很多东西就记不起来了。
一、自我介绍-往事不堪回首
首先自我介绍,某985院校计算机学院普通硕士。无ACM、挑战杯或者是各种编程大赛获奖经历,无牛逼哄哄的项目经历,无名企实习经历。总之一句话,一个再普通不过的CS硕士。本科期间成绩平平,课外也没有学太多东西,基础很一般。常常后悔白白浪费了本科期间阅读那些经典书籍的大好时机。对于硕士期间自己的实验室,不好意思吐槽太多。项目很扯,没有感觉学到了什么东西。方向是什么图形图像,面试到现在没一个面试官感兴趣。代码也没有写多少行。所以起初一直很担心自己在面试中怎么来介绍自己的项目。因此,为了准备秋季校园招聘,我提前做了很多准备,在现在看来,我当初的选择是完全正确的。下面详细介绍自己所做的准备吧。
二、实习生应聘-备受打击
我正式开始准备找工作是从4月份开始。在此之前,除了在实验室做所谓的项目,然后就是学习一些基础的东西,主要包括C++、STL、Linux、算法。这几项其实都学的比较浅。看过的书有:《C++Primer》、《C++标准程序库》、《STL源码剖析》、《深度探索C++对象模型》、《EffectiveC++》、《鸟哥的Linux私房菜》。到了4月份,参加了腾讯是实习生招聘,结果是挂了。我报的是后台开发。由于没有Linux项目经验,面试官狂问数据结构和算法。一面还好,顶住了。问到的题目有:非递归二叉树遍历-纸上写代码、shell排序、基数排序、找出一堆数中出现次数大于总数一半的数,还有一道算法题是:给出一天内的很多条QQ号的登入及登出记录,每条包括时间、QQ号、标记是登入还是登出的标记符。要求求出一天中最大在线人数。(精确到秒)。基本都答出来了,顺利进入二面。二面面试官瞅了一下我的简历,就开始问算法。 四道题答出来两道,一回宿舍,用微信查了下,就进入人才库了。好吧,被鄙视了。其他的一些公司也投了,比如阿里、大摩、百度等等,不是简历筛选没通过,就是笔试没通过。反正木有获得面试机会。不过,我很庆幸自己参加了实习招聘,知道了自己的短板,知道了自己以后想做后台开发需要准备些什么,也了解了面试中面试官的常用套路,这对我接下来着手开始准备看书准备找工作有很大作用。
在这里需要说明的一点是,根据我的了解,实习是一把双刃剑。如果能去好的公司实习,能够获得正式offer,这样能够给自己的简历锦上添花,再去面试别的公 司也是一个筹码。但是如果不能获得正式的offer,也因为实习的原因失去了复习打牢基础的时间,在笔试面试中会很吃亏。所以,大家一定要考虑清楚。
三、为找工作做准备-养兵千日
在此之后,我便开始了我的读书计划,目标是后台开发职位。重点放在C++、数据结构和算法、Linux、网络、Nginx。我之所以要学习Nginx,主要原因有:
一,这是一个优秀的开源web服务器,研究开源代码,非常有意义。这也是腾讯面试官给我以及另外同学的建议。
二,拓展下我的视野,弥补自己项目经历不足的问题。
下面展开介绍这几个方面的准备。
阅读大量书籍
1、数据结构和算法
在之前已经阅读了一遍《算法导论》,感觉学的不够深入,很多都忘记得差不多了。因此重新阅读了重点部分,而且用C++编程实现。比如:链表、二叉树、AVL树、红黑树等等。图的算法就看了搜索算法:BFS以及DFS。然后另外在网上找了A*搜索算法的资料看了下。一提到搜索,A*算法肯定是少不了的。之后又看了《编程之美》、《剑指Offer》。不仅仅要看书,还要总结。尤其是笔试面试中出现频率很高的链表以及二叉树的操作,我将各种操作进行了总结,并且练习白纸写代码。白纸写代码是一项重要的基本功,包括边界条件考虑、书写风格等等,会直接决定面试官对你的印象,因此我着重进行了系统训练。《STL源码剖析》看完之后,我已自己动手实现了一些容器:stack、quene、priority_quene、heap等。另外,我也阅读了网上一些大牛强力推荐的博客资料,比如July的编程艺术等。将前面几本书中不曾出现的一些数据结构和算法看了一下,比如:并查集、K-d树、R树、约瑟夫环问题、数据库存储的倒排索引等等。整体讲,这部分准备的还是很充分的,面试中出现的大部分数据接结构和算法题都解决出来了。
2、Linux和网络
linux和网络是我最薄弱的部分,也是最担心的部分。因为木有这方面的项目经历,一直担心如果在简历上写上这一项,会不会被问倒。在这里要特别感谢我的基友LM,给了我很大的指导,在这段时间里,一起学习,一起进步。linux首推经典书籍《Unix环境高级编程》和《Unix网络编程》,网络基础知识首推《TCP/IP协议详解-卷一》。APUE读了两遍,UNP挑了部分看了。感觉只看书根本不够,于是在LM同学的提议下动手写一些demo程序,比如聊天程序、基于线程池的生产者消费者程序等,加深了对基础知识的理解。
3、C++与STL
重温面向对象经典书籍《深度探索C++对象模型》。这本书介绍面向对象机制讲的非常不错,这也是笔试面试中经常出现的考点。重温《Effective C++》。关于STL,我想学的更深一点,作为自己的一项可以在面试中发挥的亮点,因此又重新看了STL内存管理、迭代器、traits编程技法、典型容器的原理。这也在后面的面试中多次被问到。
4、Nginx
其实Nginx只学习了两个月。我购买了两本书籍:陶辉的《深入理解Nginx-模块开发与架构解析》以及《深入剖析Nginx》。首先阅读陶辉的书,从总体上对Nginx有个初步的了解,了解了Nginx模块开发流程以及整体架构。并尝试搭建了Nginx环境,实现了书本上的几个模块例子。接下来开始着重看重要的模块:进程模型、负载均衡、epoll模块。阅读了重要的源码,并尝试用gdb跟踪(其实做的比较少了,没太多时间!)。在面试中经常被问到我觉得Nginx的优越性在哪?我就提提进程模型、epoll了,再和Apache简单做了下比较,基本可以蒙混过关。
笔试题面试题
至于笔试题面试题,也看了不少。大多数在网上搜索的。在这里给大家推荐一些比较好的学习资源吧:
Coolshell:http://coolshell.cn/
Matrix67大牛的博客:
http://www.matrix67.com/blog/。
July的CSDN博客:
http://blog.csdn.net/v_JULY_v。
何海涛博客:
http://zhedahht.blog.163.com/。
笔试面试的经典:Cracking the coding interview--问题与解答:
http://hawstein.com/posts/ctci-solutions-contents.html
LeetCode:http://leetcode.com/
这里有不少笔试题集锦:
http://blog.csdn.net/hackbuteer1
项目经历
除了上面的基础知识,也系统梳理了一下自己的项目。虽然项目经历很扯,但是,也需要仔细梳理下思路,不能让面试官感觉读研期间没有做什么事情。把项目流程、关键点、难点、解决方案等等重新回想了下。以便面试官问到这些问题能够很流利地答出来。
四、校园招聘-用兵一日
接下来介绍我参加的几个公司的面试情况:阿里巴巴、美团、华为、创新工场涂鸦移动、创新工场豌豆荚。
1、阿里巴巴-拿到offer
阿里巴巴笔试比较难,题目属于互联网公司中比较难的了。笔试题中有较多的概率题之类的数学题。而且选择题选错了会扣分,想得高分真是有难度啊。22日晚上笔试完之后就感觉很差,当时感觉可能就没戏了。没想到第二天中午午睡的时候就收到阿里巴巴的面试通知,居然是当天下午四点。起初还以为是第二天。不得不说阿里巴巴的效率真高,传说三天全部搞完。经过两次面试终于在25日晚10点左右收到了阿里的HR电话,说通过了面试,第二天去参加意向会议。阿里是目前为止我最满意的互联网公司了,这段时间的努力总算没有白费。
2、创新工场-涂鸦移动(拿到offer)以及豌豆荚(仍在面试中)
笔试题答的不错,总分25分,得了22分。大约9点 多笔试完,当天晚上十一点就收到了面试通知,先是问了Vim我平时都使用过哪些插件。GDB调试命令:查看栈帧backtrace等等。fork函数的返回值,以及执行过程。linux方面的东西问完之后就开始算法。总共写了三个算法题,都要求白纸写代码。不过这也没有难道我。然后面试官就说没啥问题了,问我又没啥问题。我就随便问了下总共有几面就出来了。出来才发现总时长才二十分钟。囧!这是不是挂的节奏啊!还好很快就收到了双选会的通知。
双选会
双选会在中秋前一天下午举行。主要是到场的6家创新工场旗下的公司做介绍,然后大家填了一个意向表。每个人可以选择三家意向公司,而且三家公司都有面试机会。我填的是豌豆荚、涂鸦移动和墨迹天气。会上还说涂鸦移动的面试会在当天晚上就开始,因此中秋期间也要准备随时面试。
二面-涂鸦移动
面试官特别注重考查思维能力。他问我会哪些数据结构和算法,我先说可链表、数组、栈、AVL树等等还没说完就被打断了,他补充说,偏重算法。我挑了我熟悉的几个说了下:BFS、DFS、KMP、A*算法。然后就出了四个算法题。
本来以为涂鸦二面面的很差,结果还是收到了Offer。今年好像招的人不少。
二面:豌豆荚:
豌豆荚的代码超级好,氛围也很不错。我们学院一个大牛在4月份就拿到了正式offer,听他说,里面全部是大牛,给力的工资以及各种福利等等,让人艳羡不已。豌豆荚招人非常严格,一般有6-7轮技术面试,难度可想而知。我本着打酱油的心情参加了面试。主要是问简历,聊了Linux shell命令STL,内存管理、Vector容器等等。之后就是线上编程环节。那边可以看见我的一举一动,第一次这样面试,压力还是有点大的。好吧。不得不说豌豆荚的招聘真心严格。
本来以为豌豆荚挂了,结果时隔十多天于10月16日收到了HR电话,说要进行二面。面就面吧,就当长点见识,这高富帅公司也从没想过进去。
3、美团-拿到offer
笔试是六道大题,有几道是写代码,有几道是计算题。第二天收到面试通知。美团是三面连续着面,一面,面试官让我介绍了一下项目,二面就是几道算法题,有的写代码,有的讲思想。三面是技术面,技术副总裁面。汗!压力大啊,副总裁面试!果不其然,副总裁面试就是不同,问题一个接着一个,也很有深度。比如项目中遇到了哪些问题,是怎么解决的,软件设计,Linux、Nginx等等。反正很多没答上来。面完之后就感觉要挂的样子。
十月初便收到了美团网的offer,薪资也还蛮给力的,氛围也很不错,只不过在北京额。
4、华为-拿到offer
华为先是机试,三道编程题,题不难,但是只做出来两道,第三道题题目理解错了,尼玛。面试分为两轮,一轮技术一轮HR。感觉华为技术面试是我面的最差的。几道题一个都没答上来。什么数据库存储原理、linux内核的东东….囧。干嘛总是问我不会的呢!
本感觉没戏了,不过后来也收到了签约池的信息。再后来就收到了HR聊意向的电话。虽然说华为今年涨薪了,但是对华为的氛围一直没有什么好的印象,没有去的欲望,不久就拒了。
五、总结-一点小感悟
其实我从来没有料到自己的求职过程会这么顺利,因为实现没有发现自己身上有哪些过人的优点。
自我感觉我在面试中的亮点主要有三部分:
(1)基础扎实。很多公司都非常注重基础:语言、数据结构与算法、Linux、操作系统等等。手写代码能力很重要,有必要重点强化训练。
(2)课外知识。我课外花时间学习了web服务器Nginx,虽然研究得不是很深入,但是了解基本的架构和重点模块。对于服务器模型有了基本理解。
(3)技术博客。我的技术博客原创博文已经很多了,虽然没有太多高深的东西,都是一些基础知识,但是大多是自己加以总结了的。大多数面试官都打开我的博客看了,评价还不错。
最后,希望我的总结能够给各位学弟学妹一点借鉴的意义,希望大家都能找到好的工作!
转自 csdn的博客 江南烟雨
大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,我们这里有java高手,C++/C高手,windows/Linux高手,android/ios高手,请大家关注我的微信公众号:程序员互动联盟或者coder_online
本文暂时没有评论,来添加一个吧(●'◡'●)