V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ranxx
V2EX  ›  程序员

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

  •  
  •   ranxx · 2021-06-24 18:35:23 +08:00 · 12962 次点击
    这是一个创建于 1282 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    你怎么看这种风气?

    113 条回复    2022-04-13 14:55:24 +08:00
    1  2  
    ifsclimbing
        1
    ifsclimbing  
       2021-06-24 18:44:00 +08:00
    提升自己
    xupefei
        2
    xupefei  
       2021-06-24 18:46:17 +08:00 via iPhone   ❤️ 11
    我不喜欢,但是我认为没有更好的测试手段。
    Rache1
        3
    Rache1  
       2021-06-24 18:47:49 +08:00
    有同样的感觉,曾经有段时间,各大社区的首页全部都是面经,个人比较抵触这种无用功的行为,虽然部分内容确实有用,但是这种方式,个人不喜欢。
    jenlors
        4
    jenlors  
       2021-06-24 18:48:50 +08:00
    类似应试教育
    yangzhezjgs
        5
    yangzhezjgs  
       2021-06-24 18:50:16 +08:00
    只能适应
    michaelcheng
        6
    michaelcheng  
       2021-06-24 19:00:47 +08:00
    很无奈,但又不得不加入其中
    offswitch
        7
    offswitch  
       2021-06-24 19:05:02 +08:00
    毕业-3 年会考,之后就没考。
    NewYear
        8
    NewYear  
       2021-06-24 19:20:23 +08:00   ❤️ 1
    把面试题换成“工作上用得到的相关技术、方法”就行了。

    这样即便是“背题”,也背的是有用的题目,不会说为了背题而背题,导致学到的都是“面试专用知识点”
    ReferenceE
        9
    ReferenceE  
       2021-06-24 19:23:00 +08:00 via Android
    应试教育在我国特色国情下开枝散叶的伟大创新
    uselessVisitor
        10
    uselessVisitor  
       2021-06-24 19:24:34 +08:00
    最后的最后就会变成韩国三星那样
    jonathanchoo
        11
    jonathanchoo  
       2021-06-24 19:25:09 +08:00
    对于大多数的开发场景,大家都能胜任,那么区别在哪里,通过算法筛选智商,没毛病啊
    tin3w5
        12
    tin3w5  
       2021-06-24 19:26:04 +08:00   ❤️ 13
    开发面试考算法算啥?作为一个运维,之前某次面试还被考了算法,刚好当时被前公司同事一个劲的夺命连环 call 搞的心情很差,再加上当时已经面了第五轮了,已经彻底绷不住了。

    于是当场发飙,直击灵魂的询问考官此题的目的——对运维而言,写 code 是为了方便自己和 teammate,能实现功能就好,你要我写算法、优化效率的目的是什么?难道是要拿我们写的工具出去卖钱吗?

    面试官一时语塞,最后无奈说出了实情——原本的面试官在开会,先找个开发 team 的同事顶一下……😂

    怎么说呢,这种东西属于应试教育的遗毒,试想一下,你中考、高考被考到的内容,有几个现在工作或生活中能用得上?就算有估计一只手可以数得过来。

    公司招人的目的是以创造价值为主,试问现在有多少企业内卷学历的要求都卡到硕士、博士了?难道这些工作本科、大专做不了?不见然吧!我毕业前的时候认识一个十七岁的辍学高中生,在培训机构当 Cisco 和 Redhat 培训中心的讲师,2007 年拿下的 CCIE 。

    说的直白点,很多企业无法是感觉自己有点名气了,想要通过这种方式装个 13 或者面试你的人本就是这么进来的。不过事实证明,这些企业无一例外都在走下坡路(真正需要用到算法的团队除外)。

    面试本就是双向选择的过场,我不知道你这次的岗位是真的需要算法,还是考官想装个 13 、或是考官本就是想看看你对这方面的掌握程度,亦或者是你和我一样,遇到了考官临时有事让别人顶一下(这种情况好像还比较常见的)……总之找一个你自己喜欢的、呆着顺心的公司工作就好了,不然为什么不去考公务员呢?
    EPr2hh6LADQWqRVH
        13
    EPr2hh6LADQWqRVH  
       2021-06-24 19:42:32 +08:00   ❤️ 10
    现在这种考法纯粹侮辱智商,你考算法麻烦考一个一般人没听过的,没法准备和背题的,你这考的是算法和智力,

    你上来就考一个背题的,实际是对不背题的人不公平,
    最后实际做的是服从度筛选,筛选服从度高的,适用潜规则的

    我这问题原样返回来问你,你能答出来吗?


    多行不义必自毙,自己侮辱别人智商,自己换工作的时候也得被人侮辱智商。


    你要找不到没听过的,麻烦也考一个实际有机会用到的,需要拓展和发挥,能够聊起来的,
    比如设计一个 ID 结构啥的,能讲出道理有深度的

    面试最好做到双方都有收获,

    别弄得对面献上鄙视
    asanelder
        14
    asanelder  
       2021-06-24 20:02:07 +08:00
    @avastms #13 面试官的也是人啊, 水平也不高啊, 很有可能当年就是背进来的呀.

    你整个一般人没听过的, 虽然是考面试者的智力, 但很大可能, 面试官他也不懂啊~~~

    如果老老实实背算法, 起码说明这人听话, 认可潜规则.

    反而对这种考察方式提出质疑的, 很有可能不是那么听话的...
    agagega
        15
    agagega  
       2021-06-24 20:04:37 +08:00 via iPhone
    考算法至少是一个「听起来有那么点道理」的考核方式。那些问应届生甚至实习生什么高并发,上千万用户怎么改进架构之类的,还不如考算法呢。
    blindie
        16
    blindie  
       2021-06-24 20:17:16 +08:00
    相比八股文 我还是喜欢考算法。
    mxT52CRuqR6o5
        17
    mxT52CRuqR6o5  
       2021-06-24 20:19:31 +08:00 via Android
    国外不 996 的那些公司不一样考算法
    mxT52CRuqR6o5
        18
    mxT52CRuqR6o5  
       2021-06-24 20:21:47 +08:00 via Android
    至于 [背会了面经,就能搞好软件开发,实际上还差得远] 我认为是程序员这个职位的天生特性,我不认为可以有一个简单的方法能够准确率很高的考察出一个程序员的真是编码水平
    cxshun
        19
    cxshun  
       2021-06-24 20:23:00 +08:00   ❤️ 3
    @offswitch 你可以试试现在出去随便找一下一线互联网公司,BAT,TMD 之类的,研发岗如果有不问算法的就可以偷笑的,80%以上的面试现在基本上都要问算法。

    我作为一个工作 10 年的人,我去面试架构师和技术主管,也问了算法,反正是服了。

    其实说到底就是面试官懒,算法是一个比较低成本面试的办法,毕竟有题库啊。你要是问一下开放问题,比如项目中遇到的一些问题,解决方案就比较多了,有可能面试官他自己没想到那种方案,他也不懂。所以开放性的问题很考面试官能力,而这种算法题就可以非常好的解决这种问题。
    yompc
        20
    yompc  
       2021-06-24 20:27:42 +08:00 via iPhone   ❤️ 2
    反问出题的最基础的问题比如 float 占几个字节是几位的,System.out.println 是怎么实现的,绝对 99%答不出,羞辱一下
    jorneyr
        21
    jorneyr  
       2021-06-24 20:39:38 +08:00   ❤️ 1
    已经遇到过不少次,算法不好的同事解决不了的问题。
    janus77
        22
    janus77  
       2021-06-24 21:03:08 +08:00   ❤️ 11
    不算冷的冷知识 考算法不是国内发明的 一开始是谷歌等大厂发明的
    国内也只是大厂会考而已 小公司也不考或者只考一些基本的(排序 二分什么的)
    所以不是算法=卷,而是你想进大厂=卷。
    786375312123
        23
    786375312123  
       2021-06-24 21:05:30 +08:00
    讲道理,刷题对我的提升挺大的
    offswitch
        24
    offswitch  
       2021-06-24 21:19:04 +08:00
    @cxshun 没去大厂,一直在中小公司晃悠,工资比在大厂的同学少个 10w,不过 965 。今年面试,碰到的基本就是业务流程,工作细节,以及各种技术细节,算法倒是没考。
    就是因为大厂要准备算法,而且还要背八股文,平时面试都是裸面,背八股文、刷算法简直难为人,工作上用到算法,一般都是算法那边写好算法定义,我这边实现。
    开放性问题确实考验人的能力,主要是很多面试官不想听面试者的业务或者面试者讲不清楚听了也不明白。感觉比较好的面试就是先讲解清楚自己的业务流程,然后一点点往下挖,八股文上的东西很多真用不上,或者跟实际工作有差距。
    lightjiao
        25
    lightjiao  
       2021-06-24 21:22:58 +08:00 via iPhone
    讲道理,刷一些 easy 和 medium 题对工作帮助蛮大的
    penghong
        26
    penghong  
       2021-06-24 21:42:07 +08:00   ❤️ 12
    别学个词就在这用,考算法这个风气还是从国外传过来的好吧,国外 FB,Google,微软初中级招聘基本就是做题,而且还做好多轮,退一万步,不考算法,考什么?这么说吧,一个人算法玩的 6,那么他聪明和勤奋肯定会占一个,这样的人招进来肯定没有什么大问题。
    fukongqi
        27
    fukongqi  
       2021-06-24 22:23:32 +08:00
    我是做稀疏计算的 不考算法面试就没问题问了,面 100 个人才可能有一个做过稀疏的
    chendl111
        28
    chendl111  
       2021-06-24 22:32:53 +08:00
    算法基本 leetcode100 题就能搞定,除非是头条这种专门考算法的,也不算难吧
    ericls
        29
    ericls  
       2021-06-24 22:46:58 +08:00   ❤️ 1
    考算法可以,但是只能占一小部分

    很多人说不考算法没有简单的办法测试水平了,但是招人从来就不是一个简单的活,也不应该是一个简单的活!

    大部分招过人然后自己又带过的,肯定有同感。两个算法水平一样的人,工作起来区别可以非常非常非常大。

    以下几个方面是我现在能想到的个人比较看重的除了算法以外的东西:

    1. 对问题的分析,看他是遇到问题先研究问题还是直接就去工具库里找工具。 实际问题和算法问的问题最大的区别是一个是新的,case by case 的问题,一个是死的,已知的问题。
    2. Side project
    3. 对细节的把控
    4. 对简历上有经验的,可以问问踩过的坑,能把踩过的坑说清楚的,经验肯定是真的
    5. 有没有低三下四,阿谀奉承,耍小聪明。这些将来沟通 100% 出问题
    6. 对公司产品的看法,如果别的都差不多,肯定选对产品要解决的问题更感兴趣,有热情的。
    ericls
        30
    ericls  
       2021-06-24 22:56:23 +08:00
    对于刷题的,其实有一个问题可以问
    你问他:你第一次提交答案之前,会不会自己手动把能想到的 test case 先试一遍确保无误了在提交。回答“是”的,基本上可以拜拜了
    NeroKamin
        31
    NeroKamin  
       2021-06-24 23:02:13 +08:00
    @ericls 为啥不能试呢?
    ericls
        32
    ericls  
       2021-06-24 23:22:34 +08:00
    @NeroKamin
    第一次提交之前去自己想 test case,为的是什么呢?

    如果是为了找到 edge case 的话 很明显:
    1. 直接提交让电脑告诉你答案更为高效
    2. 如果很自信自己找到 edge case 的能力,更应该直接提交

    所以,很明显在第一次提交之前 测试 test case,根本就不是为了找到 edge case 从而解决问题。而是为了满足 觉得自己很聪明 这个欲望,或者避免,”哎呀,我又错了” 这种情绪。这种情绪在学校很常见,因为会有教授什么的,出来给你扣分,但是在实际工作中,这种情绪只有负面作用。 作为程序员,你应该知道电脑跑代码通常比人快,应该让电脑成为你的工具帮你解决问题而不是反过来让自己去取悦电脑。

    一个高效的开发:
    研究问题
    解决问题
    解决不了
    找下一个解法,问同事,问 Google

    一个低效的开发:
    研究问题
    解决问题
    解决不了
    花 30 分钟:哎呀,我好笨,我是不是该转行,要不要问问同事?还是 Google 一下吧。。这个问题好像很弱智?
    再花 30 分钟:我靠,这个代码太屎了,我靠竟然是我 lead 写的,是改还是不改呢?要不要跳槽啊?
    好像还是得做,去找下一个解法吧。。
    gadsavesme
        33
    gadsavesme  
       2021-06-24 23:31:27 +08:00
    没办法太卷了就是一种筛选手段,不过一堆 diss 刷算法的也是醉了,别的不说,两个别的条件一样的人,我绝逼选算法好的,算法好各种一遍过,代码的鲁棒性,边界值的思考不比你不刷的强的多?一堆不刷算法的以为刷算法就是靠硬背,就是工作用不到。经常刷的多少能在工作中体会到还是有提升的。
    ericls
        34
    ericls  
       2021-06-24 23:37:12 +08:00 via iPhone
    @gadsavesme 是的 还是有很多相通的地方。 一年不刷题 如果在工作中有所提升 也会发现刷题简单很多
    ericls
        35
    ericls  
       2021-06-24 23:38:51 +08:00 via iPhone
    也有很多从来不刷题的人 做复杂的算法也不错的
    medivh
        36
    medivh  
       2021-06-25 01:41:42 +08:00   ❤️ 15
    考算法题给了小厂出身的、转行的程序员一个和大厂程序员同台竞技的机会。

    不考算法(或者美国这边流行的系统设计题和在线 debug 题)而只聊项目的话,等于承认了平台赋予的经验大于个人能力,这是不公平的,且会造成大厂近亲繁殖。
    charlie21
        37
    charlie21  
       2021-06-25 01:42:48 +08:00
    那你说考什么吧,难道考四十分钟之内谁吃猪肉卷吃得多么,你是在招加菲猫么

    爱情来得快去得也快,只有猪肉卷是永恒的。
    加菲猫肯定不是为猪肉卷而生,但猪肉卷一定是为加菲猫而生。
    加菲猫要有了三个愿望:“第一个是要猪肉卷,第二个还是猪肉卷,第三个,哦,你错啦,我想要更多的愿望,那样我就能得到更多的猪肉卷啦。”
    最可爱的东西莫过于一张放着猪肉卷的小桌子
    msg7086
        38
    msg7086  
       2021-06-25 02:04:05 +08:00   ❤️ 1
    面试一般四块,项目经验,行为,算法,设计。

    恕我直言,算法是最简单的部分。我去亚麻之类的店面试,基本都是 LC 的 Easy 题,撑死到 Medium,看的一般不是你能解决多难的面试,而是看随便交给你一个简单的开发任务以后你能不能在很短的时间内实现出来。
    如果给你一个简单题你在那磨磨唧唧半天出不了代码,那难道你在工作岗位上就能出代码了吗。

    当然这是最基本的要求。往上还有设计题,还有行为题,还要聊之前的项目。这些要比写算法难多了。
    johnsona
        39
    johnsona  
       2021-06-25 02:14:44 +08:00 via iPhone
    算法有用

    尤其在处理数据的时候 感觉就是数据结构加算法

    当然 ifelse curd call api 感觉也没啥区分度
    zhjy23212
        40
    zhjy23212  
       2021-06-25 02:30:00 +08:00
    服从性测试
    支持中低难度,再高了真的就是军备竞赛,面了三次 google 真是肉眼可见的难度年年提高
    想通了,不陪他们玩了
    AntiGameZ
        41
    AntiGameZ  
       2021-06-25 04:20:16 +08:00
    考算法不等于考背题。不错,肯定是有公司和面试官就希望你 45 分钟秒两道 hard,但这不是普遍现象。

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

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

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

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

    -

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

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

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

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

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

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

    说到底这就说明了内卷是不正常的行为,并不是筛选人才冠冕堂皇的借口。
    afx
        59
    afx  
       2021-06-25 09:44:10 +08:00
    算法还是要考的,一台电脑装的软件再多也需要测试一下 cpu 的能力行不行。
    JerryCha
        60
    JerryCha  
       2021-06-25 09:47:01 +08:00
    算法肯定要问,毕竟你没遇到过一个排序算法都写不出的人
    hhjswf
        61
    hhjswf  
       2021-06-25 09:50:59 +08:00
    算法挺好的,比卷八股文强多了
    wangxin13g
        62
    wangxin13g  
       2021-06-25 09:53:40 +08:00
    看楼里各种说法一度以为万恶的 leetCode 是应对中国市场做出来的

    算法题可以有,但是专门整 hard 级别的纯粹就是恶心人了

    个人看法是适当的算法题可以筛掉不少混子。
    huifer
        63
    huifer  
       2021-06-25 09:56:39 +08:00
    想要背能背不出?
    pkoukk
        64
    pkoukk  
       2021-06-25 09:59:13 +08:00
    @wangxin13g
    我也觉得。一道 easy 热身一道 midium 看思路的方法挺好的。
    但是现在都是 medium 起手,hard 垫底。面试时间就那么点,讲真要不是背过的题谁能做这么快。
    anzerwall
        65
    anzerwall  
       2021-06-25 10:01:47 +08:00
    @ericls 那可能对 ACM 选手不友好,在 ACM 或者 OI 场景提交错误是有惩罚的,习惯性思考 edge case 是习惯,有些比赛还存在 hack 的情况,就是给别人提交的答案想 edge case 使其变为错误答案
    fewok
        66
    fewok  
       2021-06-25 10:06:37 +08:00
    客观点,各位觉得刷题,背题后还缺少什么? ?把这缺少的补上不就可以了。
    tmackan
        67
    tmackan  
       2021-06-25 10:10:47 +08:00
    算法复杂度分析,你得会把???
    gy0624ww
        68
    gy0624ww  
       2021-06-25 10:11:17 +08:00
    补充一点,胜任工作之外,大家希望找的是能一起愉快共事的人,愉快共事就会产生融洽的工作氛围,产生效益的概率就更大,毕竟 happy coding
    这是最主要的。这也是大家所说的面试靠缘分。越大的厂越注重算法,你工作可控的东西越少,你入职之后能翻多大的浪花?这差不多就是个悖论。反观小公司才需要极具创新力,减少成本,提高效率。对大厂就是人才的浪费,人才的垄断。
    其实现在北上广深就是这样的,就像大厂,资源好,福利好,集中高端人才。从而导致人丁过剩,提高生活成本,房价啊上学啊什么的。然后其他地方,自己的老家无人来建设,发展缓慢,新生力量缺失。
    NeroKamin
        69
    NeroKamin  
       2021-06-25 10:25:22 +08:00
    @ericls 不试 edge case 的话,WA 不是会有惩罚吗
    halden
        70
    halden  
       2021-06-25 10:35:23 +08:00   ❤️ 2
    我面人从来不问算法,没意义,很难评估这个人能够给公司产生的价值。算法有点像经济学里的各种模型,学术界 yy 出来的东西,把现实中的事情简化成一个可以量化或者逻辑推导的程序,有价值但是只有参考意义,你可以拿来发论文但在现实社会中分分钟被打死。

    反而是实战经验,比如技术栈、项目工程化、遇到以及解决过的问题、解决问题的方式更重要。这一条线问下来能够回答得好的一定是实打实做过项目的人,招过来马上就能用。算法?那么多学术界做出来现成的东西,你能看懂会用就行了,没必要自己搞一套出来,我这里不是学校也不是科研机构,不想花这么多时间和精力培养人才。这点我和很多大学教授讨论过,高校教育和企业需求越来越脱节,然而为了达到毕业条件只能脱节,于是形成了当今的局面。

    没错我这个理解可以被认为是卷,因为对社会而言此番操作如寄生虫一般不会产生“创新”的东西只是不断消耗现有的生产资料,而对公司而言则是效率高的体现,这是商业模式决定的。假如说我作为一个在业界已经独善其身的公司,有着充分的现金流,达到寡头垄断及以上的市场地位,这种公司想要进一步垄断市场形成绝对垄断,才有资本去做创新的事情。异或说我作为在学校或者科研机构,能够以足够低的成本拿到钱来创新,然后推动商业化。
    Felldeadbird
        71
    Felldeadbird  
       2021-06-25 10:39:38 +08:00
    只问算法只能说面试官不专业啊。问完基础,再来几道实际业务的扩展题。
    loryyang
        72
    loryyang  
       2021-06-25 10:43:02 +08:00
    这特么不就高考刷题嘛,本质上就是筛选聪明、能吃苦、学习能力强的人,虽然有偏差,但是没有更好的办法
    最后,我想说如果你想做得好,那些基础的算法理论就是要融会贯通
    举个最朴实的例子,你总得知道什么时候用 set,什么时候用 list 吧,这不就是最基础的算法嘛
    ericls
        73
    ericls  
       2021-06-25 10:44:38 +08:00 via iPhone
    @anzerwall 竞赛和工作是不一样的游戏 就像极品飞车和马里奥赛车 不要把一个游戏的技巧复制到另一个游戏 也不要假设一个游戏玩的好的人就能把另一个游戏玩好
    littlewing
        74
    littlewing  
       2021-06-25 10:45:12 +08:00
    因为工作只需要你拧螺丝,但是能拧螺丝的人太多了,只能找个方法筛选一下人
    ericls
        75
    ericls  
       2021-06-25 10:50:25 +08:00 via iPhone
    @NeroKamin 如果 WA 扣分的话 那就跟实际工作差太多了 所要达到的目的完全不一样 不是一样的游戏 WA 扣分也不利于成长
    xrr2016
        76
    xrr2016  
       2021-06-25 11:17:08 +08:00
    为何不能考算法,考算法起码是一个公平的方法。
    huruwo
        77
    huruwo  
       2021-06-25 11:36:10 +08:00
    我喜欢考算法 我喜欢算法
    crclz
        78
    crclz  
       2021-06-25 11:43:54 +08:00
    虽然我挺厌恶靠算法题这种制度的,但是不得不说考算法题已经形成一个 convention 。

    所谓 convention,即:算法题成为一个大家公认的准备方向。企业都考算法题,面试者都去准备算法题。这样,就可以筛选掉那些混子。

    如果没有这个 convention,那么面试者就会找不到方向准备。一部分公司考智商测试,另一部分考数学题。如果这样,那么就给了混子可乘之机。就好比高考题不出考纲。

    当然,如果没有算法题,也许会出现另外主导市场的 convention,例如 java 八股文。但是八股文和算法比起来就更不科学了。


    那你说,有没有其他方法筛选掉混子?其实是有的。例如说实习。实习的面试可能会比正式招聘的面试少一轮技术面。那么实习就等于通过日常工作表现筛选掉混子,是更加科学的方法。

    但是,不可能每一个应聘者都去实习,这样公司规模顶不住。并且,一部分优秀的员工想要尽早成为正式员工,尽早获得稳定保障,那么这一部分人是不愿意走实习-转正这条路的。面试在这里就起到了吸引这一部分人才的作用。


    以上就是我站在商业公司的角度来理解考算法这件事情。
    cnbattle
        79
    cnbattle  
       2021-06-25 11:58:37 +08:00
    模拟业务需求,上机实操,根据实操代码聊
    EPr2hh6LADQWqRVH
        80
    EPr2hh6LADQWqRVH  
       2021-06-25 12:48:44 +08:00   ❤️ 4
    怎么还振振有词的,

    你们面试没办法有效筛选适合的人才,还有道理了?
    这也就是候选人多,老板也对这块不关注,这要是池子里人少了,或者老板关注,
    你几个 false positive,false negative 打上来,直接让你滚犊子


    怎么不按高考分数录取呢,效率更高了,考得更综合了

    高考不行也可以用 GRE 成绩啊,

    要不以后组织一个大厂联考,一年考两次?


    你考的算法不就来回就这么几种吗,数据结构相关的,几个 trick, 链表快慢指针,几个教科书上有的排序,再就是树的几个操作,Btree, 哈希表,bitmap,bloom filter,fsm, 还有更新鲜的吗?
    专业领域里面的算法,你听过吗? fft 现场给我写出来?
    不靠背靠什么?现场给你发明一个?


    先是侮辱候选人智商, 再是侮辱这些历史上的精妙算法, 这帮算法哪一个不是当年研究人员费时费力绞尽脑汁设计出来的,都以为是你做两道题一拍脑袋就特么出现了吗?


    有说法称中国的数学教育反数学,奥数是数学吗?
    看你们这个,算法面试反算法,你考那那个叫算法吗?
    iOCZ
        81
    iOCZ  
       2021-06-25 13:43:38 +08:00
    算法还是有点用的,譬如两个字符串的匹配度啥的
    jiayong2793
        82
    jiayong2793  
       2021-06-25 13:47:34 +08:00
    内卷下的最终面试题:10 分钟推导一次费马猜想
    Lemeng
        83
    Lemeng  
       2021-06-25 13:48:58 +08:00
    考算法很正常,算法都不考,才不正常
    tonytonychopper
        84
    tonytonychopper  
       2021-06-25 13:53:46 +08:00
    但凡你的题是背出来的,稍微变形一下你就懵逼了。
    另外我觉得,考算法题是没问题的,问题是很多人不会去引导候选人思考,经常就变成要么会一下 ac 要么不会直接挂掉,筛选方式变得很简单粗暴
    maplelin
        85
    maplelin  
       2021-06-25 14:04:16 +08:00
    不好,但是公平,有个标准在那里,通过或者被淘汰有理有据,至少比面试答的顺风顺水,最后来一句你跟我们公司不合适强多了。
    janxin
        86
    janxin  
       2021-06-25 14:09:15 +08:00
    面试考算法是有必要性的,当然不能脱离你实际应用场景的考。毕竟不是八股文,没必要工作中碰都碰不到的也拿出来考一遍。

    另外明牌考试范围不是从小上学就干的事情了么,这也算是公平的一种
    ericgui
        87
    ericgui  
       2021-06-25 14:15:47 +08:00
    熟练掌握算法对你开发有意义的,基本功
    dawneast
        88
    dawneast  
       2021-06-25 14:20:10 +08:00   ❤️ 1
    让人大开眼界,程序员说算法是内卷筛选的手段,匪夷所思...
    绝大多数的岗位面试算法都是常用的题目,考的无非是你的准备程度跟解决问题的思路。
    leetcode 的题目都是常用几种思路的变种组合,已经算比较基础了。
    要是应聘算法岗,难度就是另外一个 level 的了。

    你要说 Java 八股文内卷,我还能理解一些。
    k10ndike
        89
    k10ndike  
       2021-06-25 14:32:22 +08:00
    算法至少比八股文更好。算法本意是考察候选人逻辑思维能力的,结果现在变成背题大赛,只能说是变了味……
    Mrun
        90
    Mrun  
       2021-06-25 14:33:01 +08:00
    算法不考才不正常好吧,问你什么?花式写 CURD 么?
    fengpan567
        91
    fengpan567  
       2021-06-25 15:01:41 +08:00
    我也觉得算法不是特别的重要,还不如开扒底层源码
    xingzhi
        92
    xingzhi  
       2021-06-25 15:21:24 +08:00
    @ericls 同意你对手动测 edge case 的看法。 但是,实际上大厂面试跟你说的恰好相反,就是不允许你先测试运行(记事本或手写),而是要手动过 test case 。
    Carlgao
        93
    Carlgao  
       2021-06-25 15:29:50 +08:00
    有些人可能说还不如考底层源码,底层源码里就没有算法吗,要是看底层源码遇到算法了怎么办,跳过去?
    而且只有算法基本功牢固看底层源码才会觉得顺畅,要不然根本看不下去。
    fyxtc
        94
    fyxtc  
       2021-06-25 17:01:59 +08:00
    相对于算法而言,绝大多数岗位更适合考业务能力,就问做过的项目就好了
    fuchaofather
        95
    fuchaofather  
       2021-06-25 17:20:53 +08:00
    讲道理无论学习还是刷题,算法对个人提升还是有用的
    afx
        96
    afx  
       2021-06-25 17:27:37 +08:00
    七成网友支持高考取消数学
    EthanDon
        97
    EthanDon  
       2021-06-25 17:30:37 +08:00
    对于校招:不考算法考什么?项目经验?问问高数?

    对于社招:算法可以作为辅助手段,筛选一些混子,一道 easy 证明你是写过代码的,一道 medium 至少给出思路证明你是学过计算机的,这样可以过滤掉那些外强中干的混子。毕竟,作为一个合格的程序员,基础的算法都不会,还能干点啥? curd ?
    EthanDon
        98
    EthanDon  
       2021-06-25 17:34:08 +08:00
    算法真的不是内卷的筛选手段,,,算法是基本功,,,还是一种素养,,,解决问题的思路等等。。。如果有一天公司做大了,要你设计个布隆过滤器实现某个功能,你听都没听说过,怎么设计?
    redwing2003
        99
    redwing2003  
       2021-06-25 18:06:46 +08:00
    那就考反汇编吧,看面试者能理顺几层嵌套,就知道能驾驭多大的代码量。
    matatabi
        100
    matatabi  
       2021-06-25 18:36:10 +08:00
    一个职位几百人投递,用算法筛选一个最强的人也是合情合理
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 08:25 · PVG 16:25 · LAX 00:25 · JFK 03:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.