`
do77
  • 浏览: 2747 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Join ThoughtWorks

阅读更多
趁着还热乎,把整个应聘的经历记录下来

* 为什么离开S
* 为什么选择ThoughtWorks
* 准备
* 电话面试 1
* 家庭作业
* 电话面试 2
* 现场笔试+面试
* 电话面试 3
* offer

# 为什么离开S

暂略

# 为什么选择ThoughtWorks

暂略

# 准备

@老赵 在2012年1月7号在微博上发了一篇“求助:一份用于学习单元测试的案例需求”,激起了我和高手交流的欲望,写了份代码。在这个过程中,我结识了在ThoughtWorks(以下简称TW)工作的tj,接触到了TW的圈子,关注了TW的HR朱mm。

朱mm在1月18号发了一篇微博,透露TW开始在上海招聘,我立刻跟她确认了这个消息。之后通过各种方式了解TW的信息。2月2号和朱mm电话咨询过一次,她非常耐心的回答我各种问题,我随即开始准备简历。

之前的简历一直是Microsoft Word格式,这次我决定换种格式。我近来主张使用文本格式的文档来替代二进制的,这样的好处是不需要依赖额外的编辑器和商业软件,也方便版本控制工具去管理。知乎上Linux 用戶是否大多都使用 OpenOffice.org 作為辦公軟件?中pansz的答案让我找到了共鸣。最后我选择了HTML,使用了可以让我专注于内容的Markdown语言以及hResume格式。简历的内容也完全重新写了一遍,更加突出了技术能力和兴趣。

2月11号完成简历,tj帮我推荐。

# 电话面试 1

2月13号周一朱mm电话跟我预约了14号的第一次电话面试。这次面试主要是了解我的基本情况,朱mm也讲述了TW的要求。TW和一般IT公司的不同,参见年轻的程序员,为什么你应该从事专业服务以及什么是专业服务,以及为什么它是好的职业起点。最后给我发了家庭作业。

几乎每轮面试不断被问到这个问题:为什么离开上一家公司以及为什么想加入TW,这轮也不例外。

# 家庭作业

家庭作业是根据需求写代码,包括测试用例,题目共有3个,选择其中一个完成即可。题目都很适合TDD,于是我也TDD完成了,17号凌晨完成并交付。

# 电话面试 2

21号预约22号第二次电话技术面试。面试官有两个,其中一个是tech lead(后来才知道是zxq)。围绕简历聊了很多,从项目经验到兴趣,包括Hibernate、ActiveMQ、RoR、Spring Framework、iOS等一堆。面试官的技术基础很扎实,知识面也很广泛。有些问题因为没有遇到过或者仔细研究,所以没有答上,这一轮面试被我认为表现最差的一轮,还好我还算广泛的兴趣给面试官留下了些印象。耗时1小时。

# 现场笔试+面试

24号预约现场面试,由于我的时间关系,这次面试被安排在3月2号。

面试官是在客户现场做项目,所以这次面试也在客户的办公室。下午4点开始,先是一个半小时的逻辑题目,全英文对我来说有些难度,在这里感谢一下有道词典。11道题目大致分成3类,第一类题目开始我做起来有些困难,有2道没出来,有些紧张,就做后面两类了。没想到后面两类比较简单,我速度做完了,又回过头做前面的,终于在结束之前都做出来了。后来据说错了1道。然后是半个小时的选择题,做了一半蒙了一半,据说这个题目的成绩对于开发来说没什么关系。

笔试完成后,又等了一会,在他们下班之后面试官才有时间面试。先是波波简单聊了一下技术,然后是波波和大大结对面试。结对面试的主要内容是针对家庭作业进行重构和新需求的实现。让我印象最深的是,大大对于代码的要求很高,对我的代码提出了很多重构的建议,让我很有感触(后来发现他对封装有很深刻的理解)。后来实现新的需求,我只能说中规中矩,得益于我的设计,新的需求实现起来很简单,但是重构的时候没能消除代码臭味,同时大大的思路还是非常清晰,提出了非常好的重构建议,这让我很佩服。新需求没有全部完成,貌似时间到了。

接下来是辉哥和marketing mm yq的面试。也是随便聊了一下,我的问题比较多,他们都耐心一一解答。这个时候我有些体力不支,肚子很饿,眼睛很干涩,一度睁不开。我猜测安排在这个时间面试可能也是一种体力和毅力的测试。

相比上一轮,现场面试让我感觉好了很多。面试结束已经9点多了,于是参加了team building,就是蹭了一顿饭 ^_^ 。

# 电话面试 3

7号朱mm电话过来询问我在经历了几轮面试,对TW有了更多了解后,是否还继续想加入TW。这点让我觉得非常贴心:TW不仅会站在他们的角度看你是否适合他们,同时也会站在你的角度考虑他们是否适合你。后面一点关乎于你的个人发展,对你本身非常重要,但这点恰恰是其他公司很少考虑的。当然这也可能是由于TW的与众不同,也更加要求员工的稳定。最后朱mm说还有一轮面试,要我等通知。

12号通知来了,次日13号第三轮电话面试。据说面试官zs刚从国外回来。本轮感觉像是综合测试,测试了我在实际的工作方式,还有一些常见的面试问题,比如最有成就感的事情,最欣赏和最不欣赏的人等等。耗时40分钟。

# offer

14号朱mm终于说要给我发offer了,15号offer下来后经过一番讨价还价,最终16号offer到手。

这个长达一个多月的应聘终于以收到offer结束了。这里特别感谢tj不厌其烦的回答了我无数的问题。感谢朱mm跟我耐心的沟通,感谢各位面试官的厚爱。
分享到:
评论

相关推荐

    ThoughtWorks笔试代码

    ThoughtWorks是一家全球知名的软件开发公司,以其卓越的技术实践、敏捷开发方法和持续创新著称。在ThoughtWorks的笔试环节,应聘者通常会遇到编程题目,这些题目旨在测试候选人的技术能力、逻辑思维以及解决问题的...

    inner join、 left join 、right join、 outer join之间的区别

    ### inner join、left join、right join、outer join之间的区别 在数据库操作中,连接(Join)是一种非常重要的操作,用于组合两个或多个表中的数据。根据连接的方式不同,可以分为几种类型:`INNER JOIN`、`LEFT ...

    SQL语句left join/right join/inner join 的用法比较

    在SQL查询中,JOIN操作是连接两个或多个表的关键部分,用于从这些表中提取相关数据。本篇文章将深入探讨LEFT JOIN、RIGHT JOIN以及INNER JOIN的用法,并通过实例进行对比,帮助理解它们之间的差异。 1. LEFT JOIN...

    19、Join操作map side join 和 reduce side join

    本文主要探讨了两种 MapReduce 中的 Join 实现:Map Side Join 和 Reduce Side Join。 一、Join 的概念 Join 操作在数据库中是非常常见的,它用于将来自两个或更多表的数据根据某些共享字段(即键)关联起来。在 ...

    SQL中的left outer join,inner join,right outer join用法详解

    6. 交叉连接(Cross Join):生成笛卡尔积――它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配。 在 SQL 中,可以使用 FROM 子句指定连接类型,例如: * CROSS ...

    关于sql的left join,right join,inner join,outerjoin

    本篇文章将深入探讨四种基本的JOIN类型:LEFT JOIN(左连接)、RIGHT JOIN(右连接)、INNER JOIN(内连接)以及OUTER JOIN(外连接)。我们将详细解释这些概念,它们的工作原理以及在实际数据库操作中的应用。 1. ...

    hadoop Join代码(map join 和reduce join)

    Hive和Pig都支持多种JOIN类型,如LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等,并且能够自动优化JOIN策略。 Hive示例: ```sql SELECT a.*, b.* FROM table_a JOIN table_b ON (a.join_field = b.join_field); `...

    sql join( inner join, outer join) 分析

    在SQL(结构化查询语言)中,JOIN操作是用于合并两个或多个表的数据,以便根据它们之间的关联性创建新的结果集。JOIN关键字是SQL查询中的关键部分,它允许我们在不同的表之间建立联系,以获取更丰富的信息。在这个...

    join on 语句及扩展

    在SQL查询中,JOIN操作是用于合并两个或更多表中的数据的关键部分,它允许你在不同表之间建立联系,以便从多个源获取所需的信息。这里我们将深入探讨几种JOIN类型及其使用,以及ON和WHERE子句的区别。 1. INNER ...

    joinmap4.0软件

    《JoinMap 4.0:构建遗传连锁图的利器》 在生物科学研究中,尤其是在遗传学领域,理解基因如何在不同个体间传递以及其在群体中的分布情况是至关重要的。JoinMap 4.0,这款强大的软件工具,专门用于构建遗传连锁图,...

    【MapReduce篇06】MapReduce之MapJoin和ReduceJoin1

    MapReduce之MapJoin和ReduceJoin MapReduce是一种分布式计算模型,广泛应用于大数据处理和分析领域。其中,Join操作是 MapReduce 中的一种基本操作,用于连接来自不同数据源的数据。今天,我们将讲解 MapReduce 之 ...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    Mysql 之 inner join、left join、right join 详解 Mysql 中的连接查询是指从多个表中检索数据,并将它们组合成一个结果集。inner join、left join 和 right join 是 Mysql 中三种最常用的连接查询方式。 inner ...

    mysql Join使用以及优化

    MySQL数据库中Join操作的使用及优化是一项重要的技能,它涉及到数据库中表与表之间的关联查询。在执行Join操作时,数据库管理系统需要按照某种算法将多个表中的数据记录联合起来,并返回查询结果。Join操作的主要...

    Linq to datable(Left join right join full join)实例

    标题 "Linq to datable(Left join right join full join)实例" 涉及到的是在.NET框架中,使用LINQ(Language Integrated Query)查询语言处理DataTable对象时,执行不同类型的连接操作,包括左连接(Left Join)、右...

    left join right join inner join 区别和联系

    左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)是三种最基本的连接类型。在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表...

    join map4作图软件

    《Join Map 4:基因型数据分析与QTL定位的强大工具》 Join Map 4是一款专为生命科学领域,特别是遗传学研究者设计的软件工具,它主要用于处理群体基因型数据,进行遗传图谱的构建和QTL(Quantitative Trait Loci,...

    MySQL JOIN 语法说明与 INNER JOIN 语法用法实例.docx

    本文档详细介绍了 MySQL 中的 JOIN 语法,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等,并提供了实际的实例来说明 JOIN 的用法。 首先,MySQL 的 JOIN 语法用于根据两个或多个表中的字段之间的关系,从...

    Mycat跨分片Join指南

    Mycat 跨分片 Join 指南 Mycat 跨分片 Join 指南是 Mycat 中的一种join 操作方式,主要实现了跨分片的数据join 操作,支持多种实现方式。下面是对Mycat 跨分片 Join 的详细解释。 1. 全局表 在 Mycat 中,全局表...

    oracle-join用法

    在Oracle SQL中,Join主要分为几个类型,包括INNER JOIN、LEFT JOIN (LEFT OUTER JOIN)、RIGHT JOIN (RIGHT OUTER JOIN)以及FULL JOIN (FULL OUTER JOIN)。这些类型在Java编程中同样可以使用,通过SQL查询语句来实现...

Global site tag (gtag.js) - Google Analytics