thoughtworks面试流程

明天就要去报到了。今天仍然很忙,校对那本挨千刀(Google拼音居然没有这个词,山东方言,自己领会吧)的POSA。翻译这本书害死我了,但是同时也帮了我大忙。

一个朋友说他的朋友今天会给我打电话,问问ThoughtWorks面试的事情。电话还没来,我先整理一下思路吧——一直就是这样的人,拿着鸡毛当令箭,人家还没当回事儿呢,自己先忙起来了。

ThoughtWorks的面试特点用两个字概括就是——敏捷。这个敏捷不光是快,而是每个阶段都定义的非常清楚,每个阶段的输出也非常清楚,同时对每个阶段都精益求精,尽量的减少浪费。当然,这是我的感受,不同的人感受可能是完全不同的。以后,我会详细地回忆面试的过程,现在只是简单地整理一下。

总体印象

ThoughtWorks的面试看上去很复杂,但是你去看她的每个步骤,其实都很简单、很正统。没有“井盖为什么是圆的”这样的开放性题目;没有“强盗分金子”这样的智力题目;没有“新买的袜子上为什么有两个洞”这样的脑筋急转弯;甚至连“从单链表中查找环”这样的算法题目都没有。有的只是“你为什么要离开上家公司”、“你为什么要加入ThoughtWorks”、“你的优缺点是什么”、“你的项目经历”等,这样每个面经里面都会赫然在列的题目。如果你真的喜欢ThoughtWorks,你会觉得这个过程非常的舒服:感觉不到高强度的挑战,没有刨根到底的技术追问,当然也没有漫长的等待——包括在现场的等待和非现场的等待;你能感觉到对你的尊重,不论是一杯茶、一本书,还是请求对面试过程的反馈,你跟面试人员之间是partner的关系——面试人员甚至更愿意和坐在一边而不是对面。

八轮测试

下面只是我面试的经历,不同的人也许会不一样,如果错了千万不要说我是故意误导的:)尽管我很多地方用了第二人称,只是为了叙述方便,其实都是“我”。

第一轮是电话面试。电话面试一开始是英语的,一般来说这个时间是事先约好的,唯一要注意的是——可能上来就是英语,而不是聊两句之后再开始切换。电话面试完了几分钟就会告诉你结果,如果通过了就会跟你商量什么时候可以去参加笔试。插一句,如果建议你的时间不合适尽管提出来,否则把自己搞得急匆匆的可没啥好处。

第二轮就是笔试。笔试的题目我没法透露,但是是非常基础的,关键是要仔细审题。ThoughtWorks的笔试有个特点——阅读题目要求和样题的时间是没有限制的,即这个时间不计算在考试时间之内,你可以用任意长的时间。题目是英文的,多少对中国程序员有点不利,但是没有办法,我觉得应该把题目的要求先公开出来,甚至把题目要求部分翻译成中文的。做完了第一场笔试之后还有一个压力测试,就是在很短的时间之内给你很多题目,自己看着做。等你这个时间到了,HR mm就会把上一场的结果告诉你了(效率之高出乎我的意料)。如果通过了接下来就是一个homework了。

第三轮homework。有三道题目,难度都不大,你只要任选其一就可以了,基本上学过编程的人都可以顺利地完成。但是话又说回来了,要做好却不是一件简单的事情。主要是要在代码中体现你对OO的理解和掌握程度。具体的要求呢,网上有一个ThoughtWorks的同事写的指南。根本也没有特别的地方,就是代码要容易懂、容易看、容易维护、容易扩展。通常是要求三天内完成,不过你可以自己申请延长,我是要求跨一个周末。提交完了,这次等的时间或许会稍长一些——毕竟要安排人review你的代码。我的等了大概两天吧。如果通过了,接下来就会通知你到office来面对面的交流了。

第四轮是结对编程。(插播一顿午饭)如果你对结对编程一点概念也没有,可以先去Google上搜一下下。结对编程是基于你自己的代码,实现一个新的特性,这也是我为啥说你的代码要扩展性好。新的特性并不复杂,但是时间所限也许做不完。关键是表现出你在这方面的能力和兴趣。

接下来的几轮,我不知道是不是只有上一轮通过了才会有下一轮。

第五轮是技术面试(应该是两个工程师面的)。主要是讲自己的项目经历。挑一个好玩的、最有心得的讲就行了,这跟别的地方的面试没有太多差别。当然,如果你做出过什么特殊的贡献,一定要说出来,别埋没了自己。

第六轮是两个PM面试。跟上一轮的侧重点有所不同,更侧重项目管理方面。像我这样没有做过项目管理的,只能哈啦一些自己的观察和帮助TL做工作量评估、分工等工作的经历了。

第七轮是HR Manager的面试。这一轮是心理素质的严峻考验。问题还是那些常见的“有啥优缺点”之类的问题,但是会从不同的角度反复地提问。等她问我还有什么问题的时候,我已经满脑子空白了。

第八轮是郭晓总经理的面试。当时,我心里就一个感觉——可算见到你了!他的问题压力并不大,而且前面基本上都问过了。只是为了节省时间跟他说的时候尽量少涉及细节。

跟郭晓谈完之后,HR dd过来说你可以回去了,明天给你消息。于是,明天就有消息了。

你应该是一个什么样的人

ThoughtWorks不是要最好的人,而是要最合适的人。很多公司都这样说,有的是真的这样想的,有的则只是为了安全起见了。下面这些条件,都是我自己的一些看法,我希望没有人将其当作技巧来看待。

第一位的就是要诚实。面试本身是一个双向选择的过程。你应当尽量表现出真实的自己,否则当你骗过面试人员,进入公司只会是痛苦的开始。

第二要对ThoughtWorks所从事的事业有浓厚的兴趣和热情。

第三要对OO概念和计算机编程的基础知识有比较深刻的理解。

第四要对新技术有一定的敏感。

如果说技巧,也有一个就是最好要有——亮点。亮点不是刻意制造就能制造出来的,但是我希望通过提醒你可以考虑一下自己身上有哪些亮点。在每一轮都可能有自己突出的地方,也许是很大的加分。

你可能感兴趣的:(面试,面试)