ThoughtWorks面试经历,干货满满

成功入职ThoughtWorks的老司机分享的面试经历,干货满满!

作者:和坚
(小编提示:社招和校招的面试流程会略有不同,但是过来人的经验很有借鉴意义,尤其Homework、Pair Program&Technical Interview真的是非常棒的面试指导,值得仔细阅读!)

职业思考


我是在互联网金融大潮最火热的2014年从MA来到了一个互金公司。选择这个公司是一次很偶然的机缘。一个是因为自己想从一直从事的企业级服务到互联网这个海洋里试试水,甚至看看能否赶上浪潮;另外一个原因是这个公司的底层资产在互联网金融里面是比较稳妥地,自己是风控出身,所以至少要选择一个PD(Probility Default)小的公司。

PS:MA是穆迪分析,写这个文章的时候刚好发生了一个大事,就是MA解散了在深圳的ERS研发团队,早上专门让员工从公司去隔壁的酒店开会,开会宣布解除合同,然后大家就不可以再回公司了,当然作为一个金融行业的外企赔偿条款也是可以足够让你好好休息一段时间的,然后各家金融机构,互金公司都和狼一样上来把小伙伴们给开心的撕抢了

2年的时间很快过去了,从一个站在岸边观望者变成了一个在海里打滚的人。我的脚从北京的财经年走到过海南的博鳌论坛,我的手也从技术开发伸到了产品设计,甚至互联网运营。两年里自己如同一个饥渴的孩子,不断的在这个海洋里汲取各种营养,Just Keep Growing,***ing everything else!

由于在风起的时候各种各样的人都参与进来,所以让互金这个词都快成了骗子的代名词了,而且我发现在这轮大潮中真正从事互金工作的公司没有几个吃到肉的(很多吃到的也是VC的肉),但是周边的各种支付公司,身份安全服务,***,甚至羊毛党却已经是满嘴流油了。所以在2017年初潮水退去,露出大地的时候我需要回头看看背后,然后再找几块石头让自己稍微高一点看看远方:

PS:以下内容仅仅我个人对互联网金融的展望

  • 回头看去,很多从事互金的公司本质并没有在金融领域有革新的地方,除非你能够像支付宝,京东金融这样能够对一个企业的销售场景有深度的把控,否则什么大数据风控,什么所谓的人工智能风控都是忽悠VC的。因此,大部分互金的生存空间都是传统金融机构由于风险高或者利润低而不愿意进入的领域。这也就很容易解释很多互金小公司最终不得不赔钱关门,小公司在风控和资金使用效率上对金融机构没有任何优势。

  • 看远方,互金市场已经被这些小公司培育的成熟起来,需要理财的用户也被教育的更加精明,监管开始放开了对传统金融机构的限制。那么前方的路是什么呢?就是这些互金公司辛辛苦苦培养起来的客户,会被冲进来的金融大鳄们都吞噬回去,钱在银行更安全,购买理财也更方便,没有什么支付限额的限制,各个银行的手机银行也很方便了,为什么不选银行呢。你可能会说收益率没有互金高,但是如果你真的了解金融,就会明白一个理财产品如果超过8%的收益率,意味着借款方需要支付接近10%的利息,那么不论是企业还是个人,他肯定是在市场上其他渠道没法拿到低于10%的利息才会选择互金公司融资,你认为这里面的风险有多大。

  • 看头顶,监管的利剑在2017年就要落地了,尤其是资金存管。而资金存管看似是为了投资人的本金安全,其实是让监管能够清楚的知道在互金领域的资金有多少,然后再通过一些政策手段就可以容易的引导资金流向了,比如限制支付通道的流入阀门。另外我也劝一下认为有了资金存管就可以减少资金风险的同学们,别太天真了,平台完全可以利用各种七大姑八大姨的关系去成立各种看起来根正苗红的实体公司(其实这些公司早几年前就注册好了),然后让这些公司成为借款方,这样钱又到谁手里去了呢。

基于上面的思考过程,目前所在的互金公司虽然在资产上依然保持比较稳健的发展,但是必然要面临下一步市场和监管的碾压,上升空间有限,我又一次站到了职业的十字路口上,这时候ThoughtWorks这杆大旗出现在了我的视野里面。


我和ThoughtWorks的缘分


其实我和ThoughtWorks相识是在10年前的2007年,那时候公司找来了两个刚从腾讯做完咨询的ThoughtWorker来给我们这些开发分享敏捷,其中一个是李默,另外一个好像是徐昊。那次分享让我看到了开发的另外一个世界:Agile,也让我知道了ThoughtWorks这个神奇的名字。甚至让我至今还记得那天晚上,两个人很自豪的指着自己胸前印有ThoughtWorks的体恤衫说:“我们是ThoughtWorker!”

那天以后我也一头扎进了敏捷这条小路里面一路自己摸索过来,在自己的工作和项目团队中不断的进行着各种敏捷的实践:站立会议,故事点估计,用户故事卡片,2周的迭代周期,持续集成,还有我认为是agile里面最核心的东西:TDD。现在回头看来,可以肯定的是Agile改变了我的职业生涯,让我更好的体会到了作为一个码农的乐趣,以及精雕细琢一段代码能够带来的满足感

这里面还有一个小插曲,就是我就曾经写邮件给TW,询问有没有加入TW在深圳工作的机会,那时候TW只有北京和西安有office,所以HR回信委婉的拒接了我。


ThoughtWorks的打怪之旅


相信很多人在搜索TW信息的时候都会看到这个2012年的老新闻了《十大入职面试最难的科技公司 谷歌位居第二》,经过查证,这个新闻的原始信息在这里《The 25 Hardest Companies For Job Interviews》。所以我从一开始就做好了心理准备这是一场硬仗,好在我自己本身就是一个喜欢挑战的人,这个新闻更加刺激了的兴奋点。用一个朋友的话说,就是喜欢“受虐”。

结合我整个面试的经历其实总体感觉是很nice的,因此我想分享的是,TW的面试确实和很多技术公司不一样,也确实有些难度,但是如果你也是喜欢挑战自我,想成为一个追求工作美感的人,那就不要被这个新闻标题吓到了,把面试当作玩游戏打大boss,绝对是一次很有意思的经历


HR面试:懂技术的HR


在猎头告诉我HR会跟我先进行电话沟通的时候,原本我以为就是例行公事简单聊聊,做个自我介绍什么的。但是没有想到和HR聊了1个多小时(我觉得主要因为HRMM的声音很好听 ^ _ ^ ),其中最让我吃惊的是TW的HR不是简单的把那些技术名词当作所谓的搜索简历的标签,而是真的对这些技术有过一定了解的。后来听说TW的HR入职的前几个月要求要泡各个技术社区和论坛去熟悉这些知识的。甚至有的HR还能自己写点脚本来筛选简历什么的。所以在这个一个多小时的聊天中,让我感受到了一个印象:技术深入公司基因。


Business Interview:


由于面试的时间节点刚好是春节前,而且这段时间家中有一个很重要的事情要花费大量的精力去处理,所以我要求TW把正式的面试安排在春节后。当然这里面除了上面的原因以外还有就是我的做事习惯是不打无准备的仗,所以我也想用这段时间好好做做功课。HR同意了我的请求,但是为了提高面试效率,所以先给我安排了一次Business Interview,先不面技术。所以我第一次去了TW的深圳办公室,标准的外企开放式办公风格,而且办公室都是会议桌,每个会议桌还有一个大屏幕,这样就可以随时进行各种问题的讨论。这次的面试从计划的2个小时聊了整整一个下午,从基本的业务抽象聊到了流动性风险管理和巴塞尔,让我很惊叹TW对业务的理解也很深入。面试官是一个在TW多年的人,中间也出去创业过,然后又回到了TW。他给我印象最深的一句话是:TW是一个聪明人聚集的地方,所以聪明人在一起工作会很简单。


Homework:做个手艺人


TW的技术面试是分两部分组成的:

  • Homework:就是给你一个问题然后你自己在家编码实现,通常会给出3天左右的时间期限。有些人会说这不是很容易作弊吗,你怎么知道这个代码是自己在家写的而不是找人捉刀,别急,下一关还有更难的等着你呢

  • Pair Program:提交了homework以后会和TW的工程师一起再聊聊这个作业,先看看代码有没有什么可以改进的地方,然后再给出一些变更的需求,在现场一起实现这个新增的需求的代码

