大家好,我是程序员陶朱公。
最近在逛
知乎时,看到一个提问:
为什么有人说弄懂了《算法导论》的 90%,就超越了 90%的程序员?
今天,我们就这个话题一起来做个讨论。
我的回答:
首先不得不承认,从计算机经典书籍的排行,这本书籍绝对算是超经典的存在。
它深入浅出地介绍了算法设计、分析以及多种经典算法方面的知识。从基础的数据结构和算法到高级主题如计算复杂性理论等都有深入的讲解、剥析。
但,是否就像今天提问的小哥所说的那样:
弄懂了《算法导论》的 90%,就超越了 90%的程序员呢?不知道屏幕前的你,是怎么看待这个观点的,欢迎大家把各自的观点,在评论区输出,参与讨论...
那作为一个拥有多年编程经验的程序员,曾经也对《算法导论》这本书有过一定程度的研究,今天我来发表一下自己的几点拙见与思考,希望大家喜欢。
我的观点认为,这个说法有点
以偏概全
的味道。
怎么说?
我认为深入研究透这本书籍的内容,有两个点对我们程序员蛮有作用的:
第一、
面试
:如果你将来有打算面大厂的开发岗,那起码算法是其中一关,精通这本书的内容,刷Leetcode你不会感到吃力,可以往较难的级别去迈进,国内的互联网公司的算法题,对你来说,基本没问题。第二、
将来的岗位
:
当然如果你将来从事的是面向
“
业务智能
”
领域
方向的工作,更是避不开算法这块。
关于业务智能:这个层次的小伙伴一边需要掌握比如搜索算法、推荐算法、预测、统计、机器学习、图像识别等技术。
但是,我为什么刚又重点强调了
以偏概全
四个字呢?因为除了上述我说的两个优势之外,其他普通程序员的工作,说句实在话,算法对你帮助确实不大。
我曾经在我的公众号文章中分享过,程序员的岗位分三个类型:
一个是面向业务功能开发;一个是面向业务性能开发;还有一个是面向业务智能开发。
如果从这样的分类来看,那么我认为至少60%的程序员,精通算法对他们的工作并无特别大的毗益。
面向业务功能
开发
:平时做的绝大多数的活是写CRUD的需求翻译的工作。工作强调的是实现业务功能需求,看重的是
需求分析、编码设计、排查问题解决问题的能力
,可以肯定的说,基本涉及不到算法。
面向
业务性能开发:
从PASS平台的角度,这个群体的人落在iPASS这一层,中间件小伙伴算其中一个的群体。
这个群体的人一般需要对诸如一些框架、中间件原理、TCP/IP、进程调度、内存管理、数据库底层原理、网络IO、分布式存储与架构等知识比较熟悉、了解与掌握,要求就比做业务开发的同学要高了,是公司稳定性保障的担当,是公司最后一道“防火墙”。但,
你要说需要精通算法吗?答案是NO,顶多了解即可。
面向业务智能开发:
不用多说,理解与深入掌握这块,是基本功要求,没什么好说的。
算法同学,本身入门的门槛就很高(学历与专业知识),他们对数学这块就有一定程度的要求,对数据结构与算法这门学科也需要有一定程度的深入理解。
平时做什么推荐系统啊或各种大小模型训练啊,参数调优啊,算法是基本功。
OK,今天的分享先到这里,接下来分享两则我们可爱的知友对于这个问题的精彩答复,一个比一个精彩,一定看到最后哦。
知友作答:
回答一:
回答二: