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

2016-11-26 21:52:19 +08:00
 neoblackcap

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

16405 次点击
所在节点    程序员
93 条回复
huntzhan
2016-11-27 14:11:19 +08:00
OP 搬了 winter 的例子想要表达算法不重要,我提几个点:

1. winter 的表现是个例,而且有评论对 winter 的水平表示质疑。这个例子应该无法反映大盘情况。
2. 面试考算法与工作中用不用得到算法,是两回事。
3. 目前的现状是,高梯队的公司,比如 MFG 与 startup 独角兽,都采用考察算法的方式评估面试候选人。作为个体,如果背景不强,只能去适应游戏规则。
q397064399
2016-11-27 14:24:28 +08:00
@amery2010
@huntzhan
所以我也在考虑是不是要报个九章算法班刷刷题了
fytriht
2016-11-27 16:52:04 +08:00
@ChefIsAwesome
如果考算法的目的是考验逻辑思维的话,你不如找点高中数学卷子给人家做了。
高中数学题做得好的人逻辑思维强吗?是的。
高中数学题做得好的人代码写得好吗?
---------------------------------------------
你这就是典型的逻辑差了。逻辑强是写出好代码的必要条件,而不是充分条件。
还有,高中数学卷子对逻辑能力的要求比算法还高吗,不见得吧。
coderluan
2016-11-27 16:52:17 +08:00
从程序员角度来说,任何不想吃青春饭的程序员都得掌握算法等专业知识。
从公司招聘角度来说,看你工作具体需要和开多少工资了。
nikymaco
2016-11-27 16:55:47 +08:00
打个武侠比喻:算法如内功,没有内功,武功的招式再厉害也不会有质的提升,更别说那些花拳绣腿了。
geektony
2016-11-27 19:44:31 +08:00
算法是核心,不然就只会是拼凑 API
ivvei
2016-11-27 20:01:04 +08:00
逻辑强也是做高中数学卷子的必要条件。而如果逻辑强不是写出好代码的充分条件,那算法强也不是写出代码的充分条件。
高中数学卷子对逻辑能力的要求怎么就不比算法高了?你是如何评判对逻辑能力的要求的高低的?
FrankFang128
2016-11-27 20:03:44 +08:00
1. 不是只有那些算法才算算法
2. 不要说得前端工程师不是工程师一样
mengjue
2016-11-27 22:03:45 +08:00
如果算法有问题,说明这名面试者: 1 ) 不爱钻研 2 )学习能力一般 3 )对计算机的兴趣程度一般

当然算法好的也不定水平就强,可能是正好背到哪一题,但是最起码这个人愿意学习,就算资质有限,算法题需要去背。
BRKA
2016-11-27 23:27:33 +08:00
我以前也一直觉得前端不需要学算法,但是为了找工作也一直在刷 leetcode 并且觉得没什么用。直到我看了 Virtual DOM 的实现并且自己跟着帖子手写了一个以后才知道前端算法重要性。
Rice
2016-11-28 08:19:09 +08:00
我觉得考考快排这种简单的就好了
Rice
2016-11-28 08:21:10 +08:00
相对的,你应该考试前端中的优化问题,比如 CSS 怎么写更快, js 怎么写更快更可维护
nicevar
2016-11-28 09:09:14 +08:00
@wuethan 你这个例子举得与算法没有任何关系,明显是会不会利用资源的问题,那人只能算偏执去造轮子。但是如果没有现成的可用,第二个人写不出来那怎么办?不少公司会出现一个技能难点没人能解决的尴尬,只能到处求救。
前端工程师会不会算法看公司人员配置,已经有解决问题的一两个人了,后面招进来的是否需要此技能问题不大
realpg
2016-11-28 09:10:44 +08:00
@neoblackcap
大概是你筛选简历的能力太差
看你招聘需要的是“前端工程师” 还是 “给 html 加点特效写两个 ajax 用 jquery 验证个表单的人”

你要是需要的是后者 无所谓
neoblackcap
2016-11-28 09:24:22 +08:00
@realpg 不是我筛选简历的能力太差,是老大说别人从山长水远的地方过来了,一定要给面试机会-_-b
pysama
2016-11-28 10:05:28 +08:00
借用玉伯一句话,“我们需要的是能力互补的人,而不是能力重复的”
原话记不清,大意是这样。
tobeyouth
2016-11-28 11:31:20 +08:00
通常情况下,我面试的时候会考查一下手写冒泡排序,如果能写出来当然最好;如果写错了,但是其他方便比较好,也可以考虑,毕竟其实在前端的工作时间里,用到算法的地方还是比较少的。
keikeizhang
2016-11-28 12:05:03 +08:00
你需要的是一个砍刀,还是需要一个机关枪,如该需要是一个砍刀就别按照机关枪的战斗力去要求,如果需要后者面试的时候就说好。

问题是你需要这个武器是干嘛的,你是近身搏斗还是远程打击!

弄清楚自己的需求,然后根据需求招人!
jason19659
2016-11-28 13:10:27 +08:00
所以还是要回答这个问题,你想招一个什么样的人,预算是多少?
jclin
2016-11-28 13:14:27 +08:00
看你做什么了

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

https://ex.noerr.eu.org/t/323537

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

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

© 2021 V2EX