转载:迟到一年的面经,给准备做程序员的童鞋们
转自:http://blog.csdn.net/qingtingchen1987/article/details/7954466
from:http://blog.csdn.net/qingtingchen1987/article/details/7954466
如有侵权,请告知,我会在24小时内删除。
去年的这个时候,我还刚从阿里巴巴实 习回来,在实验室里无心干活,整天忙着找工作的事情,找工时的经历还历历在目,一晃一年都过去了,现在成了帝都我谷公司的一位码农。毕业离校前就答应要给 师弟师妹们写个面经啥的,拖了半年,眼看下一届这就要找工作了,不能再拖了。其实网上能找到的面经啥的都很多,我就不废话了,给大家带来一点干货。
找工作是可以准备的么? 虽然说找工作的时候主要靠的是你平时积累的结果,但是,任何考试都是有一定模式的,所以呢,通过一定的训练可以提高拿到高级offer的几率,特别是面技术类的职位,有些练习是有立竿见影的效果的,准备还是相当有必要。
找工作要准备什么? 请先参考一篇文章《怎样花两年时间去面试一个人》
(如果打不开请在浏览器里键入:http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/)
怎么样,知道自己要准备什么了没,是不是发现时间根本就不!够!了!
没错,时间永远都不够的,现在只剩下一个多月了,咋办呢?
其实一个多月的时间能做很多事情,我本人也只是从8月结束前的几天开始准备找工,一直到10月底结束所有面试,边准备边面试大约也就2个月的时间。不过因为时间紧迫,选择做什么更为关键。下面我罗列下该做的事情。
1.复习数据结构与算法
几乎所有IT公司的主要面试形式都是问编程题,如果数据结构与算法都丢了建议你还是不用找IT类的工作了吧。首先是把数据结构和算法设计这两门课的课本再看一遍,熟悉数组、链表、堆、树、图、hash这几个数据结构,掌握排序、分冶、贪心、动归、搜索、这几种常见算法。
形象一点说,可以把这些内容分为3
级。
1级包括:数组、链表、树、排序。这些都是最基本的东西,必须非常熟悉,如要多写写链表的插入删除节点,树的遍历啥的。特别是排序,各种排序算法都最好能
在5分钟内写出来,排序几乎是任何一个公司面试都会考察的。掌握了第1级的技能,年薪12w以上的工作肯定就没问题啦。
第2级包括:所有常见的数据结构、简单的分冶和贪心、基本动归和搜索算法。掌握了这些,你应该能拿下18w左右的offer。
第3级:除了常见的数据结构,你还得对啥字符树啊,B+树啊比较熟悉,hash必须能写出一个优秀的hash算法并且知道hash的几种不同实现如何解决
冲突等,对于几种常见算法类型如动归搜索等,最好在pku的acm平台上都做上几道题熟悉一下,锻炼解题思维。嗯,做到这些的话,你应该可以冲击25w以
上的offer啦。当然,如果你是ACMer,可以自动忽略这段东西。
2.计算机科学技术的技术知识
也就是上课的时候学到的内容啦,越是
优秀的公司越注重你基础是否稳固,烂公司只关心你会不会写javascript或php。最先得复习的两门课是操作系统和计算机网络。操作系统有多进/线
程、虚拟内存、文件系统啥的。计算机网络把TCP/IP。HTTP,UDP的概念都熟悉一下。计算机系统结构最好也看一下,主要明白下cpu架构,流水线
什么的。还有两门必须复习的是离散数学和概率论,离散数学主要是复习下各种概念,不用看太多。概率论要着重搞清楚条件概率是咋回事,去年好多的笔试题都有
涉及。
3.做一个好简历
简历绝对是需要花时间做的一个东西,
一份好的简历能让你有一定的几率免除掉笔试,直接进入面试阶段(有道和hulu我都是通过简历直接免了笔试)。我的简历历经各种修改到最后定稿我弄了一个
多星期。一份好的简历好要做到重点突出,排版整洁。篇幅1到2页即刻,我的简历写了两页。多想想自己的哪些经历是和职位相关的。注意不要用乱七八糟的字
体,中文以宋体为正文,英文Times
New就ok。切忌太花俏,你是程序员又不是搞UI的,还有千万不要写什么能熟练操作word、excel啥的,相当扣分。最后,要把简历格式保存为
pdf格式,不要用啥doc,docx,让人一看就认为是除了windows啥也没用过不知国际标准为何物的小白。
4.多面试,多做题,前期海投,后期重点突破
在短时间内最立竿见影的方法是参加各
种面试,做各种真实的面试题,针对面试的反馈做调整,然后下一次面试就能用上了。
基本上,大部分it公司都会在9月初开始到10月底这两个月的时间段内进行校招,国企银行什么的可能会晚一些。推荐大家在早期尽量多参加笔试面试,各种海
投,一个作用是明白这些公司的笔试面试都会考什么问题,避免自己闭门造车。二是尽快熟悉面试的节奏和气氛,之后面心仪的公司时才比较不会紧张。在学校里面
最好能跟几个同学形成一个圈子,分享各自去面试遇到的问题,搞个内部论坛多写面经多分析。如果有在不同城市的高中或本科同学,可以利用有些公司在不同城市
招聘的时间差,获取今年最新的面试情况,如题目和各岗位招人的数量等等。到了10月份之后,对自己面试的情况有一定的了解了,根据反馈多做一些准备,多花
些时间看点相关的书做调整,重点选择参加几个自己确实想去的公司的招聘。
5.书单
最后推荐几本有用的书:
《编程之美》: 这本书有许多面试题的真实案例,几乎我在每个公司的面试中都能遇上一道在书里能找到的题目,如找第K大数什么的。最好能完整读完。
《c++ primer》: 在熟悉下c++语法,特别是面向对象部分(因为我学校里c++写得多,所以很多书是关于c/c++的,据我观察似乎学校里写c++比java要稍微好找工作,因为很多面试题c++实现比java要简单)
《c专家编程》: 关于C的很多比较底层的知识,忽悠面试官专用。
《深度探索C++对象模型》: 关于面向对象怎么实现的一本书,会解答诸如虚函数是怎么实现的,一个对象占用多少内存这种问题,据我所知网易游戏非常喜欢问这方面的东西
《effective C++》: 忘了讲什么的了,记得我好像读过...
《c++/java程序员面试宝典》: 这本书价值不大,不过可以看看...其中智力题部分,大部分公司不会问到智力题啥的,不过不能排除部分奇葩公司来一道。
《算法技术手册》: 很多常用算法有很好的实现,可以做查阅用
6.多读书多看报,少打dota多睡觉
要多关心下业界的新闻,明白下最近都
近都在发生些什么事情。不要在面试的最后让你提问题的时候净问些工资多少啊,什么时候发offer啊这种没啥作用的东西,多针对公司聊下业界的一些情况,
让人知道你不是一个只会写代码的码农。如果你说啊我平时都没注意咋办呐?最简单的方法就是关注各种IT公司老总的微薄,什么周老板啊雷布斯啊李开复啊看看
这帮人最近都在说什么,然后再上上虎嗅网啥的,起码扯一扯是没什么问题了。
好了,基本上也就这样了,我已经把我毕生的心血交给了大家,接下来就看你们的了。祝各位师弟师妹们好运~ 哦对还有某些博士师兄师姐们也~好运