注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 Warald 于 2009-8-7 18:57 编辑
我也不知道原来是从哪里看到的了。。。
大家可以结合我在EECS版里写的 CS就业+选课的文章来看这篇经验总结,这个人是博士学位。。。
----------------------------------------------------------------------
摘要:
国内工作四年。CS专业,网络方向,专业排名60/70。六月底论文答辩通过,开始写简
历、复习软件开发相关知识。八月初毕业。九月中旬在Monster.com贴出第一份简历,
一星期后陆续开始电话面试。OPT十月一号生效。十月中旬第一个Onsite面试,拿到并
接受Offer,找工作结束,十一月初开始上班。
-baidu 1point3acres
[1] 去年底花了数月时间,准备材料申请教职工作。申请了六十多所Teaching Schools
,到三月份才等来唯一一个电话面试,结果是无功而返,颗粒无收。然后幡然悔悟,在
工业界找个程序员的工作是我唯一的现实的选择。由于OPT要10月1号才开始,心里倒也
乐哉游哉,一点不着急。一边写论文,一边抽了些许时间看看编程方面的书。时光荏苒
,眨眼到了6月底,答辩、论文尘埃落定,正式投身于找工作的大军。
. check 1point3acres for more.
[2] 认真开始找工作之后,突然意识到有太多的东西需要复习,时间一下子变得很不够
用,心里也暗暗开始着急。比如说,我用C++写程序有7、8年的经验了,工业界软件开
发做过几年,在学校里也一直用C++写网络仿真程序,应该也算对C++常用的特性比较熟
悉了,可是对网上贴的一些C++面世题却觉得无从回答,或者是概念上知道有那么回事
,可很难简练、准确地作出回答。 还有个让我困惑的是,Java程序员的机会似乎比C++
程序员的多很多,我也用Java写过些小程序,可是相对我在C++方面的经验,Java的经
验基本可以忽略不计。不死心,找了本Java的经典书看了几天,主要是J2SE,感觉内容
太多,要想过Java面试这一关,这么突击一下觉得不太可能,更别说多数Java相关职位. 1point 3acres
需要J2EE和一大堆网络/页面开发的相关知识,遂决定放弃Java,全力集中于C/C++..
[3] 对于C++职位,发现最热门是"精通C++"&&"多线程编程"(&& "Socket
programming")。下面是我主要复习的内容和对我最有用的参考书。这里列的书比较
多,有些书以前仔细看过,有些书我也只是以前大概的翻翻。很多东西概念上知道,细
. Χ节都忘得差不多了。八月份毕业、搬家,休闲娱乐,事情很多,时间觉得特紧张。找工
作这段时间重新把这些书过一遍,我重点看的书用#标出。
* C和C++编程语言:
- The C Programming Language (2nd Edition) by Brian W. Kernighan and
Dennis M. Ritchie (Paperback - Mar 22, 1988)
- C: A Reference Manual (5th Edition) by Samuel P. Harbison and Guy L.
Steele (Paperback - Feb 21, 2002)
#- Expert C Programming by Peter van der Linden (Paperback - Jun 14, 1994)
#- C++ Primer (4th Edition) by Stanley B. Lippman, Josée Lajoie, and
Barbara E. Moo (Paperback - Feb 14, 2005)
- The C++ Standard Library: A Tutorial and Reference by Nicolai M.
. .иJosuttis (Hardcover - Aug 12, 1999)
#- Effective C++: 55 Specific Ways to Improve Your Programs and Designs (
3rd Edition) by Scott Meyers (Paperback - May 12, 2005)
* 数据结构、算法:
#- Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting,. From 1point 3acres bbs
Searching (3rd Edition) by Robert Sedgewick (Paperback - Jul 13, 1998)
- Algorithms in C++ Part 5: Graph Algorithms (3rd Edition) by Robert
Sedgewick (Paperback - Dec 27, 2001)
- Introduction to Algorithms by Thomas H. Cormen (Hardcover - Sep 1, 2001)
#- Programming Pearls (2nd Edition) by Jon Bentley (Paperback - Sep 27,
1999).google и
* 计算机体组成与体系结构
- Computer Architecture, Fourth Edition: A Quantitative Approach by John L
. Hennessy and David A. Patterson (Paperback - Sep 13, 2006)
- Write Great Code: Volume 1: Understanding the Machine by Randall Hyde (
Paperback - Oct 25, 2004)
- Write Great Code, Volume 2: Thinking Low-Level, Writing High-Level by
Randall Hyde (Paperback - Mar 18, 2006)
* 操作系统
#- Operating System Concepts with C & C++ by Abraham Silberschatz (
Hardcover - 2005)
- Linux内核源代码情景分析 by 毛德操/胡希明,浙江大学出版社,2001
- The Linux Process Manager by John O'Gorman (Paperback - Feb 13, 2003)
. Χ
* Unix编程(其中包括 基本Unix编程、多进程/线程编程、Socket编程)
#- Advanced Programming in the UNIX(R) Environment (2nd Edition) by W.
Richard Stevens and Stephen A. Rago (Hardcover - Jun 17, 2005)
- POSIX Programmers Guide by Donald Lewine (Paperback - April 1, 1991)
- Unix Network Programming, Vol. 1: The Sockets Networking API, Third
Edition by W. Richard Stevens (Hardcover - Oct 22, 2003)
- Unix Network Programming, Vol. 2: Interprocess Communications (2nd ..
Edition) by W. Richard Stevens (Hardcover - Aug 25, 1998)
#- Programming with POSIX(R) Threads by David R. Butenhof (Paperback - May
16, 1997)
#- Threads Primer: A Guide to Multithreaded Programming by Bil Lewis and
Daniel J. Berg (Paperback - Oct 31, 1995)
* 设计模式、OOA&D、UML. Χ
#- Design Patterns: Elements of Reusable Object-Oriented Software by Erich
Gamma, Richard Helm, Ralph Johnson, and John Vlissides (Hardcover - Jan 15,.
1995)
#- Head First Design Patterns (Head First) by Elisabeth Freeman, Eric
Freeman, Bert Bates, and Kathy Sierra (Paperback - Oct 25, 2004)
#- Head First Object-Oriented Analysis and Design (Head First) by Brett D.
McLaughlin, Gary Pollice, and Dave West (Paperback - Nov 27, 2006)-baidu 1point3acres
- Object-Oriented Analysis and Design with Applications (3rd Edition) by
Grady Booch, Robert A. Maksimchuk, Michael W. Engel, and Bobbi J. Young (
Hardcover - April 30, 2007)
* 软件开发、软件测试
- Code Complete, Second Edition by Steve McConnell (Paperback - Jun 2004)
- Software Testing (2nd Edition) by Ron Patton (Paperback - Jul 26, 2005)
* 计算机网络及TCP/IP协议栈
- Computer Networks, Fourth Edition by Andrew S. Tanenbaum (Hardcover -
Aug 9, 2002). check 1point3acres for more.
#- Computer Networking: A Top-Down Approach Featuring the Internet (3rd. From 1point 3acres bbs
Edition) by James F. Kurose and Keith W. Ross (Hardcover - 2004)
- The Protocols (TCP/IP Illustrated, Volume 1) by W. Richard Stevens (
Hardcover - Dec 31, 1993)
..
[4] 一直到九月中旬,这段时间做准备和写简历。简历改了无数遍,找朋友和学校
Career Center的人看过。就我个人情况而言,Career Center没有多大帮助,她们只能
提供些泛泛的建议和修改语法。相反地,朋友们的反馈最切中要害。对比一下最后投出
去的版本和第一个版本,还是有天壤之别。对于简历长度以及是否要列上发表的文章,
说法五花八门,我也觉得无所适从。最后决定还是要简练,简历一页半,选择性地罗列. Χ
了5篇杂志和会议论文。不过面试时,都是大概问问以前的研究,从来没有人直接问过
论文的情况。简历上罗列上论文是否有帮助,不得而知。转眼九月中旬,OPT卡早已收
到(花了大概两个半月时间),10月1号生效,简历还没有投。我还沉得住气,家人朋
友可是比我更着急。我是想,与其匆匆上阵而浪费了面试机会和时间,不如多准备准备
。可是,学无止境,永远都觉得还准备得不充分。但是,很多人都告诉我,9月到1月是
找工作的黄金季节,时间不等人,豁出去了。
[5] 九月中旬把简历贴到了Monster.com 。正好学校有一年两度的招聘会,也去投了几
. check 1point3acres for more.家公司,觉得电信相关的公司依然不景气,爱立信直接说不招H-1B的学生,而Nortel说
不招技术类的工程师,彻底无语。投了七八家公司,微软是唯一的一家给了面试的机会
,这是后话。其于的都是杳无音信。简历贴到Monster上之后,每个工作日的点击率大
概只有五、六次,这个样子一直持续到一个月后把简历撤下来,可能是简历写得还不够
吸引人吧。
[6] 很快,第一个电话面试,Amazon。大概问了问是否对Amazon感兴趣,什么时候毕业-baidu 1point3acres
(其实我简历上都写得很清楚了),是否愿意搬家之类。自然啦,我赶紧说很感兴趣,
没问题啦。然后约了几天后的技术性电话面试。面试我的是一个项目经理,做online
fraud detection, 找DataMining方向的人,一直纳闷为什么找到了我这个做网络方向
的人。第一次面试,完全没有经验,一星期后发信询问结果,礼貌地把我回绝了:"我
们认为其他的候选人或许更适合这个职位。如果有其他机会,我们不会忘记你"云云。
小受打击了一把。我当时把面试的情况发了个帖子,为了方便,我把那帖子拷贝到这里:. ----
---------------------------------------------. .и
昨天,大约一小时,Data Mining的职位。
1、先过一遍简历,大概半个多小时。然后说我背景不太符合,问我有什么想法。面试前. 1point3acres
还真没有考虑这个问题,一时卡壳,只好说那我的那些经验虽然不直接相关,原则上还
是很有用处的,教训啊。. check 1point3acres for more.
2、两个Design pattern问题:abstract factory (问大概的类结构), singleton(如.
何实现,给两个例子说明什么时候用)。这个还好,恰好我都知道。这23个pattern,
大概有10多个我是搞得很清楚的,算运气好。
. 1point 3 acres
3、linked list vs. vector 优缺点。死活把中间插入删除时的优缺点忘记说了,其时
平时自己太清楚不过,当时我也不觉得自己有任何紧张,挺奇怪的。
4、写代码实现字符串反转,边写边逐字念给他听,比如Tab开头,一个括符,空格之类
一字不拉。写了N>5年代码,不过也很少(也许就从来没有过)一口气把一个函数写完. 1point 3 acres
一字不差的,觉得很不习惯,结果没写完(大约5分钟),也就那么5、6行,惭愧,说
到底还是coding的功力不行。
.
5、最后问我有什么问题,我就问了精华区的两个问题:most challenges in your. 1point3acres.com
work & career path. 他眉飞色舞给我讲了一通。
.google и
第一个电话面试,我把简历放在monster上几天找到我,不过,看来没戏了,Move on!
---------------------------------------------
[7] 没几天,收到一个猎头的Email, 说正在为一个大公司找人,觉得我的背景挺合适. check 1point3acres for more.
的,并附上了职位的描述,问我有没有兴趣。一看,的确比较匹配,一来二去,最后拿
到了这家公司的Offer。先是电话面试,一个半小时,两个人(不过其中一个人几乎没
有说话)。还有一个面试者来晚了,然后又单独问了半小时的问题。前两个面试者大概
是印度人,有些口音;后一个面试者是中国人,我们直接用中文面试。大家都非常友好
,整个过程非常顺利。特别是我们的同胞,还给我介绍了许多公司的情况,太感谢他了
. 1point 3acres 。面试问题大概包括:. 1point 3acres
* 网络分层模型,TCP和UDP的优缺点比较,端口在Socket通信中有什么作用,如果两个
程序在同一台电脑上打开同一个端口会发生什么,IP层的主要功能是什么.--
* 进程调度,如果一个只包含for死循环的程序获得了CPU,将会发生什么
* 虚拟内存
* C++多态、继承、虚拟函数的概念,动态绑定
* 给出一段大约30行的程序片断,找Bug。主要是析构函数造成的内存泄漏。
* 写一段程序实现链表反转,包括测试代码(他们打开了一个远程连接,直接在电脑上
敲代码)
第二天,猎头告诉我,公司准备邀请我Onsite面试。又过了三天,HR的人打电话给我,
正式安排Onsite面试事宜。一周后,Onsite面试,从上午8点半到下午2点,包括中午午
饭一个半小时。先是HR的人介绍Benefit,然后见Hiring Manager, 简略地问了一下我
的背景,然后主要问我对他们公司有什么了解。因为我对他们做的东西的确感兴趣,去. 1point 3 acres
之前做了很多功课,觉得很喜欢这家公司。我把他们的产品系列、产品体系结构、用到
的主要技术大致地讲了讲,尽管有些不准确的地方,不过我把我对他们项目的兴趣真实
地表达出来了。看得出,很对他的胃口。然后是四轮技术面试,问到的问题和电话面试
时类似,大概是这么些:
* 详细询问了以前的工作经历,什么职位,具体做什么,怎么做,为什么选你做体系结
构设计,如何组织项目开发等等
* 一些Behaviour问题,比如工作是否有争执、如何解决等等
* 在学校做的研究是什么,没有深入问
* 路由,router/switch/bridge的区别
* C++的一些常见概念(具体问题忘记了,不过都是有关C++的最常用的特性,没有很刁
钻、一百年也用不到的东西),反转字符串中单词的顺序,经典的面试题目,直接在白
板上写代码,尽管我知道怎么做,不过还是有个边界条件搞错了。
* 单词词频统计
* 八球称两次找到唯一比其它都重的一个
* Java和C++的区别,内存垃圾收集怎么实现。这个我不太清楚,大概把我的思路和他. check 1point3acres for more.
讲了,然后聊到循环引用问题,为什么在收集垃圾时要把程序暂停(避免不一致状态)
中午和他们组三个人出去吃饭[上班后才知道,这三个人并不是招人的项目经理那一组
的],他们很友好,也就吃饭聊天,聊了些他们工作上的事情,物价房子小孩,他们来. 1point3acres.com
这家公司之前的经历,其中一个工程师在70年代直接用比特编程,觉得很有意思。不过
,饭一半也没有吃掉,最后打包带走,呵呵。最后,下午和Hiring Manager做总结性面
谈半小时,问我有什么问题。去之前本来找了本面试书看了很多很好的问题,可当时头
脑发昏,只问了两三个问题觉得没有什么可问了,回来才想起还有很重要的问题没问,
比如他的管理风格、如何评价他的手下等等。最后问了我的工资要求。这家公司在我去
Onsite面试之前就问了我的工资要求,面试时又问,觉得和网上其他人的经验很不一样. 1point 3acres
,可不一般都是给了Offer再讨价还价吗?只好照直说了,以前我对这里的消费水平估
计不足,给了个比以前高两万的数字,他把这写在我的简历上,没说什么别的[等我回
去后,猎头出面又再问我工资,我降了一万,后来给的Offer比我最后要的多了2000]。
最后项目经理问我是否还有别的面试,我告诉他下周还有两个微软的Onsite面试,他把
这写在简历上也没说什么。然后还问了OPT和H-1B的事,我说我的OPT10月1号开始,没.1point3acres
有Gap,他很高兴的样子说,这是一个明智的决定。看来公司对Gap还是很敏感的。送我. Χ
出来,问我什么时候可以开始上班,我说立马就行啊。然后互致谢意,道别。
这是周五的面试,周一猎头打电话给我,说准备给我Offer,问我如果现在给Offer,是
否能把微软的Onsite取消了。这才是我的第一个Onsite面试,还想到处看看呢,最后说
到周末给他们答复。后来考虑到我和我的家人都觉得西雅图的冬天比较寒冷潮湿,也许
呆在南方比较好,而且我觉得这面试的第一家公司发展前景很好,做的东西我很有兴趣
,给的Offer也不错,也就接受了。回头把微软的面试取消,心里颇感抱歉。第二天,
他们把Offer Letter快递过来。找工作的历程到此结束。就等着搬家公司联系我们搬家
了。
[8] 回头说说微软的面试。微软的面试,一个来自在学校招聘会投的简历,另一个是他
们在Monster上看到了我的简历找到我的。.
第一个职位:先是HR的人打电话,问问是否对微软有兴趣,什么时候毕业,是否愿意搬
到西雅图(这好像是HR的标准问题),然后约电话面试的时间。电话面试是先告诉我,
这是个screen interview,并不针对具体职位。先过了一遍简历,然后问了些C++的问
题(具体问题已经不记得了,抱歉)。面试人是软件测试工程师,我最后就问了问他做
测试的情况,他很高兴,吧啦吧啦,说了很多,我听的也很新鲜。整个过程比较轻松愉
快,没有什么压力。过了一星期,给约了Onstie面试,是MS Office Group.
第二个职位:先是HR的人打电话,问了标准问题,问是否对SQL Server开发感兴趣,然
后约了电话面试时间。第一电话面试是HR的Technique Recruiter,先问了一下以前的
背景,问了软件工程中的一些问题,比如你认为什么样的是好的代码,怎么开发一个好
的产品,你是否做单元测试。然后感觉上是照着一张单子问C++的问题,都是常规问题
(抱歉,具体问题记不起来了),没有回字有四种写法这类生僻的问题。过了几天,约
了和一个Lead developer电话面试。这个面试是聊天性质,简略问了问我的Research,
然后主要是他介绍他们组的情况,只问了一个如何测试Cache Latency的问题。这是个
我从没有想过的问题,我把大致思路说了,主要是设计一些内存访问模式,导致Cache
Hit或者Cache miss。思路是对的,有些细节我也不清楚,不过他告诉我他主要对解决
问题的过程感兴趣。最后,我问了他SQL Server 2008和当前版本的主要技术区别,主
要技术挑战是什么,聊了很多。回头约Onsite面试。这里有意思的是,一开头我就告诉
他们,我还在同时面试微软的另外一个部门,他们并不介意。看到经常有人问,同时面
试同一个公司的多个职位有不有问题,从我的这个情况看,好像没有啥问题。
不过,最后由于机缘不巧的缘故,两个Onsite面试都没有去。些许有一丁点遗憾吧。
..
[9] Google电话面试。在我去第一家公司Onsite面试的路上,Google来约电话面试,这
个是我直接在Google网站上投的简历。感觉Google的电话面试完全是另外一种风格,对-baidu 1point3acres
知识点不感兴趣,只看解决问题的能力,也可以说他们注重算法设计。两个问题,大概
45分钟。第一个问题,给一个问题的描述归纳出一个公式,问题记不清了,是一个菲薄
那切数列。第二个问题,给出一串数字,找出在电话按钮上所有可能的对应单词。大概
解体思路是:每个数字对应几个字母,先枚举出各种可能字母组合,用前缀树筛选;最
快的是用Hash表。面试中,面试者给出了不少提示,我大概也就答出来60%的样子吧,
觉得自己水平还真是不够,不过整个面试的过程我很喜欢,没有什么压力,这是我最享
受的一次电话面试。一周后约第二轮电话面试,那时我已经拿了第一家公司的Offer,. check 1point3acres for more.
也就把这个第二轮面试回绝了。顺便提一下,面试我的是中国同胞,人特好。联系我的.1point3acres
也是位华人女士(ABC?),会说一点点中文,感觉特别亲切。
a. Bloomberg面试。在我接受第一个Offer两天之后,收到Bloomberg的Online
language skill evaluation (C, C++, C#, and Java, 总共四个考试,任意选择一个
),大概是一个星期前在网站上直接投的简历。抱着好奇的心理,我选择了一个C++的测
试。果然名不虚传,好像是50题目,总共120分钟,考得非常非常细,最让人没有脾气
的是,多数题目并不刁钻,是一些很细节很有用的高级特性(尽管做Course Projects
或者是做Research写程序用不着这些特性,但是对于高性能、高可靠的金融业的软件,
这些细节则是合情合理)。受到不少打击,本还以为自己C++的水平不错的。出乎意料
的是,一个多月之后,他们发Email给我说,我的测试通过了,要安排电话面试,那时
我都上班两个星期了,婉言回绝。机缘不巧。
还有个Bloomberg的小插曲。有个猎头看了我在Monster.com上的简历,说和Bloomberg
具有长期合作关系,已经帮Bloomberg招了很多人。给我电话立马就面试C++的十几个问
题(基本问题),当时对我很满意,跟我说,如果别的猎头找你去Bloomberg,你一定
要拒绝啊,我一定能帮你搞定。过了几天告诉我Bloomberg明年不资助H-1B。我就不信
啊,直接上他们网上投简历,根本没这回事,所以猎头的话也别太相信,尽管他们有时
候说得很肯定,说有内部关系。也许他们得到的信息不准确,也许有时只是托词。
b. 另外还有四五个猎头在Monster看到我的简历,把我的简历投了些其它的公司,至
今没有任何消息。还有朋友帮忙Refer,一家预约的电话面试,但是由于我很快拿到了
第一家公司的Offer,也就把这家公司推掉了;还有些别的公司,至今没有消息。无论
如何,非常感谢朋友们的帮忙。
c. 一点感想。. 1point3acres.com
今年CS的形势似乎还不错,机会还是很多的。不过准备也很重要,很多在面试中问到的
问题,如果我不花时间准备,肯定是答不上来的,或者是能够答上来一些,信心也不会
有那么足。个人认为,投简历之前好好准备不失为一个好的策略,磨刀不误砍柴功,不
过需要和家人朋友好好沟通,免得他们太着急。
象很多人在版上说的,找工作要尽量早做准备。以前我不以为意,自己去做了才知道时
间不够,要看的东西实在太多。-baidu 1point3acres
准备好了之后,最好在一段时间高密度地投简历。感觉公司处理简历的速度很快,如果.1point3acres
有消息,基本一周最多两周的样子吧。这样可以避免这边拿到了Offer,那边才刚开始
面试的尴尬。
找工作也是一个磨练耐力的过程,象我这样普通学校出来的也有不少面试的机会,多坚.google и
持一会,各位都会找到自己心仪的工作。
另外,H-1身份总是悬在我们外国人头上的一把利剑,寄人篱下的代价。希望自己几年
之后,经验和收入有些许积累之后,回国为自己、同时也为自己的国家做点事情。.1point3acres
d. 致谢
找工作的过程中得到很多朋友的无私帮助和鼓励,以及提供各种信息和机会。家人的理. 1point 3acres
解和支持也是其中关键的一环。没有他们的支持,找工作几乎就是不可能完成的任务。
特别感谢我的一个朋友(尽管他不会来这个版面),为我们家提供了临时住所,省下我
毕业后找临时住房的时间和精力,使我得以在一个好的环境里安心找工作。
祝愿各位Offer多多! |