###背景就是我投简历过去,然后收到了回复,如下:
###我复制一个文本在下面:
首先非常抱歉没能及时回复您的邮件,我们有一些紧急的事情耽误了。为了更全面考察候选人的能力,我们设计了一套贴近实际项目的题目,如果可以的话,请您完成之后把结果按照要求回复给我;如果您不认同这种方式或者有其它原因的话,也请您告知一下我们。题目如下:
附件中是一个带本地 git 仓库的项目,虽然是一个 demo,但是在此我们理解为实际的 Rest Api 服务。在开发协作的过程中遇到了如下的问题需要对这个服务进行多次升级:
/now
)题目存在不合理的地方请谅解,请按照你觉得最好的方式完成上述的迭代工作,最终需要的是一份基于 demo 的、已经提交过 commits (不需要 push )的 git 代码库压缩包,若干你觉得有必要的文档,以及其他你认为有必要反馈给我们的信息。我们收到了不少优秀的简历,但是因为远程团队的特殊性,我们会根据整个过程中的细节进行探讨和评分,因此尽可能考虑全面,最终选择最合适我们团队的候选人。
多谢!
1
raphael008 2017-08-23 17:01:38 +08:00
靠面试解决技术问题的企业,他不是第一家。
|
2
uuweZhou OP @raphael008 哈哈哈,这种公司也是醉了
|
3
designer 2017-08-23 17:05:43 +08:00
可能是群发的,你不是第一个。
|
4
GromHellscream 2017-08-23 17:06:31 +08:00
这公司叫啥,爆出来看看,以免坑到更多人..
|
5
x86 2017-08-23 17:06:53 +08:00 1
面向面试编程
|
6
leemove 2017-08-23 17:07:31 +08:00 4
我也碰见过...直接没吊.
|
8
wwdyy 2017-08-23 17:08:26 +08:00
厉害了
|
9
liuzhedash 2017-08-23 17:09:25 +08:00
把这套要求写出来也挺不容易的,有这闲功夫不如把任务分派给正式员工做,找求职者做准备做多久?中间大量的沟通怎么做?空手套白狼也不带这样的。
|
10
n6DD1A640 2017-08-23 17:11:03 +08:00
233。。。真「直钩」
|
13
wencan 2017-08-23 17:18:34 +08:00
不敢相信
仔细看看,还真由不得我不信 |
14
silva 2017-08-23 17:19:49 +08:00
公司名都没有,这样的吐槽是没意义的
|
15
jlsk 2017-08-23 17:23:47 +08:00 1
写个毁灭硬盘的病毒发过去,起名叫 答题.exe
|
16
rming 2017-08-23 17:24:07 +08:00 1
觉得这个面试题没毛病啊,可能会耗点时间
|
17
zhouwei520 2017-08-23 17:42:37 +08:00 2
觉得这个面试题没毛病啊,可能会耗点时间+1,上面说的人,你们看题目了么?
|
18
111111111111 2017-08-23 18:26:25 +08:00 via Android 1
题挺好的,正好考虑下
|
19
wingoo 2017-08-23 18:33:37 +08:00 1
这道题和线上业务没多大关系吧
看看你的代码风格, 实现思路 有啥问题吗? 不会以为真的要把你实现的 copy 过去吧... |
20
gamexg 2017-08-23 18:45:12 +08:00 2
这种题目其实更能测试出来工作能力,特别是各种细节是否考虑到位。
另外这种真的是骗源码吗? 除非是很低级的公司不在乎质量,不然写需求,摘出代码做成独立演示项目,外加收到代码后进行审核,效率还不如自己写... |
21
murmur 2017-08-23 19:04:27 +08:00
|
22
jadetang 2017-08-23 19:05:52 +08:00
我觉得这个公司是我想加入的公司,因为确实这些问题都是工作中会碰到的问题。要不楼主把招聘信息发给我,我去试试。
|
23
murmur 2017-08-23 19:10:17 +08:00
@zhouwei520 我举个例子
为了实现这个需求,你需要引入数据库表设计并进行数据库版本管理、在项目中配置和使用数据库连接并且设计好接口最终可以提供给前端调用。 这第二点到前面说的都很套路,收集意见、防刷、反向代理,但是到后面画风一转就不对了,这句话跟前面有关系么 如果是数据表版本管理,分布式的比如 OA 了,也情有可原,比如两家公司都做仓库管理,但是各家仓库字段不一样,动态表,也一半套路 但是最后一点,设计好接口最终可以提供给前端.....调用? EXO ME ?!难道最终 API 是 query?table=table1 或者 query?table=table2 这一大堆东西全做 demo 能实现一个很大的功能点了好么。。。又不是 mongo 数据库,如果是 mysql 这种做动态表可真够吃一锅的 |
24
LINAICAI 2017-08-23 19:16:35 +08:00
这是需求啊,哪是面试题。
|
26
newkedison 2017-08-23 19:31:12 +08:00
个人觉得题目没毛病,很显然,作为一个远程开发团队,题目里面提到的技术都是基础中的基础,如果连这些技术都没有,还需要“面向面试编程”,这个团队早就解散了,还需要招人吗?
|
27
jingniao 2017-08-23 19:38:34 +08:00 via Android
不能完全确认,这到底是一道非常考验实际工作能力的线下面试题还是只是骗代码节省成本的
现有条件下个人认为 6 成可能是骗代码的,可以的话将邮件中的代码附件共享出来进行分析,可能可以更加确认某个方向。 不过从楼主的态度来看,放出附件的可能性不大…… |
28
whileFalse 2017-08-23 19:46:13 +08:00 via iPhone
结合对方公司实力吧。邮件的表述和思路都非常清晰。能出这么道题的人,自身实力也不弱。我个人还是觉得对方不是为了骗代码。
|
29
v2orz 2017-08-23 19:48:43 +08:00
要你写一部分看看你能力的话,我觉得还行,都是全面考察你能力,挺好的
要你全部完成的话,还是玩蛋去吧 |
30
hisway 2017-08-23 19:56:08 +08:00
题目挺好的,毕竟他要招的就是要会这些的人,但这个全部下来得花费很多时间。如果可以选择其中一个来写,好好做,加上公司过得去还是值得的。
|
31
wdlth 2017-08-23 20:35:11 +08:00
回答,你们公司还有人么?
|
32
wdlth 2017-08-23 20:55:13 +08:00 2
https://www.v2ex.com/t/379832
从邮件的地址看,貌似是这个 |
33
thomaspaine 2017-08-23 21:31:12 +08:00
从 0 开始写的话太费时间了……
|
34
fenixan2010 2017-08-23 21:44:06 +08:00
其实把一些关键点回答清楚,象征性地填充部分代码提交就可以吧。
一定是要完整实现这些需求的话确实太强人所难了。 |
36
ll0jj0xx0 2017-08-24 05:21:09 +08:00
邮件写的很好啊,这么认真出题的人明显懂怎么实现啊,不可能是骗代码的。是个认真对待面试的公司。
|
37
eyp82 2017-08-24 07:47:49 +08:00 1
说句老实话, 我喜欢这样的面试, 比出算法题的不知道高到哪里去了.
|
40
wangxn 2017-08-24 08:51:39 +08:00 via Android
骗代码无疑。考察能力哪有这么详细的,这根本是生产用的东西了。
|
41
amon 2017-08-24 09:23:27 +08:00
@Mingchuan 请现身解释一下吧。
—————————— 他们甚至把 git 仓库都发给你了,让你写完 commit 一下,我觉得不必这样。 可以以面试为由让面试者做题,然后让他自测考验他的测试能力, 如果有 Bug 可以跟他沟通,令其思考哪里错了,如何改正。 最后验证通过,在生产环境开个权限给面试者,直接上线。 面试结果:你居然用 Tab 缩进?/ 你居然用空格缩进?很抱歉,这个好人卡发给你,再见! |
42
g8287694 2017-08-24 09:38:48 +08:00
我个人感觉这种面试很有想法,比其他面试吹牛逼的要好很多,但是我还是不会做这种面试题,选择是双向的吧,除非我就选定这家公司了不然我是不会花那么多心思的
|
43
zhongkouwei 2017-08-24 09:46:31 +08:00
我觉得应该不是骗源码,很多小团队因为招人成本和风险高会很谨慎,而且这种难度,他们应该不至于实现不了吧。最重要的是连代码质量都不清楚,他们也不敢用吧。。这样一个个 copy 还不如自己写呢
|
44
ywu 2017-08-24 11:06:53 +08:00
这个公司这么做一点问题都没有
|
45
ZhLTE 2017-08-24 11:16:55 +08:00
本来就是远程职位的话 我觉得 ok
|
46
vjnjc 2017-08-24 11:30:35 +08:00
感觉没毛病,一般正常公司都是到公司面试,远程岗位就远程面试啊,没毛病。
|
47
QAPTEAWH 2017-08-24 11:34:24 +08:00
“好的我马上做”
“我正在做” “‘非常抱歉没能及时’做完,马上就做好了” “去你 mlgb 当老子傻啊” |
48
l00t 2017-08-24 11:40:43 +08:00
这样的面试才能真的面试出水平啊。能看出是不是可以契合到实际工作中的。骗代码?你真以为什么代码都能用么?
|
49
l00t 2017-08-24 11:45:51 +08:00
@murmur 你这想啥呢。它说的是提供接口给前端调用,又不是说让前端直接写库。这是整个 demo 里的一步啊。这个 demo 显然是个后台服务。提供的接口当然是前端调服务的接口,服务自己再往数据库写。
项目没有日志是指到第三步结束的时候还没有任何日志。这第四步不就是加日志了? |
50
shunia 2017-08-24 11:54:45 +08:00
说这是真题目的,也不想想,国内还有公司能这么认真的把你花很长时间(这套题做下来肯定时间短不了)做出来的结果全部 review 一遍,还对每个应试者进行对比,最终择优录用,并且还这么没名气?
你特么是在逗我. 这明显直接拿需求骗开发啊. |
51
zhangshine 2017-08-24 11:57:06 +08:00
题目没问题,问题是耗时间 && 你耗时间做了他们会不会认真看
|
52
YangXiaoming 2017-08-24 12:01:23 +08:00
我觉得我会写几个 bug 进去。
|
53
a87150 2017-08-24 12:02:43 +08:00
如果全部做出来最后对方来一句不采用你会不会想 cnm
|
55
murmur 2017-08-24 12:27:46 +08:00
@l00t 另外,我也是用过 swagger 的,这个东西很屌,用 xaml 写的文档可以优美的显示为 html,还可以配置一下就带一堆文本框让你输测试值调试,也可以通过文档生成接口
但是看题目中,“需要一个自动生成的方案”,要么是通过 java 反推接口文档,要么是接口文档变动自动修改代码,两个我认为哪个都不可行,前者他连 log 都没有怎么可能有写文档的 javadoc,后者我加个参数那个人感觉把所有地方都改的好好的不报错 你认为呢?我感觉这就是个拍脑袋,先拍出个 idea,然后找面试人答题去试,万一行了呢? |
56
Jimrussell 2017-08-24 12:30:30 +08:00
邮件都发了,公司名字不发?不知道楼主在怕什么
|
57
weakish 2017-08-24 12:32:48 +08:00
@shunia 得看 demo 的复杂程度。理论上这种题目里的 demo 应该是一个非常幼稚的「实现」(如果是真实项目光看现有代码可能起码要好几天,显然不适合面试)。如果 demo 足够简单的话,这个代码量 review 起来还好。毕竟不用这种方法,招人可能也看对方 GitHub 上面的代码,还有面试不管是问答还是白板编程成本也不低。
|
58
l00t 2017-08-24 12:36:18 +08:00
@murmur 你的理解当然是错的啊。人家这是个 demo,这是在描述一个题,你非要理解为在说自己团队的情况,这能对吗?
还有 log 和文档有啥关系?你程序里没有 log 输出又不等于一句注释也没有。“需要一个自动生成的方案” 怎么看都是指自动生成接口文档。 |
59
juice 2017-08-24 12:37:05 +08:00
老板说将遇到的问题当做面试题
|
61
weakish 2017-08-24 12:44:24 +08:00
@murmur 我的理解是手写 swagger-ui, 由 swagger-ui 生成文档。看你的理解好像是根据 javadoc 甚至 java 代码自动生成 swagger-ui 的代码,如果是这样的话难度和其他题目不匹配。
面试题如果表意不清,你可以去问(转换成实际场景,就是明确需求分析),如果你觉得题目出的不合理,也可以提意见(转换成实际场景,就是负责架构的人或者小组讨论做的选择你觉得不合理,你觉得需要讨论)。 |
62
weakish 2017-08-24 12:46:52 +08:00
@murmur 那也是「贴近」,不是一样。真拿实际项目级别的 demo 出来面试人怎么可能(真要这样除非先给面试的人发一个月工资,否则面试的人根本承担不起做题的成本)。
|
63
murmur 2017-08-24 12:47:22 +08:00
@weakish
后端同学进行了调研并且讨论,觉得手动写文档并且每次变动都去更新太麻烦了,需要一个自动生成的方案 这不就是先开发后补文档么?手写 swagger-ui 就一个 xaml 纯打字的有什么地方可以做考点。。 |
64
l00t 2017-08-24 12:49:45 +08:00
@murmur 这个题是很贴近实际项目啊。从需求来源(产品,前端,运维,后端内部),到设计、开发、文档、测试,这些流程都贴近真实。但贴近又不是说完全和实际项目一致。有些场景是需要制造出来的嘛,不然你让它在哪一步特意写出日志的方案设计?真实开发中,完全没有日志输出几乎不可能,但倘若前期没有明确要求,那么各有各的不规则日志倒是很有可能。最后上线前按运维要求统一日志输出规范也算是很常见的吧?
|
67
k9982874 2017-08-24 13:17:33 +08:00
虽然感觉怪怪的,但是他提的要求倒也没啥过分,没涉及到业务逻辑实现。
JAVA 做可能会挺花时间,如果 node.js 做 2 个小时可以搞定。 1、引入 moment 库,在 /now 接口做 format 转换。 2、跨域问题在 service 或 nginx 端配置 cors,nginx 反代时加 x-forwarded-for 头 service 读,拿到真实 IP 防刷就好弄了。 3、装 swagger for express 套件搞定 4、WinstonLogger、Log4JS 随便选一个,装上完事 5、装 mocha 完事 还不是太过分。 看介绍是远程工作,如果待遇能给到 3W+我是会给他弄一下。 |
68
k9982874 2017-08-24 13:19:15 +08:00
补充:第一点要求不改变接口实现,那就别用 moment 了,设置一下环境变量的时间格式。
|
69
Felldeadbird 2017-08-24 13:55:12 +08:00
这不是骗代码的面试。看了一下,5 点要求都很简单。
|
70
1ychee 2017-08-24 13:58:56 +08:00
我们公司之前招前端,也是出了一道基于实际需求而大幅简化的 DEMO 考题。
按照产品经理的意思,如果应聘者看到考题,觉得无从下手,那么也算是为双方省下了无谓的沟通; 如果应聘者的技能点正好是我们所需的,那么考题对他来说毫无难度,预计 2~3 个小时即可完成。 当时大概有 60 个左右的前端投简历,因为这道考题,直接吓跑了 50 个... (当然,最后很幸运的是我们还是找到了合适的人选,而且非常出色~)当时的考题在这里,大家也可以来看看: 现在外面那么套路,教求职者如何通过话术打动公司 HR。所以,对于公司来说,面试的时候,只靠语言沟通是很难让双方深入了解彼此的... 直接上手能让双方迅速知道彼此是否适合。如果你觉得无从下手的话,那么直接不开发就可以了,甚至都不需要回复邮件。 |
71
weakish 2017-08-24 14:12:45 +08:00
@murmur 没看到 demo 不好说。我怀疑是没有完善的 javadoc 的,否则前端可以直接参考 javadoc 开发。如果通过 Java 代码生成 xaml 那难度和其他题目都不一样。
后端暴露的接口是不是太多了?有些接口可能不必要写进 xaml 里( xaml 是前后端之间的协议)。 具体的取舍需要综合考虑需求、兼容性(现有前端代码对后端接口的使用)、可维护性(应对未来需求的变更)。 这和下一题「书写日志的注意事项,... 按照这个规则」都是侧重设计上的取舍。 |
73
murmur 2017-08-24 14:21:38 +08:00
@weakish 我后来想了一下,看了一下 70 楼的图,幡然醒悟,这面试题写太啰嗦了
为了实现这个需求,你需要引入数据库表设计并进行数据库版本管理、在项目中配置和使用数据库连接并且设计好接口最终可以提供给前端调用。 想了半天才明白这句话什么意思,原来是要把数据库的 powerdesginer 或者建表 sql 一起放到给的 git 里提交。。 |
75
1ychee 2017-08-24 14:39:51 +08:00
@murmur #74 谢谢~
我们也是想节约应聘者的时间,所以有一个最低要求,其他的话,当然是能做的越多越好咯~ @66beta #72 是不是被感动了?要不,来我们网站上来几发正版软件吧! https://DIGITALYCHEE.taobao.com/ |
76
weakish 2017-08-24 15:36:21 +08:00
@murmur 70 楼的题是另一种风格,酷炫效果约束太少,实际项目中如果需求是「实现一个酷炫的效果」,那就是坑爹,因为你不知道对方心目中的「酷炫」到底是指什么。其他题则都框死了,只要考虑怎么实现就可以。
而这种「啰嗦」题目是另一种含混的风格。比如 70 楼第一题「按 Software_id 0-9a-Z 汉字首字母排序」,换成含混的风格就是「为了方便用户快速定位软件,需要按软件名称排个序」,至于具体是 0-9a-Z 还是 0-9A-z, 汉字是否和英文混排,要不要同时实现倒序的交互,那都留给实现的人去考虑。 然后这两种出题风格其实背后是两种不同风格的协作方式。 (当然也不排除一家公司实际工作用一种风格,但用另一种风格出题。) 第一种是按照定死的设计实现,有人负责设计,有人负责实现,这样界限很分明。 第二种是只有一个模糊的方向,实现的人需要自己做一些具体的决策,这样负责设计的人可以把注意力集中在大的设计方面,同时负责设计的人在一些细节领域的经验和信息可能不如具体的实现者,所以具体的实现者可能是最适合做局部的、细节的决策的人。 然后是牵涉到团队其他成员的工作,第一种风格,涉及到多人的选择和涉及到单人的是一样的,无非就是「一人决策,一人照做」变成「一人决策,多人照做」而已。 而第二种则需要团队共识。比如题目中提到「进行了调研 ... 最终决定用 swagger-ui 」,如果是第一种风格,那这些话实现者不用关心,我只要知道要引入什么就可以了,其他不关我的事。而第二种风格则是点明了决定用 swagger-ui 是团队的共识,不会出现前端想推这个,后端觉得没必要的情况,换句话说就是大家愿写,「把文档的书写和使用方式反馈给整个团队」,这就是解决大家会写的问题(当然了,你不反馈,别人摸索一下也会写,但你反馈一下,根据项目的具体情况出一个流程,其他人上手更快,节约大家的时间)。 这个只是一个粗糙的分类,第一种负责决策的人也是要考虑团队的意见的,否则推起来太难。而第二种,团队统一不了意见,或者虽然统一了意见,但负责设计的人看到了大家看不到的更好的路,而且很有自信,那么负责设计的人也会利用自己过往的成就、大家的信任而形成的权威来强推。 |
77
lxml 2017-08-24 18:17:13 +08:00
虽然我觉得这种题目区分点其实很好的,但实际情况是大家都很忙,为了完成这一个题目需要耽误起码一到两天的时间,为什么不选择不出这种题的公司去面试呢?
|
78
wpzero 2017-08-25 05:45:25 +08:00 via iPhone
这个公司的面试没毛病,考察能力而已。
|
79
wpzero 2017-08-25 05:58:23 +08:00 via iPhone
还想提醒下楼主,这种公司更靠谱,比面试都没深入谈某方面技术,就过了那种。
|
80
Mingchuan 2017-08-25 10:50:12 +08:00
感兴趣的可以发邮件给我~https://www.v2ex.com/t/385660#reply0
|
82
bestmike007 2017-08-25 11:33:19 +08:00
不得不说出题花了不少时间和心思,考察的点很基础也很全面,是不是骗代码,看下附件就知道了。
另外远程工作真的不适合楼主,但是其实跟是不是远程没啥关系,只是远程的要求更高。因为楼主都不知道自己是不是误解了对方的意思,也不知道该怎么正确有效沟通,出题者不是说了吗:“如果您不认同这种方式或者有其它原因的话,也请您告知一下我们”,看楼主这样贴出来我相信肯定没直接反馈给对方。 @1ychee 很好奇你们的题目,能分享一下么? |
83
uuweZhou OP @bestmike007 要求很高,所以你就认为别人达不到这个要求了?
|
84
Obelly 2017-08-26 14:32:10 +08:00
1, unix time 解决
2, SaaS 解决 3, 都没参与项目,毛个文档 4, 外购 APM 解决 5, 这个可以弄一年 1,2 看出技术力量薄弱,3,4,5 看出管理混乱 |
85
1ychee 2017-08-29 21:27:50 +08:00
@bestmike007 #82 算了算了啦~ 测试端口都停掉了。
|