春节长假刚结束,HRMM就早早的开始和我联系让我开始计数面试了。由于春节期间基本天天都在备战,所以也到了见见效果的时候了。邮件给了我3个题目,三选一,说是从第二天开始算起三天后交作业,但是拿到作业的当天晚上就写代码进入了Flow状态,功能其实很快实现完成了,更多的时间都是在重构和增强程序的完备性。从写嗨的状态中一看时间发现都2点多了,赶紧上床睡觉,第二天早上起来继续,这时的感觉就像是一个雕刻工在一点点精雕细琢了,中午终于觉得代码已经可以达到自己满意的状态了,反复看了几遍也找不到可以下刀的地方了,于是提交作业。作为公平起见,我不能给出homework是什么样子的,但是可以给出几个代码层面的分享:

  • 最好是能够测试驱动开发,如果做不到也要保证有测试覆盖,这是非常重要的,因为没有测试后面都不敢改代码。当然如果你平时已经有了TDD的实践,那么一定会体会到测试驱动是一种对开发思维模式的改变

  • 代码的设计一定要合理,不能完全没有设计堆积在一块,也不能为了表现自己熟悉设计模式把23个设计模式都用上了。根据需求恰到好处的进行面向对象的高内聚,低耦合的设计。

  • 优美的代码,这个优美的定义有些大,但是我个人的理解就是能够做到让别人看到你的代码的时候不要在心里骂娘。这里需要,有意义的命名,合适的方法长度,一个方法不要太深的逻辑层次等等。如果你看过《Clean Code》这本书,那么你就知道我在说什么了


Pair Program & Technical Interview:沟通让代码成为文章


提交作业两天后,HRMM通知我再次去Office一起Pair Program。其实这个过程比homework更重要,一起写代码可以观察到很多工作的细节问题:是否熟悉快捷键,沟通问题是不是条理清晰,思考过程是不是逻辑缜密等等方面。我在开始的时候还是紧张了,所以面试官对我的一个负面评价是快捷键不够熟练。想当年我为了练习快捷键是专门把鼠标都拔了来强制练习的。不过这几年由于大部分工作的内容是管理和写一些脚本程序,所以对有些快捷键却是是不够熟悉。不过最后和面试官的沟通得知,我的homework是他见过的最好的homework之一,所以还是蛮开心的。这一关说实话我觉得主要都是平时工作的习惯和功底,可能也是大家说TW面试难的一个原因,因为如果你平时仅仅是写完了能够实现需求的代码,而没有停下来思考过这样写是否合理,有没有更好的办法那么确实没发达到TW的基本要求。


Logic test:白做了几十道智力面试题


Pair Program完成了以后紧接着就是Logic Test,之前为了准备这一关,我搜索了不少所谓程序员的逻辑测试题,什么苏丹的女儿,怎么分黄金,飞机如何绕地球一圈等等,甚至还看了一本专么讲这类题的书。但是拿到题目的一刻,发现自己准备错方向了。还是为了公平考虑,我不能透漏题目,但是我觉的只要是个思维清晰的码农,能够想明白程序是怎么运行的,那么这关就不实什么问题。不过在做题的时候我心里倒是很佩服出题人是怎么相处这样的题的,而且这种题可以把难度做的非常高来考察智商。


Culture interview:更深入的了解


这一关主要是让***和公司能够有更深入的相互了解,面试官给我介绍了公司创始人Roy的故事,还有其他一些同事在追求******的故事。这里我就不剧透细节了,这一关你需要自己仔细思考一下加入TW的目的。如果你期望能够像互联网公司那样一夜暴富那这里绝对不是一个好选择,你既然可以通过这里的面试,那么去BAT也绝对么有什么难度。而且到这关为止,有三个面试官都给我反复强调TW不能给员工很多钱但是能给你一个体面的工资,因为Roy对公司有绝对的控制权,他要把利润用来追求******。

