前端工程师应该掌握算法吗?

2016 年 11 月 26 日
 neoblackcap

在公司里面面试了好几个应聘前端工程师的人,除了 css 跟 jQuery 之外,其他基本上都不懂,排序算法普遍不能说出快排跟冒泡排序的区别,更不用说实现了。 有时候我在想身为一个面试官,我应该考算法吗?但是不考算法的话,我没法检验他们是否符合工程师而不是设计师的岗位要求。 一个页面 jQuery 写几千行,完全不用函数,不断地用 jQuery 插件,除此以外连个简单数组排序都做不了。 请问各位前端大神应该如何面试一个前端?

17305 次点击
所在节点    程序员
93 条回复
changwei
2016 年 11 月 28 日
你可以让他们直接展示自己做过的项目,看看他们源代码的代码规范性怎么样,因为国内像谭浩强这种教程深入人心,很多人都习惯了他那种 abcd 的变量命名和不规范的缩进,你光看算法根本看不出他的代码质量和对于大项目,逻辑复杂的 SPA 等等的编码能力。
wobuhuicode
2016 年 11 月 28 日
看多点不吃亏哦
heyheycici
2016 年 11 月 28 日
大概是在今天凌晨 3 点多醒的然后就睡不着了,那天看到同学在看这个网站 此刻我终于拥有了评论的权利:
我赞成的观点有:===》招码农不需要 招工程师需要 看你愿意为招聪明人多付出多少而已,反正你招人,为什么还要这么墨迹,知道你矛盾但是每一个人需要成长空间,你要是不愿意给就不给, 不要说会什么才算合格的 xx 猿。
总之,我挺烦你发的这个帖子。没错我是小白 并且是正在培训班的小白。怎样,这里是大牛怎样,想想你当初是啥样了,姿态,不是 这样用的。完毕
neoblackcap
2016 年 11 月 28 日
@heyheycici
我讲的都是我身边的事情,这个我真不知道我哪句话冲撞了你。
公司是这样的,公司招人是给需要员工创造价值,这个是上司对我面试的要求。也就是招人回来,给他 5k 薪水,他必须创造超过 5k 的价值。
至于说给不给时间这个是很多因素,公司不是一个人,哪怕我给了,然后这个人又不一定分给我们组,若是分配这个人到一个都是立刻投入战斗的组,这样对他是不是负责呢?组内没有人会帮你配环境,没有人会教你语法,框架思路也不会帮你理,大家只会发你文档地址,然后你就得阅读文档立刻开始工作,这个就是目前的情况。
同时,给这个人的时间的同时,要给多少薪酬?是按实习生来给还是按工程师来给?
其实这个问题已经不仅仅是给我作参考,同时我认为也可以给广大面试官以及面试者一些参考。面试者需要公司给时间,但公司是不是也可以让面试者对薪酬给空间?
我们招聘的都是前端工程师,不是实习生,都是想招立刻投入战斗的人员,工资我可以说,是市面平均水平,略低于 BAT ,独角兽,但绝对是互联网的价钱。你说一个自学 1 个星期的前端来面试,然后只会 jQuery ,然后开口说 10k 起跳,然后说之后会进步会很快,优点都是勤奋努力。说真的,我面试了至少 20 多位,每位都是这样说。
哪怕是这样的情况下,我们还是招不够人,我们都已经不要求立刻投入战斗,至少真的进步快,潜质高就可以了,但是还是远远不够(过了 2 个月,还是不能独立工作)。
你认为招聘仅仅是公司给的机会吗?那么现在快年底了,一个人 12 月进来,过了一个月我们发现他不合适,那么 1 月开头就叫他走?那是要过年的时间啊,不叫他走,团队其他人感觉不爽(分蛋糕多了)。
这里通篇都没有强调算法的重要性,我只是认为算法是一个没有办法的办法,我的 append 都有说明。

