我的ThoughtWorks失败之旅

笔试分为英语测试和编程逻辑测试
       英语测试12分钟50道题,题目内容为英语词汇,简单的数字和逻辑题。答题不够快,只答完一半都不到。
       编程逻辑测试是给出两个基于流程图的编程范例,后面的题目跟范例运用了相同的逻辑,必须完全理解范例,才能做对后面的题,我第二个范例对其中修改指令的理解有偏差,得出的答案跟范例给出的答案不一致,影响到后面有些题做得不对。

两天时间完成一个作业叫Mars Rover。这道题TW往年已经考过了,所以 上会查到一些代码,他们说是要注意面向对象和设计模式的使用,其实这跟以前的面试流程有关,以前会有一个pair programming,编程时基于自己提交的作业实现新的功能,如果你没有注意面向对象和设计模式的使用,后面增加新的功能难度会比较大。而这次西安的面试流程没有pair programming,应该是只要提交了作业代码就会进入下一轮HR面。后面小组面试会让用两分钟演讲讲一下自己的这个作业。

       我花了一些心思做PPT,用了一个类图贯穿整个作业的讲解,图形化和少量演讲提示性文字是做好PPT的要领嘛。整个过程是用英文演讲的,有点冒险,但是也是想为自己加分从众多面试者中脱颖而出。现场得知英语演讲的HR也会用英文提问,回答也当然需要用英文了,汗啊,自己也没准备中文演讲,只能硬着头皮讲了。讲完之后,HR提了一个;利用我所用的命令模式增加一个功能让探测器从左上角直接运动到右上角,我回答在探测器类中增加一个方法直接设置探测器位置坐标,然后人家就问这是不是与开闭原则矛盾,我回答我不这么认为。其实的确是违反了对修改封闭的原则,下来之后我就想到了正确的方法应该是利用已有的左转右转和前进来实现这个功能,这样就做到了对修改封闭。所以我这个问题回答得不好,HR可能会认为我对开闭原则理解不深。
       接下来是方案讨论,题目是三个月时间设计一个连锁零售店的支付系统,现有一个存在问题的源代码,再加上其他一些条件,讨论时修改代码还是重写代码来实现,并给出解决方案。大家五分钟阅读题目并向HR提问,有同学反应很快,在这五分钟了提了好几个问题,关于项目提供的人员配置,和以前有无此类项目经验的问题,相对来说我反应慢多了,拿到题就想着如何具体实现的问题,只提了一个关于系统接口的问题。讨论过程中,我的发言也不多,都是想好一点说一点,也试图向着TW所提倡的敏捷开发上说,极限编程的一个核心就是TDD测试驱动开发,题目中刚好有一个Testcase的条件,我就强调测试的重要性,对于一个支付系统安全性是最重要的要求,这就需要通过测试来发现bug保障系统的安全性。另外根据其他同学提出的迭代开发方法,我提出需求分析时应按照重要性排序,按照这个次序进行迭代。总之,我的发言不多,但也构成了最终方案中四条中的一条半。最后五分钟是推一个同学出来总结,我们组有人主动要做总结,大家也就没人去争。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年9月25日
下一篇 2012年9月25日

相关推荐