1,简介
毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。
首先说说我拿到的offer情况:
微软,3面->终面,搞定
百度,3面->终面,口头offer
搜狗,2面,悲剧
腾讯,1面,悲剧
布丁移动,3面,搞定
涂鸦游戏,3面,搞定
友盟,3面->CEO面,搞定
雅虎,4面->终面,搞定
微策略,2面,悲剧
人民搜索,3面->终面,搞定
人人,2面+终面+Special面,搞定
Google,7面,搞定
求职经历分为定位、准备、简历、笔试和面试这五个部分,大家挑感兴趣的看就成。
我的求职经历适用但不限于码农,不适用与企事业单位(据说是完全不同的考察标准和流程)。废话比较多,大家耐心忍受,有什么问题可以跟帖提问。
2,定位
教育经历:本科在大连某工科院校,由于GPA比较惨烈+挂科,所以没保成研,毕业后修了一年英语双学位,然后到帝都计算机职业教育学院接受再教育。
技术能力:属于半码农半产品的类型,代码编的过去(搞过compiler),也有一些拿的出手的产品(几十w的用户量),一句话描述:几十w代码+几十w用户的Coder。
专业能力:非ACM出身,算法拙计但基础扎实。由于单身所以看了N多书(CS+心理+经管+历史),扯淡能力强大,碰到非专业的各种秒杀,碰到专业各种拙计。
实习经历:大四在一家ds公司实习过一年,攒了不少代码量;后来在MS断断续续的待了一年多,虽说是打酱油,但在众大神的光环笼罩下,水平至少提了三个档。
目标公司:由于百度给我的印象实在很差,而MS给我的印象又实在很好,所有就有了下面的排名:
外企(Google、MS、Yahoo等)>国内互联网(阿里、腾讯、百度、网易等)>企事业单位(基本不考虑)
3,准备
经常在论坛里看到各种求职抱怨贴,其实在抱怨前应该仔细想一想,为了求职,你付出了多少?看到人家找工作找的顺找的爽,有没有想过人家背地里付出了多少努力和心血?别拿官二代和富二代啥的说事,真ds只会拿一堆自身以外的理由掩饰自己的懒惰。
不要认为求职就是发个简历等面试通知,对于大神来说不用发简历牛逼公司也会围着你转,对于ds来说就是预则立不预则废,中国缺什么就是不缺人,不下功夫准备很有可能连个P都没有。
其实很多ds就是怕预也废所以干脆不准备直接上,这样搞不定的话,就有借口说不是自己蠢而是自己没准备,可以捍卫自己的智商高地不被侵犯。身边有不少这样的实例,典型的死要面子活受罪,活该你找不到工作。
我的微软mentor曾提到过,我的实习面试表现一般,但后来表现出的动手能力大大超出之前面试的预估,而有些面试表现很出色,问题对答如流的选手,入职之后反而不是很理想,至少没有达到面试时发挥出的水准。
这说明一个问题,就是笔试面试,准备和不准备会差异很大。如果你的简历不是那么NB,那就只能靠笔试和面试的加分撑场面。身边经常有同学纳闷这样代码都编不利索的傻屌都能进MS为什么我不能进,答案往往很简单:人家比你多准备了一个月。平时电脑上写程序可能很利索,笔试面试时在纸上写写试试你就知道什么叫拙计。
IT公司的笔试和面试的题量都不大(相对于企事业单位和银行动辄上百道选择题的题量,算是很少),一般十几道选择题,三四道大题就算题量很大。但计算机的东西实在又是太多,程序设计、数据结构、算法设计、操作系统、体系结构、编译原理、数据库、软件工程等分支,编译的话太难(一千个码农里也没几个人能在纸上写一个最基础的递归下降LLParser),软件工程、体系结构、数据库这些太水(不是说这些分支没用,而是它们很难考察,尤其对应届生来说这些都是些文字游戏,比如说面向对象的三要素五原则,有个鸟用),这么一排除,再把数据结构和算法设计一合并,就剩下程序设计、算法和操作系统。没错,这三项搞定,国内外IT公司通杀。
因此我的笔试和面试准备很简单,就是重温+突击程序设计、算法和操作系统。下面是我的笔试+面试准备内容:
程序设计:
1,把基础的数据结构的C语言实现在纸上写三遍以上,用我能想到的最精简最优化的方法
2,阅读CARM和TCPL,确保不会遗漏C语言的每个细节
3,重温之前自己做过的靠谱项目,并总结里面的关键难题和解决思路
4,重读Writing Solid Code、Elements of Programming、Practice of programming
5,阅读Science of Programming,做到可以证明自己的程序的正确性(前条件+后条件+不变式)
算法:
1,重读Algorithm Design Manual,重点阅读Dynamic Programming和Backtraverse
2,重读Programming Pearls和More Programming Pearls,并完成所有课后题
3,独立解决编程之美里面的题目(国内不少企业选题用的这本书)
4,完成Careercup里Amazon、Google和Microsoft这三个分类下面的前20页面试题
5,完成TopCoder的数十道D1L2~D2L1难度区间的算法题目
操作系统:
1,重读Modern Operating System,重温OS的核心概念
2,重读Computer Systems a Programmer's Perspective的关键章节,回顾里面的关键点
从七月底开始一直到十一月,花了接近四个月,很多东西都是一边面试一边准备:面试->发现盲点->修复盲点。
此外列出一些面试笔试题的资源,此外感谢基友@codewarrior之前的推荐:
1,Crack over the code interview
很靠谱的笔试面试指导手册
2,CareerCup
集齐了大量的真实笔试面试题,去外企的一定得看
3,TopCoder
如果不是ACM,练这个就够,其实面试也不会问太难的算法,哪怕是google
4,编程之美
尽管题目有些过时,但依然很实用,三星题目适合一个人仔细想
此外也说下一些不靠谱的资源:
1,IT公司面试100题
这个恐怕是国内传的最多的IT面试题
题目本身还可以,但那个出题人本身代码功底一般,给出的答案包含大量错误和缺陷,导致参考价值骤降
2,程序员面试宝典
翔一样的书,各种错误概念的堆积,