我觉得程序员里面有很多典型的“二选一”思维,比如:“哪种编程语言好”(“Node 不行换 Go 吧”)、“你不是 PHP 程序员吗,现在怎么写 Java 了”诸如此类。刚才又看到面试要不要考算法题的讨论。

就来说说“面试要不要考算法题”。

许许多多大大小小的公司,招程序员基本都是用在 CRUD 相关的业务上,XX 管理系统,XX 小程序,XX App,这种业务一写就是十几年、几十年,基本跟什么高深算法绝缘,你考嘛算法题呀?你该多看看他工程实践能力,看他框架用得好不好,看他代码组织能力,看他对同类业务的理解及趟过什么坑。你如果说既要招工程牛逼的又要他算法也牛逼,那也就没话说了,一般公司都会发现,你要招出色的程序员,会比较困难,等你招到,业务已长毛。

啥情况下考算法题?需要大量涉及算法的岗位自是不用说。刚从软工、计应毕业出来的,工程能力几乎苍白,你没法考,那就多考点刚学过的也应该还没忘的,至少能分辨出你是不是老逃课。还有比如“老紫的厂牛逼钱多,不愁优秀程序员不主动投怀送抱”的,好的程序员挑花眼,这时候就把考核上限抬高,附加题多出点。“你给老紫写个翻转二叉树粗来再分别来个前中后序遍历,做完还有个层序遍历”,保你能够做选择。那些刷掉的就会认为算法很重要,然后一堆要进这个厂的人就会去狂刷题。

刷题牛逼并不代表你真的牛逼,其实也就是说刷题这时候算不算是某种意义上的“作弊”呢?太过追求仪式感,“没有考算法那算哪门子面试呢”,长期无脑选择其实对团队和企业的用人并不利。

“二选一”思维其实就是盲人摸象,很多人奉行的是“一就是一,二就是二”,思维根深蒂固。还有技术外的因素,当然这就是另外一回事情了。
展开
评论