为什么有人说弄懂了《算法导论》的 90%,就超越了 90%的程序员?

发布时间:
2024-08-16 20:07
阅读量:
33

我在2015年左右离开了程序员岗去做管理,那时候在菊厂一年大概能赚70个左右,现在早就不写代码了,不过管着一群码农。我说几句,信不信由你吧。

1,这书真没啥卵用,看不看都行。我一直不理解为啥大学老师们为啥都热衷推这本书,这书最大的作用就是垫显示器。主要也是他们没上过班,不知道上班到底需要啥。

2,我在整个职业生涯里见过无数顶级程序员,包括那些刚毕业就拿到五六十万的,没人把这本书看完,甚至没几个人真看这书超过前五章,更别说什么90%了。

3,你把大学的《数据结构》前半本弄明白,够你用两辈子,数据结构的主要用途是找工作。工作几乎都是打螺丝,几乎用不到太复杂的算法。工业级代码要求的是稳定和可维护性,不是让你炫技的,写的越简单越好,最好全部写成“if,else”,将来加个新功能,或者换别人维护都容易。换人维护和迭代开发新功能又是大厂最常见的两件事,也是领导们最关心的三件事里的两件,还有一件事是钱相关的问题。

4,对程序员普遍影响很大的一本书是那个《代码大全》,这个很多人真看了好几遍,可能是所有大部头里唯一一本名声和现实相匹配的。

5,程序员大部分能力都不是在书上学的,而是一边工作一边学的,或者说工作需要啥就学啥。钻研精神,学习的激情,做事有始有终的品格,是程序员最重要的品质,我以前领导说他一眼就能看出来谁能吃这碗饭,我后来做管理,也一眼能看出来,绝大部分人根本没激情,不想干这行,也注定干不久。

6,想提升编码能力,就去大量写代码,而不是看各种学术相关的书。码农是个手艺活,也是体力活,反复练习才能形成自己的“工具包”,深刻掌握一两本编码相关的书就够了,java大全什么的,不要觉得搞笑,很多生化环材转计算机,真只练了一本书,比很多学了四年的计算机系的学生工作能力都强。我手底下有个核物理博士,能力超强,他就是只练了一本java入门到精通,把上边每个例子都认真练了两遍,功底非常扎实。现在已经是技术大拿,对技术有很高的激情和钻研精神。

7,大学时期最重要的是把代码量堆上去,培养熟练手感,会用一些常见工具,参加工作后能有“编码自信”,别一出手领导就发现你是个菜货,然后被到处踢。初期参与不了高质量项目,也就打不下好基础,后续可能水平一直都是半瓶子醋晃荡。不过最终能不能混好,跟智商关系不大,主要是对技术的激情和钻研的品格,也就是你到底想不想干这行,绝大部分人是不想的,那也没办法,他自己也说服不了他自己。

8,80%的程序员其实不能算程序员,水平差极了,当然收入也没法看。


8月13日二更。

有小伙伴问大学生应该怎么做。


当然是找本编程入门,把上边的案例,不管多简单,都认真仔细调试一下。包括注释,变量,异常抛出什么的,都认真严格操作,让自己能熟练实现那些最基础的东西,比如什么链表操作,一定要熟,今后每次面试笔试几乎都有。

一开始不要贪多贪深,把简单东西弄得扎扎实实,反正工作也用不着太复杂的。你连简单东西都乱七八糟的,别人还能指望你搞点高深东西?比如那个《算法导论》,90%的人连基础编程能力都不过关,你研究那玩意干啥?

可能有小伙伴说你这不扯吗,难道有人连基础编程都搞不定?多了去了,我们去985面试,经常见那种学习成绩很可以,一动手就暴露了大学没写过几行代码,这种我们招回去还得重新练,除非特别优秀的,否则不太想要。

几年前我去北京的一个高校面试,让他们几个人统计下一本书每个字和符号出现次数,然后再输出到文件里,这就是几个基础功能组合在一起,不涉及任何复杂算法。

去了趟卫生间回来,有个学生物的已经完成了,而且运行一点问题都没。以为他之前做过,又做了几个链表的操作,他特别熟练且自信,这就够了,去了我们那边可以直接干活了。现场有一半人最后也没弄出来。大家不要觉得很离谱,很多人工作很多年后依旧不太会。这些都是基本功,太多人基本功开始就缺了一块,后来的发展也比较拧巴。

还有些人假期去就业培训班上课感觉进步很快,挺贵的,学啥?其实就是实操,天天让你在那里敲,然后调试。两个月比绝大部分大学生四年敲的代码都多。你自己找本卖的好的书在家认真敲不就得了,花那个钱干啥。

还是那句话,码农不是个学术岗,这玩意跟泥瓦匠一样,是手艺活➕体力活,熟能生巧,悟性差就多练,慢慢就理解越来越深。得自己心里有数,做出来的东西才能看,你自己做的东西漂亮,也有自信,才能越做越好并且敢于挑战,如果底子就不行,最后也是个纯歪脖子树。

先这样,有问题我再更。

后续有人看的话,我就多补充点。

END