Boss直聘上投了TW,
三月某个周二的下午,TW电话过来。问一下离职原因,我说目前业务方向不对。HR介绍了一个TW,问从哪些途径了解TW等。谈到TW的分享文化,我表示我在团队里面也经常分享。这样,你情我愿,上车了。HR说给我发一个
Homework,让我三天内完成。
我回来查看一下邮箱,初步评估了下,Homework嘛,应该不是什么大项目,4小时内可以完成吧,就答应了周五晚上提交作业。
Homework目录,pdf里面介绍了一下项目要求,ASSETS有一些切图和大图,后者就是前端写静态页面需要的PSD或者Sketch文件,但是这里给的图片。于是只能把这个图片放到Ps里面取色和测Size。另外有部分标注,但是并不全。上来这种杀马特的风格,写静态页面的条件是艰苦的。这里有个插曲,我拿到Homework,打开pdf,pdf里面有一些截图,但是不清晰,我以为这部分就是设计稿和标注, 让HR再发一份。HR回面试官说不影响完成作业。
目录结构:
主要需求就是完成这个一个后台管理系统,一个页面。
因为上班995, 通勤时间3小时,工作日没时间,就找HR申请延长两天。周末边带娃边写代码,我用vue-cli生成单页应用,加了vue-router,写了基本的框架。大概花了4小时,把Homework提交了。
4-3日HR反馈:作业完成部分工程化不错,让清明节假期继续完成全部作业。我以前在外企待过,比较扁平,同事比较Nice,而且在网上经常看到一些TW的技术文章。再看到面试官的反馈,我想如果我继续花时间完成作业,这工作可能就稳了。
然后清明节我把娃支开了,写了两天代码。基本的封装,navbar,sidebar,appmain,公共样式都写了。好,作业提交过去。
三天后,中午12-15点面试,自带电脑。地点大冲商务中心,高大上。进公司后,比想象中的差了点,不是很活泼吧,第一印象是这样的。在会议室坐稳了,俩面试官进来,介绍了一下他们的名字。看年龄大概28,28吧。
面试官:HR让你提前装Zoom了吗
我:没有
连上外接显示器后
面试官:说说你的工程结构
我:....
面试官: vue脚手架生成的index.html和App.vue里面都有 id=“app”,你怎么理解的?
我:呃,实际上页面上并不会渲染两个id="app".这个我一时看不出原因。
面试官:作业里building和idle有两个icon,你为什么没做呢
我:漏了。
面试官:现在完成
我一边写,面试官一边说字号大小,颜色等。
面试官:这个icon图片给到了吗?
我:有icon font
其中build下边的齿轮icon是匀速转动的。我用css3转动并不均匀。其中一个面试官说balabala,试过没作用,另一个说少个linear。但是怎么加,我不知道,百度一下,搞定。
面试官:好。接一来,增加一个功能,40分钟内完成。
我看看纸质需求文档,需求是加一个Add Agent按钮,点击按钮弹框,弹框里面有几个input和按钮,点确认添加Agent.
考虑了一下,这功能可能要花我1个多小时。于是开始紧张的写代码了。先添加按钮。
面试官:这个按钮的样式可以copy其他按钮的样式
我:不是很方便找到其他按钮的样式,我习惯自己写。(vue文件template、js、css混在一起,我并没有分离。另外MBP写代码并不多,其实小屏也难操作的)
面试官:你一般写样式不在chrome里面调试吗?
我:有些样式我是确定,只有不确定的才会在chrome里面调试
我:样式这些东东是耗时间的,我先完成js逻辑吧
面试官:为什么呢
我:40分钟内我完成不了增加的功能,优先完成js逻辑比较有说服力。
中间卡住了,eslint报错。iTerm里面并不会指出哪里报错了。我加了/* eslint-disable*/也不行,很奇怪。
面试官:xx行 error,把eslint关了就行
我:有error关eslint也不解决问题呀。这里是warning.
面试官:xx行,加个空格
我改了,依然报错
面试官:改eslint配置
我:对不起,时间不多。我先按我的思路来
我关掉iTerm,打开vscode的Terminal, 哪一行出问题,直接显示了。解决之。
接下来处理收集表单数据,查mock-server add item的API。面试官提示了一下,增加数据成功。
面试官:时间差不多了。可以了。你觉得你刚才有什么要改进的地方吗?
我:呃。。。你们说说看吧。
面试官:组件如果提前封装了,可以节省很多时间。误敲后,回退,没有用快捷键。对vue脚手架生成的项目理解不够。对eslint不熟悉,又拿来用。
我:有面试者40分钟完成增加的功能吗?
面试官:有,写iOS的都有完成的。
然后等来的结果是:对不起。HR过来反馈,说结对编程和面试官互动不行。
我解释一下,面试官的建议哈。
- 组件提前封装:大的组件才会封装,按钮和input框定义基本的公共样式即可,若出现几个相似的按钮和input框才会封装组件。现公司的项目按钮也没封装,为何Homework你希望我封装呢。另外这个按钮的样式和Deny按钮类似,icon加文字的。但是实际上Deny按钮的显示在作业文当里面并没有说明,我也就没有做Deny按钮。
- 后退快捷键:这个建议不错。不过不会快捷键并不会影响太大。
- vue脚手架理解不够: id=”app“这块的确卡住了。实际项目里面用的是多页应用。这次用SPA是第一次用。毕竟之前鼓励我的把项目写下去,我都花了大量时间,面试官是不是应该找找项目里面的亮点呢?
- eslint不熟悉: 面试官自己也不熟悉,出一堆主意,没作用。这东东用到就查,只不过当时时间不允许。
这是我大小100次面试,体验最差的一次。TW让我花这么多时间做作业,换来这样粗糙地打发面试者。既然引诱面试者花那么多时间完成作业,为什么不重点考核作业呢?结对编程新增功能,大部分时间要花在样式上,而样式很多时候是要花时间调的,在原作业增加js逻辑功能是否更适合?
结对编程?半桶水在旁边瞎BB吧!
thoughtworks这公司在互联网上名声还挺好,百度一下,形容词都是“人文光怀”。广告什么,就缺什么。“人文光怀”大概像是刘强东口里面的“兄弟”吧,说多了恶心。面试体验如此差,希望同样面试过TW的年轻司机,说说感受。
面试地点:深圳Thoughtworks。结对编程副面试官态度不错,主面试官态度很差。另外不满的是,没有基本的技术考察之前,就鼓励面试者做16+的作业。