一次失败的Thoughtworks面试经历

一名开发者分享了他在Thoughtworks的面试经历,从初次接触、笔试、homework到结对编程及manager面谈,最终未获通过。面试者反思了在homework质量和结对编程环节的表现,为后续求职者提供宝贵经验。

分享一次我最近的Thoughtworks面试失败经历,也算是对想要进入这家公司的同行的一点提示。

 

【3月27号】接到他们hr打过来的电话,说搜到我的简历,问我有没有兴趣去面试一次他们的android开发职位,一听是Thoughtworks,欣然接受了。于是约好时间,于【3月30号】下午去了他们在锦业一路的office。

 

hr很友好,告诉我首先需要做一套试题,做的时候不能使用手机。做题之前签了一个保密协议,大概意思是不能透露面试内容。所以具体内容我就省略不说了,笔试的目的就是考察你的逻辑思维能力。

后来我与同事交流后得知,类似的测试很多欧美的外企都有做,而且试题的类型非常相似。

 

做完笔试题以后,进入了第二轮面试。两位招聘部门的RD问了一些android方面的问题,然后让我介绍了一些做过的项目。这一轮和其他公司的面试没什么大的区别。

 

第二轮结束后,hr通知我当天的面试就结束了,回去以后,他会给我mail一个homework,需要我编写一个小程序完成他们提出的一个需求,然后把代码在三天以后mail给他们。

 

回去以后查看邮箱,果然看到hr发过来的mail,里面列出了三个项目,选做一个即可。语言也是自选的。

我花了一早上的时间,写完了代码和单元测试代码,于【4月1号】打包发了过去。(后来我仔细想了想,这里也许是我一个面试失败的因素。我只用了半天时间就把代码提交了,没有再仔细想想代码的重构。这直接导致我的代码在OOP方面做得不是太好。)

 

后来就是漫长的等待了,直到【4月10号】才又接到hr打来的电话,通知我继续下一轮的面试。与hr约好第二天【4月11号】下午过去面试。

第二次去他们的office,hr还是一样热情,同时还不忘提醒我平复一下心情,准备接下来的面试环节。

这一轮的面试比较有意思,Thoughtworks的两位员工一起对我进行上机面试, 其中一位和我一起做结对编程,另外一位应该是观察员的角色。一开始,首先让我介绍了一下我做homework的思路,然后让我自己提出一些homework中的设计缺点,并重构。

然后他们给我一份新的文档,是对homework的需求扩展。首先要求我分析需求,并把需求分解然后列在纸上。在这个过程中,面试官不断地和我交流,询问我的想法,提出我的一些需求分析上的错误。需求分析完以后,就开始实际的编码了。需要特别指出的是,

他们使用TDD的方法进行开发的,以前我也没做过,只是看过一些TDD的书,所以实际上手以后,开发的步骤比较细,这也导致后来时间到了以后,没有完成所有的需求。

 

结对编程结束以后,就是manager的面谈了。 让我具体介绍了一个做过的项目,然后就是他们公司的介绍之类的一大堆。

到此全部面试就结束了,hr告诉我两天之内会有结果。

 

果然在【4月13号】收到了拒信。也没说是什么理由。 我个人觉得是结对编程的环节发挥不好造成的。( 在最后一轮manager面试的时候,那位经理说我在结对编程的时候表现出来对自己写的homework的代码不熟悉,有可能是这个原因吧。)

 

后来总结一下,主要的原因:

1. homework做的不够好,没有认真重构代码。

2. 结对编程现场发挥不好,面试之前没有review自己写过的代码。

 

以上是我这次thoughtworks面试的经历,希望对这家公司有想法的同行能从中吸收经验,最后拿到offer。:)

 

转载于:https://www.cnblogs.com/Song-2/archive/2012/04/18/2455188.html

Thoughtworks公司面试题——MARS ROVERS问题火星探测器 C# 实现 VS2010工程,带界面展示! 一小队机器人探测器将由NASA送上火星高原,探测器将在这个奇特的矩形高原上行驶。 用它们携带的照相机将周围的全景地势图发回到地球。每个探测器的方向和位置将由一个x,y系坐标图和一个表示地理方向的字母表示出来。为了方便导航,平原将被划分为网格状。位置坐标示例:0,0,N,表示探测器在坐标图的左下角,且面朝北方。为控制探测器,NASA会传送一串简单的字母。可能传送的字母为: 'L ', 'R '和 'M '。 'L ',和 'R '分别表示使探测器向左、向右旋转90度,但不离开他所在地点。 'M ' 表示向前开一个网格的距离,且保持方向不变。假设以广场(高原)的直北方向为y轴的指向。 输入:首先输入的line是坐标图的右上方,假定左下方顶点的坐标为0,0。剩下的要输入的是被分布好的探测器的信息。每个探测器需要输入wo lines。第一条line 提供探测器的位置,第二条是关于这个探测器怎样行高原探测的一系列说明。位置是由两个整数和一个区分方向的字母组成,对应了探测器的(x,y)坐标和方向。每个探测器的移动将按序完成,即后一个探测器不能在前一个探测器完成移动之前开始移动。 输出:每个探测器的输出应该为它行到的最终位置坐标和方向。输入和输出 测试如下: 期待的输入: 5 5 1 2 N LMLMLMLMM 3 3 E MMRMMRMRRM 期待的输出 1 3 N 5 1 E
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值