问起我的情况,简单说说
我是一个很普通的人过来的,哪怕现在也不是什么大牛,若我是大牛的话我就不会发帖。
我大三出来实习,非科班。拿不足 2k 的薪水,干前端,写 API ,维护机器( ssh 登陆,安装包什么的),不足 2k 的那钱是包括加班费的,因此 9 点或者 10 点下班都是正常的。下班之后我基本上都会看 1 个小时跟 CS 相关的公共课,周末都会去看机械工业出版社大理石封面的书籍,《现代操作系统》就是那个时候看的。每天 7 点不到就要起床挤公交。这样的生活我过了半年。之后回学校专心学习了一年,期间看完了《 Linux 系统编程》,自己重新拿着《 C 程序设计语言》复习了一遍,也背了一下算法,不过是在不得要领,仅仅是强记了快排。当然也有上 leetcode 刷题, projecteuler 也有刷,但是不多,若是国内非独角兽的互联网公司,我认为刷完 leetcode 简单级别的题就是够的了。
当然哪怕有同学做到以上的所有,我也不能保证你能至少达到我的程度,正如之前这上面有一位发过《其实你不用退学》一文,其实我想说,别人高中可是广东前十的高中,每年都有清华北大,计算机保送什么的基本上都是吃定的。还有要说明的是,我不是大学才开始自学计算机,我以前高中就有老师带过,要是说起来那我算是搞 OI 出身的,就是当时一个水啊,非常感谢我的高中电脑老师,是他们让我入了这个门。
eyp82
2016 年 11 月 29 日
我不是太赞同考算法, 这只能考验他刷题的水平, 好吧至少证明他很在乎这个职位.

不如换个方式,你找个算法的文档, 拿给他看, 过 20-30 分钟后请他解释一下这个算法以及如何实现(可以用伪代码), 这样是不是更好一些?
或者请他介绍一下之前做过的项目, 考察一下他如何处理其中出现的问题.
heyheycici
2016 年 11 月 29 日
如果按照您现在的说发来看 您知道自己需要什么样的人 也知道您是要找什么样子的人 那为什么还要问这个问题。您可以征求大家的意见,但是我觉的您一开始的帖子说的有问题,给我一种必须一开始就得回算法才能当个码农的感觉,我觉的很不爽,很不爽。还有现在的的市场,不是一些培训出来的不愿意接受几 K 的工资 安心找个实习的,很多人学的很多,只是真正的缺少一个开发流程,去实战,可是就差那么一点某些公司就会特别打压给你个 3k 、 4k 的,那自己学的就那么差么?我觉的不见的,要是写个一年的工作经验吧,根本没有面试机会,连一个打电话的都没有,所以很多人都造假,我觉得作假特恶心,欺骗别人特恶心,可是自己就真的那么不堪么。不能说你不对,或者我不对,我在意的是您说话的那些语气,不是别的。我赞同一个真正的程序员是一定要有算法能力,可以我觉得这是建立在有需求的情况下吗,没有实战没有需求,怎么感觉算法重要?拿什么来感觉维护性的重要?如果您要招大牛马上能工作的您就在招聘的时候和面试的时候认准您的底线就 ok ,市场就是这样,大家都没错
wuethan
2016 年 11 月 29 日
@nicevar 你说的对,但我说的是个效率问题,插件效率更高不是吗?考虑到兼容性 内存占用 效果程度.. 额 前端有什么解决不了得难点呢.........实在想不出来
neoblackcap
2016 年 11 月 29 日
@wuethan 其实我觉得你是割裂了会算法跟用插件,这两个并没有联系,不是非黑即白,本身我们就应该强调 DRY 。所以一个前端工程师,就应该评估工作量,自行选择用插件或者自己实现。
abc123ccc
2016 年 11 月 30 日
前端工程师懂算法的话,就懂得性能优化。某些页面优化需要前端的大力配合才能达到效果。
hanzichi
2016 年 12 月 2 日
楼主缺人吗,招我把, leetcode easy 难度的题没问题的水平.. https://github.com/hanzichi/leetcode
neoblackcap
2016 年 12 月 2 日
@hanzichi 我司缺人,坐标广州天河,有兴趣请投简历"neo.blackcap 在 gmail.com"
hanzichi
2016 年 12 月 2 日
@neoblackcap 谢谢,可惜地点不合 ..
fancyhan
2018 年 5 月 27 日
会不会算法一眼就能看出科班出身还是野生的,再说一点都不懂的人,是不是太井底之蛙不会持续学习了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/323537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX