内卷时代的筛选手段:面试考算法,你怎么看?

2021-06-24 18:35:23 +08:00
 ranxx

现在面试太注重算法了,搞得大家都去疯狂地刷题、背题,以求通过面试的初筛。

这显然是内卷时代的一种筛选手段:行业涌入的人才越来越多,所以门槛就会不断提高。

但这会导致一个不好的现象:很多人以为刷够了题,背会了面经,就能搞好软件开发,实际上还差得远。

你怎么看这种风气?

12448 次点击
所在节点    程序员
113 条回复
AntiGameZ
2021-06-25 04:20:16 +08:00
考算法不等于考背题。不错,肯定是有公司和面试官就希望你 45 分钟秒两道 hard,但这不是普遍现象。

即便考一个二分查找,二叉树的遍历,也是有很多能聊的。题目可以稍微变形,面试官也能提出特殊的接口要求实现要求,从时间 /空间复杂度慢慢谈到面向对象设计都是有可能的。

题只是外在的选拔形式,个人认为还是考察算法题的过程中,面试官和面试者的沟通,到底最终面试结果能看出来什么,相当一部分也要考验面试官自己的面试能力。这点需要训练,需要公司不停的引导与互相学习。所以往往也都是公司大了才搞这套。小公司指望你来了就干,大公司大家都是螺丝钉,你家的螺丝和我家的螺丝千差万别,聊实际工作很可能都聊不到点上去。
dayeye2006199
2021-06-25 04:46:22 +08:00
在不是内卷时代的时候,也是考算法。FB,G 这样的公司从很早开始就需要考 3 轮+算法,1 轮系统设计。
聊人生,聊经验的反而是少数。
xiadong1994
2021-06-25 05:45:06 +08:00
@yompc 面试官反手甩给你 IEEE754
youxiachai
2021-06-25 06:57:52 +08:00
一般面试的算法难度也就到 Medium 。。老实说,连 Medium 的题都做不出来。。。这水平不要也罢
Yvette
2021-06-25 07:39:59 +08:00
正常来讲,靠算法跟背题是两码事……whiteboarding 是很实用的技能,不管在团队里还是个人解决问题都是很有用。你能把一个 2sum 有理有据地讲清楚,并不是看上去那么容易的,真不是背题就可以背出来。当然前提是面试官的知道自己在干什么,如果面试官自己水平都不怎么样,再好的筛选手段都会沦为八股文的,没区别
Yvette
2021-06-25 07:40:33 +08:00
@Yvette *考算法
kingfalse
2021-06-25 07:55:46 +08:00
头条可能只顾着考算法了,被删库
sonxzjw
2021-06-25 08:28:42 +08:00
关于楼主第三行的观点我不认同,从来没人说果就能搞好开发,只是能很好提升面试通过率而已。

而为啥面试官都要考算法?我个人认为,就是那种“人云亦云”而已
cassyfar
2021-06-25 08:34:13 +08:00
我突然想起以前面试的一个中国人,把算法当成了考试,只求解出并做对这道题,而不是和考官交流讨论解题思路。结果多轮都是因为这个拿到负面回馈而没通过。。。

其实考算法只是个幌子,还是看重你的解决问题能力和沟通能力。
chnhyg
2021-06-25 08:52:29 +08:00
这里引用一下陈皓前辈的话。

-

算法是比较难学习的,而且学习“算法”是需要智商的。数组、链表、哈希表、二叉树、排序算法等一些基础知识,对大多数人来说是没什么问题的。但是一旦进入到路径规划、背包问题、字符串匹配、动态规划、递归遍历等一些比较复杂的问题上,就会让很多人跟不上了,不但跟不上,而且还会非常痛苦。是的,解决算法问题的确是可以区分人类智商的一个比较好的方式,这也是为什么好些公司用算法题当面试题来找到智商比较高的程序员。

然而,在很多时候,我们在工作中却发现根本用不到算法,或是一些基本的算法也没有必要实现,只需要使用一下第三方的库就好了。于是,导致社会上出现很多“算法无用论”的声音。

对此,我想说,算法真的很重要。我这 20 年的经历告诉我,无论是做业务还是做底层系统,经常需要使用算法处理各种各样的问题。比如,业务上我需要用算法比较两个数组中差异的布隆过滤器,或是在做监控系统时实时计算过去一分钟的 P99 统计时的蓄水池算法,或是数据库的 B+ 树索引,还有 Linux 内核中的 epoll 的红黑树,还有在做服务调度里的“背包问题”等都会用算法,真的是会本质上帮助到你,也是会让你瞬间会产生成就感的事情。

虽然算法很难,需要智商,但我还是想鼓励你,这其中是有很多的套路是可以学习的,一旦学会这些套路,你会受益无穷的。
towser
2021-06-25 08:55:33 +08:00
@medivh 非常好的观点。
LiubaiQ
2021-06-25 09:00:57 +08:00
算法非常有用,框架源码中会频繁的出现各种数据结构、算法,例如 react-reconciler 里大量的链表、循环链表、队列、栈、树,scheduler 中的堆,开发中常用的 Map 、Set,还有位运算技巧等等
MoYi123
2021-06-25 09:07:11 +08:00
@ericls 提交错了是要罚时或者扣分的呀,怎么可能不跑 test case
RainCats
2021-06-25 09:10:51 +08:00
我也不想背八股文,可我在业内只是一个没有名气的小 Java,所以面试官只能通过八股文来考察我,至于算法,我真不会,没专门研究过,学校学的早就丢到 M78 星云了
Carlgao
2021-06-25 09:18:17 +08:00
已经刷了一段时间算法题,对编码确实有提升,算法能背出来多少题,稍微变形一下还能背出来?
为了解决一道题可能背后需要去找很多资料,这些都能背下来吗?
如果这也都可以背下来,那可以说这个人就是会了。
LessonOne
2021-06-25 09:21:24 +08:00
@yompc float 占几个字节这个真的是基础中的基础了
JoStar
2021-06-25 09:35:33 +08:00
同意 #2 的,当下没有更好的筛选手段了,也是一种没有办法的办法。

如有,可以提出来,大家讨论讨论~
gy0624ww
2021-06-25 09:42:58 +08:00
其实 算法考 easy 题就可以了,中等题我觉得都没必要考。
因为 easy 题基本就能覆盖到你在工作中遇到一个问题是否能设计出合理的数据结构并有思路写出相关代码了
再配合通过聊项目就能大概知道对方的知识储备。如果算法占主导的话,那要面试这个流程干嘛呢?
面试官正常来说是有培训的,通过问什么问题怎么问才能快速了解对方都是有方法论的。
现在只不过是图省事罢了

其实如果要说通过算法考察智商和勤奋的话,各行各业也应该效仿考一些智力测验题,一个作用只是不通过代码呈现而已。
反观产品经理,运营,销售,财务,为什么他们跳槽都是凭资历,面试过程就是聊聊天就能涨薪 30%以上,程序员就得考智力评努力?

说到底这就说明了内卷是不正常的行为,并不是筛选人才冠冕堂皇的借口。
afx
2021-06-25 09:44:10 +08:00
算法还是要考的,一台电脑装的软件再多也需要测试一下 cpu 的能力行不行。
JerryCha
2021-06-25 09:47:01 +08:00
算法肯定要问,毕竟你没遇到过一个排序算法都写不出的人

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

https://www.v2ex.com/t/785603

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

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

© 2021 V2EX