`

老生常谈:面试算法有必要吗?

 
阅读更多

声明:虽然发表在愚人节,但是文章内容很严肃。

前几天在知乎有人问“作为一名做 Web 开发的 Java 工程师,算法在工作中基本不怎么用到,但为什么面试总会问算法的问题?”, 原文地址: http://www.zhihu.com/question/20887109

我工作也有四五个年头了,个人觉得算法在工作中基本不怎么用到, 也可能是因为我工作内容的原因,我主要做web开发,请问大家对这个问题怎么看?

作为一名面试官,我很少面试语言的细节,这些都是可以通过看书或者手册学习到的。 我比较喜欢看应聘者解决问题的能力

原文太长,就不贴出来了。 一次关于浮点数的面试

很多毕业生都把计算机学成了文科,他们不是在学习理论知识,而是被动接受/背诵记忆这些知识。 他们来公司,编程只是他们的工作而已,聘用他们的真正目的是解决问题,用程序解决很多人共性的问题。

我面试时,他们可以使用任何工具甚至Google,当然,我出的题目一般都不能直接个Google到, 虽然网上没有现成的答案,但是可以总结出答案。 我的观点是,如果你的任何问题都可以用Google直接解决, 你不可能成为一名特别优秀的程序员。

你搜索到的是数据,即使你保存在了evernote,说白了就是01串, 你阅读了,思考了,这些数据就变成了信息,0101010…11101 变成了 int a = 4; 你再继续思考,使用,深化,这些信息就变成了知识。 你会说:『哦,这不是李氏代换原则吗?咦,这不就是工厂模式吗?』

数据 --> 信息 --> 知识。

最后重申一下: 学历代表过去,能力代表现在,学习能力代表将来

31
14
分享到:
评论
14 楼 zpyzly 2015-03-25  
学习能力考查确实最重要,但是开发软件的时候,解决问题的能力都只是体现在算法上吗?

设计能力、软件工程思想至少不比算法低级吧?为什么在面试中得不到重视?是不是因为设计题比算法题难找、难出?重要的东西,但是因为题难出就不出了,这就是现在面试的思路!

拿建筑作比方,算法相当于力学,而软件工程、设计就相当于建筑设计、建筑学,力学家和建筑设计师是两个职业,而在软件开发领域,这两个角色被混为一谈,真的是软件业的可悲!
13 楼 我最爱刘 2013-09-09  
学历代表过去,能力代表现在,学习能力代表将来 非常有道理
12 楼 花的世界 2013-05-10  
11 楼 hyj1254 2013-04-20  
算法不行确实不能胜任相关领域的工作,既然做这块儿,就要做精。但仅以算法行不行来判断一个程序员是否优秀,则有失偏颇。仅以它来检测一个程序员头脑是否灵活也很勉强。
10 楼 domore 2013-04-19  
赞一下这句 ,学历代表过去,能力代表现在,学习能力代表将来
9 楼 z773171880 2013-04-16  
8 楼 whfish 2013-04-15  
学历代表过去,能力代表现在,学习能力代表将来
7 楼 lixin3811 2013-04-04  
赞同楼主和楼下,有一点小意见:本文内容跟标题有点脱节。就标题所问而言,个人回答:如果面试中涉及到的算法纯粹是为了考察应聘者的算法知识,那么说明面试官是个书呆子。但是如果完全不面试有关算法的内容,是否也会让面试者缺乏比较,毕竟,如果面试的内容都是记忆力考察,或许该职位就是为了纯粹的‘写’代码。
6 楼 Hawods 2013-04-03  
jsjzsl 写道
说的很有道理的;
但是要求别人成为更优秀的人,对你自身并没有好处,因为
1.一个真正优秀的人需要更多的MONEY来支持,否则免谈;
2.当一个人成为优秀人才的时候,也是他将远离你的时候,企业能驾驭的只能是一个人的成长期;
3.优秀的人才,几乎都可能是原创者,也就是他们都可能会自创公司,自己当老板,早晚都会离你而去,他们甚至可能你强有力的竞争对手。

1.如果一个真正优秀的人真正能值更多的Money,那为什么你不愿意出那么多?这样就是在赶走他;
2.如果一个人变得足够优秀之后要离开企业,那多半是这个企业不能再提供给他合适的发展平台,跳槽成本还是挺高的,如果你不进步,当然不能指望靠阻止其他人进步来保持稳定;
3.生于忧患,死于安乐。因为害怕培养出竞争者而拒绝培养人才,无异于饮鸩止渴。
其实这位朋友说的还是很现实的,但是事情都有两面性,个人觉得积极培养人才的好处多于坏处。只是国内企业貌似抱有这样想法的很多,可能这也是国内程序猿基数大而优秀人才少的原因之一。
5 楼 haohao-xuexi02 2013-04-02  
artdialog 写道
学历代表过去,能力代表现在,学习能力代表将来

4 楼 jsjzsl 2013-04-01  
说的很有道理的;
但是要求别人成为更优秀的人,对你自身并没有好处,因为
1.一个真正优秀的人需要更多的MONEY来支持,否则免谈;
2.当一个人成为优秀人才的时候,也是他将远离你的时候,企业能驾驭的只能是一个人的成长期;
3.优秀的人才,几乎都可能是原创者,也就是他们都可能会自创公司,自己当老板,早晚都会离你而去,他们甚至可能你强有力的竞争对手。
3 楼 coffeescript 2013-04-01  
此文不顶,对不起国家,对不起D。
2 楼 nodejs 2013-04-01  
受教了。
1 楼 artdialog 2013-04-01  
学历代表过去,能力代表现在,学习能力代表将来

相关推荐

    Mysql数据库不会优化?面试一直尬聊?这篇文章带你解开疑惑

    数据库优化是一个老生常谈的问题,刚入门的小白或者工作N年的光头对这个问题应该都不陌生,你要面试一个中高级工程师那么他就想”哥俩好”一样那么粘,面试官肯定会问这个问题,这篇文章我们就和它哥俩好!...

    当阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单

    昨天有个小伙伴去阿里面试实习生岗位,面试官问他了一个老生常谈的问题:你说一说 Java 创建线程都有哪些方式? 这哥们心中窃喜,这个老生常谈的问题早已背的滚瓜烂熟,于是很流利的说了出来。 Java 创建线程有两种...

    Python使用Dijkstra算法实现求解图中最短路径距离问题详解

    这里要做的是Dijkstra算法,与Floyd算法类似,二者的用途均为求解最短路径距离,在图中有着广泛的应用,二者的原理都是老生常谈了,毕竟本科学习数据结构的同学是不可能不学习这两个算法的,所以在这里我也不再累赘...

    深入剖析Java中的装箱和拆箱

    自动装箱和拆箱问题是Java中一个老生常谈的问题了,我们来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。  以下是本文的目录大纲:...

    老生常谈java垃圾回收算法(必看篇)

    下面小编就为大家带来一篇老生常谈java垃圾回收算法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    C#,深度好文,精致好码,文本对比(Text Compare)算法与源代码

    文本比较算法也是一个老生常谈的话题。 文本比较的核心就是比较两个给定的文本(可以是字节流等)之间的差异。目前,主流的比较文本之间的差异主要有两大类。一类是基于编辑距离(Edit Distance)的,例如LD算法。一...

    加速人生图文使用教程:电脑卡怎么办?加速人生全面提速电脑.zip

     相信不少人都为电脑开机速度慢而着急过,开机速度慢主要有个方面的原因,一是桌面上摆放的文件过多,系统读取需要时间。这个问题的解决方法很简单,就是收拾整理好不常用的文件,尽量避免堆积在桌面上。另一方面,...

    老生常谈外链 站长要做到对症下药.pps

    老生常谈外链 站长要做到对症下药.pps

    Java面试资料,一套带走

    Java面试资料,其中包括【Java基础】、【集合】、【序列化】、【线程】、【计算机网络】、【异常】、【反射】、【数据库】、【前端】、【各种框架】、【消息队列】、【项目】等,其中有的是老生常谈,但更多的是干货...

    面试官提问之CSS如何实现固定宽高比

    对于这个问题,你可能还没有过相关需求,或者还没有在面试的时候被问到过,但是歪马相信你终将有需要。 这个问题说起来也是老生常谈,歪马今天再次提起也是希望有朝一日当你被问到的时候,能够答得漂亮。 如果有一天...

    Java面试-讲一讲什么是Java内存模型

    Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到。但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着。 这是一个比较开放的题目,面试官主要想考察的是对Java...

    在nuxt中使用路由重定向的实例

    我们都知道,在写SPA的时候,我们可以通过配置vue-router来实现路由的重定向。 官方文档(以及ts类型)的定义中给出了这一...这些都是老生常谈了。 然而,到了SSR的环境下,如果使用nuxt,因为nuxt采用了约定大于配置的

    老生常谈PHP中的数据结构:DS扩展

    下面小编就为大家带来一篇老生常谈PHP中的数据结构:DS扩展。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    老生常谈Log4j和Log4j2的区别(推荐)

    下面小编就为大家带来老生常谈Log4j和Log4j2的区别(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    构建高效的python requests长连接池详解

    老生常谈: python下的httpclient库哪个最好用? 我想大多数人还是会选择requests库的。原因么?也就是简单,易用! 如何蛋疼的构建reqeusts的短连接请求: python requests库默认就是长连接的 (http 1.1, Connection...

    电子技术的老生常谈——接地.pdf

    接地是电路设计中最基础的内容,但又是几乎没人说得清的,几乎每次的培训和交流都会有人问到“老师,有没有一种通用的接地方法 可以参考啊?”如果想知道这个问题的答案,请继续耐着性子读下去。

    重构:改善既有代码的设计

    当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与...

    MATLAB中模拟退火解决旅行商问题.zip

    旅行商问题是一个老生常谈的问题,对于这类问题的解决方法也太多太多了,在这里只提供一种模拟退火的智能算法来解决旅行商问题。

    String s = new String(” a “) 到底产生几个对象?

    老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”...

Global site tag (gtag.js) - Google Analytics