本文目标读者:想去外企做IT工作同学。 
个人背景:本人现在在一家外企作软件测试,找工作前没有实习经历,只是和同学一起做过项目来做,主要用的是C#和java。找工作过程中,只笔试了几家公司,只有一家没有鄙视我。面试了几家公司,只有一家给我Offer。但自己很想去这家公司,之后就没有再找了。 

设立目标 
个人觉得设立目标非常重要,我身边几个工作找的比较好的人都是目标比较明确的。目标明确之后你可以按照目标的要求去定位复习的内容和重点,然后合理的安排时间。 

复习开始 
找工作前的复习工作当然是越早开始越好,这样可以复习的内容也就越多,准备得也就越细。最好是两个月前就开始准备。 

复习规划 
复习规划分为长期的规划和短期的规划,规划复习的进度、内容、程度(不一定每个部分都复习的很细致)。长期规划中的内容较全面,时间比较长,是针对大部分笔试,面试进行复习的。短期规划是针对突如其来的笔试和面试,长期规划没有来不及完成时使用的,主要是根据笔试面试的最可能内容、重点、自己的优势和缺陷以及简历呈现的内容等方面进行快速有效的复习。 

复习内容 
复习的内容主要依据你的时间,离面试的日期(第一个对你很重要的面试时间或一个假定的时间点,如10月20日)还有多长时间,以及你找工作的方向。对于IT行业,编程、英语、算法这些都是必须的。其他的数据库,网络,java、C++知识等也需要复习,但孰重孰轻就要看你找工作的方向了。有的还须要其他方面的知识,如想作数据挖掘的,应该了解数据挖掘的算法,数学建模;想做mobile的最好了解一些mobile的知识;想作测试的要了解各种测试。要了解复习内容的最好方式是找往年这些工作的要求来对比一下,找应聘上的人问一下。 

复习资料 
主要有往年的笔试面试题,复习内容的相关教材,针对笔试面试的书籍。这里我比较推荐两本书,《编程之美》和机械工业出版社出版的《程序员面试攻略》。《编程之美》中的题是许多IT公司的面试题库,弄懂上面的题对你的面试有很大的帮助,看书的时候最好不要直接看答案,现自己想一下,上边的题一般不需要编程实现。《程序员面试攻略》分析了面试中可能的出现的考题,书比较薄,但命中率比较高,这本书中的编程题最好都自己编一编。 

撰写简历 
简历最好一早就准备好了,不要等到快投简历了才准备。简历一般是中英文各一份,每份不要超过两页。准备得时候多看看别人的简历是如何做的,有缺点是什么,把好地方加进来。做好之后让多几个人帮你看看挑挑毛病,不断改进。此外不同的公司、不同的职位简历最好也不一样,如面试的是网络的职位,在简历中将作过的网络的项目或是项目中的网络部分突出一下;面试的是数据挖掘的职位,则突出一下你数据挖掘方面的经历。 

投递简历 
投简历时可以多投一些,但要有重点,对于目标公司的简历则一定要认真填写。因为填写简历非常花时间,所以一些一般的公司可以让比较认真的朋友帮助填写。 

笔试:因为本人笔试不要,也没有什么经验,所以不在这多说,以免误导。 

面试前准备 
面试前除了准备技术方面的知识之外还有许多的事情要做,大概有以下几个方面。 
* 公司文化:去面试之前最好能了解一下面试公司的文化,这可能看上去没有什么用,其实不是这样的,这可让面试官对你有一定的亲切感,在潜意识中接受你。这方面要关注的地方有,公司的价值观、人事,还包括公司中员工的穿着。当一个公司的价值包括honesty,passion,creativity……的时候,在面试的时候就尽量的表现出这些方面,这其实是一个公司对soft skill要求的一部分,也是很重要的一部分。当公司要求员工穿着要比较正式,你去面试的时候也要穿着比较正式,当公司中的员工都穿得很休闲的,你面试的时候得穿着最好还是偏休闲一下。 
* 面试流程:去面试前一定要把面试的流程弄清楚,有几轮面试,每轮的时间多久,从几点到几点,分别是什么类型的面试。这些你可以同过问面试过这家公司的同学或学长,也可以直接问公司的HR。 
* 面试题:去面试前最好能找一些面试过的同学或学长问问面试题,然后弄懂它们,虽然碰到相同的题的可能性很小,但是还是有一定概率的。针对外文面试题,更重要的作用是弄清楚面试体的类型(编程,开放性问题,建模,算法……),包括哪些部分(算法,数据库,网络……),难度(每种类型的难度,大概是用多少时间能做完,会不会特别繁琐……),要注意的地方。 
* 英语:英语是面试前要好好准备的,除了自己的自我介绍之外,最好每个项目经历,实习经历都要能流利的说出来。此外如果可以的话,最好是面试也能用英语说,因为有时候面试到一半的时候才考你的英语,然你用英语回答他的问题,还有可能面试官就是外国人。 
* 简历:面试之前要把简历好好的过一遍。因为面试的时候,面试官会拿着你的简历,也是他手中拿到关于你的唯一的材料,所以问你简历上写的东西可能性非常大。所以在面试前一定要好好看,简历中提到的项目要能流利的用中英文表述清楚,回答他包括设计实现等方面问题和挑战;简历中提到的技术要弄懂,不要把不会的东西放到简历上去。 

面试:自信、不要放弃、问题反馈、多学一些、回答的尽量全面。 

面试后:多和同学交流,不会的问题回来讨论。