我相信有很多人在了解ThoughtWorks时候都会看到一个评价是“高级的外包公司”,我对这个问题的看法是恰好反映了一个人的价值观是否适合这里。如果你认为工作其实就是给别的公司卖出的就是完成的程序,那么就是外包;但是如果你认为你给别的公司卖的是一个服务(仔细想想,互联网公司不也是在卖服务吗?),是能够帮助别人带来额外价值甚至传递自己价值观的,那么我们是一个顾问服务者,甚至我们在一步步的推进行业的软件工程这个技能的不断精进。


通关了


最后面试两天后收到了HRMM电话,一半电话通知的都是好消息,果然通知我通过面试了,然后就是具体的薪资,福利这些细节。坦诚的说TW给出的确实没有互联网公司高,但是也绝对可以做到“体面”二字了,不过薪资这个问题已经不是我这次职业发展的首要问题了。我期望的工作就是一个我通过工作本身就能够收获到快乐和满足,从我了解到的有限信息来看,TW貌似就是一家这样的公司,至于到底真的是不是我想象中的样子,I have skin in the game!


额外的惊喜:骚窝的书单


在入职前意外的接到了TW的HRBP的电话,原来是Thoughtworks害怕新入职员工在入职以后可能会不适应骚窝(第一次知道TW有个形象的名字是骚窝 ^ - ^ )。这个书单里面有几本已经看过了,剩下没看的立刻亚马逊下单搞定。所以在这里也分享给大家,这些书算是对不同角色的经典之作了。

#Thoughtworks##面经##实习#
全部评论
干货在哪啊
6 回复
分享
发布于 2017-08-22 12:49
请问已经提交网申的是不是没办法内推了呀。。。。。
点赞 回复
分享
发布于 2017-08-22 15:32
联想
校招火热招聘中
官网直投
【ThoughtWorks2018校园招聘火热开启】 ThoughtWorks成立于1993年,总部位于美国芝加哥,目前在15个国家拥有42间办公室4500名员工。是一家全球软件设计与定制领袖企业,拥有一群充满激情的技术人。以引导软件创新、设计和交付的***为己任,助推全球社会变革。     招聘岗位:软件开发工程师 ThoughtWorks需要你: 用高质量的代码帮助全球顶尖客户攻克业务瓶颈。构建高可用和高灵活的系统框架,敏捷支撑客户业务的多变与指数级增长。践行自动化测试与持续集成,探索前沿的自动化部署方案,一起实现业界一流的交付体验。用匠心精神攻难克艰,突围技术难题。我们的客户包括:中国银行、REA Group、 Vodafone、 MYER、顺丰速递……你在用技术,与他们一起改变世界。   ThoughtWorks期望你: 1. 至少掌握一门语言(如C/C++, Java, C#,  Javascript, Ruby等) 2. 学习能力强,动手能力强,主动学习,有好奇心,不耻下问,愿意探求技术背后的原理 3. 善于沟通,能够成为一名积极,乐于分享的团队成员 4. 做过项目、参加过比赛、自己做过小应用者优先 5. 了解WEB应用开发,及对应的WEB开发框架以及常用第三方类库者优先;掌握Git等SCM工具,拥有并使用github账户者优先 6. 英文(为加分项)     武汉、西安、成都、北京同步开启,联合面试。   岗位详情&简历投递请戳【ThoughtWorks校园招聘官网】http://join.thoughtworks.cn (请使用电脑登录进行网申)   更多信息请: 1.关注微信公众号【ThoughtWorks校园招聘】 2.武汉校招QQ群:640388734 内推通道也开启了: 内推岗位:软件开发工程师 内***权:免简历筛选&逻辑笔试,提前拿Offer! 内推通道:https://jinshuju.net/f/4V7xZ2,推荐人可写“安琪”
点赞 回复
分享
发布于 2017-08-22 12:03
虽然没怎么看懂,但是感觉很厉害的样子
点赞 回复
分享
发布于 2017-08-22 12:05
请问除了北京,成都,西安和武汉之外的城市如果投递的话,能远程面试吗
点赞 回复
分享
发布于 2017-08-22 13:35
请问非计的面试该如何去准备呀😭
点赞 回复
分享
发布于 2019-12-31 17:46

相关推荐

19 119 评论
分享
牛客网
牛客企业服务