ThoughtWorks(思特沃克)面试经历

     今天猎头打电话说给我推荐thoughworks的大数据岗位。我虽然一心只想找算法相关的工作,但是听说这家公司代码水平高,就打算去看看,于是就同意了。周五hr给我发了三道作用题,让我周末提交。由于工作比较忙,只有周末晚上有空做。看到题全是英文的,看了几次都没有看懂。本想放弃的,但是又想到之前猎头和我沟通时候,发了相关题给我看,还专门问我会不会做,我当时大概看了一下,就说应该可以吧。觉得就这么放弃,那不是自己打自己脸。然后又看几次题,并且在网上搜索相关内容,下载了一些别人实现了但是没有过的代码。最后结合代码终于把题看懂,看懂之后其实觉得还是很简单的。

     我做的是第一题火车,其实就是求路径长度、按经过站点数或路径长度求可通联路径,求最短路径。大概看懂下载后的代码,由于没有多少时间就在下载后的代码上改进一些,然后就提交了。心想交了就好,至少猎头问我我还是做完了,没有水她了。然后过了一周,猎头给我发消息说我过了,心想简直是人品爆表了。然后让我选个时间下周进行面试。面试用的zoom软件,第一次采用的外放,结果面试说噪音大,然后我又切到听筒,就没有办法看到面试管说话了。所以最好带个耳机比较好。面试官问了一些我项目中的问题,然后问了一些大数据问题,大数据组件、spark提交一个job的工作流程。整体来讲都是一些比较基础的,如果没有回答上,面试官也会引导你。当然前提是你自己还是要懂,主要他们讲的比较专业,我虽然很多也知道,但是没有他们那么专业,问我之后有时没有回答上,面试官会很有耐心的解释和引导。然后是他们的主任嘛还是那个面试,没有记清楚。第一个问题“你做过最有Challenge的事情。”,然后我没有听懂,他解释说:“你做过最有挑战的时候”。然后又问:“你帮助过你的同事嘛”,“你最最近在看什么书”等。

     过了三天说我面试过了,要到公司进行结对编程,自己带电脑,让我准备一下。心想准备一下,什么水平就是什么水平嘛,准备一下过了,那实习发现不行,不还是一样的。结果到了面试前一天,猎头说你最好多准备一下,如果面试知道你是改的别人代码,对他们影响不好。然后我又认真把代码看了一下,并且我发现之前代码中求经过站点数和最短路径不是特别好,就加班重新写了这些代码。到公司面试的时候,是二个面试官,一个是之前面试过我的男面试官,一个是女的。

     首先让我把提交的代码打开。看到我用的eclipse,就问“怎么没有用idea”。我说“idea要给钱”,女面试官说“idea也有免费的,并且idea快捷键比较全”。我就没有说什么。我又说我觉得之前提交的代码有一些问题,我重构一下。男面试说“你这个怎么回退到以前版本呢”,我说“我是重新写了一个继承类”。男面试官还是问“怎么回退版本问题,有没有用什么版本管理工具”。我说“这个没有考虑到”。男面试官问“你提交的代码没有入口函数,如果没有eclipse那怎么运行,你可能没有真正的理解到题目意思,我们希望提供的是一个可以直接运行的项目,项目有输入和输出。“,我心想,我靠,好歹我也交付了几个项目,怎么可能连入口函数和可运行项目不会。我说要不我现在改吧。男面试官说“算了“,然后说”你讲一下你重构的函数”,我就讲一下我重构的经过站点数求可通联路径。讲了我为什么要重构。然后我又说我昨晚加班重构一下最短路径,结果面试官好像不关心这个问题。当时特不爽,昨晚加班把两种最短重新看了,并详细看了两个算法特点,然后又实现了Dijkstra算法,结果都不看一下。                                

 女面试问我“能不能把我的代码提炼一下不“,我说”可以,我提了一个类出来封装公共方法,专门处理求经过站点和其他一些公用函数。女面试官让我实现,我就实现方法。她说“把项目运行一下,看一下结果“。我心想”我靠,就new一个类改一个方法,怎么可能出错,但是既然面试官说,我还是运行一下。在我new类的时候女面试官问我”eclipse没有自动补全功能啊“,我说”有,然后就用了alt+/补全”。不过感觉面试官好像觉得我习惯不好,主要我喜欢复制。男的面试官问“你定义变量怎么没有统一风格 ” ,我心想多半当时改代码的时候,替换类的时候,忽略大小写了。我又不好说的,就没有回答,男面试问我“怎么有些“=”两边有空格,有些没有”,心想“有些我写的,有些改的,当然了”。然后我说“之前我一般不打空格,后面觉得这种习惯不好,就在改,但是没有完全改过来,所以就有些有空格,有些没有”。心想“我靠,我简直太有才,这种谎话都编的出来”。然后男面试官又给了火车题的第二题,我看了一下,没有看懂。他们问“你有什么要问的”,我说“有一个单词没有看懂”。他们给我解释一下题的意义。题比较简单,这里我就不具体说题。然后让我说一下思路,我说用继承,面试官说“为什么不用组合”。这或许是我这次面试最大的收获,我一直知道有类的组合和new类,我一直不知道new类的专业术语就是类的组合。然后就实现了,我又说“我这里的类变量有点问题,可能需要考虑函数传变量,主要之前在实现多线程的时候类变量导致过一些错误”。女的面试官说“没事,先把所有的结果运行一下 ”,然后我又运行一下,没有问题。男面试说“类变量和参数变量使用场景区别,在什么时候用变量,什么时候用参数变量”,我解释一个两个变量区别,面试官又说“你先回答两个变量分别使用场景”,我没怎么答上。男面试说“类变量应该什么时候用,参数变量应该什么时候用,都是有专门应用场景的,不是你这样想互相换就互相换的,即使某些情况可以换,但是也不能换”。我心想“好专业,主要是我随性惯了,只要能够实现功能,那管那么多”。然后就问我又什么想问的,我说没有。 过了一天通知我面试没有过,理由“代码风格和他们不匹配”。

第一次提交代码:https://download.csdn.net/download/w1028900249/11762036。

qq:[email protected]

 

你可能感兴趣的:(ThoughtWorks(思特沃克)面试经历)