左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家
180930 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 119 讲
左耳听风
15
15
1.0x
00:00/00:00
登录|注册

74 | 程序员练级攻略:理论学科

编译原理
SICP
计算机网络
操作系统概念
数据库系统原理
数据结构和算法分析
编程题
基础算法题
思维改善
理论加持
基础知识
理论基础知识的重要性
推荐的书籍
算法能力的重要性
算法训练网站推荐
推荐的书籍
算法的重要性
其它理论基础知识
数据结构和算法
下篇文章预告
理论学科
程序员练级攻略

该思维导图由 AI 生成,仅供参考

你好,我是陈皓,网名左耳朵耗子。
进入专业的编程领域,算法、数据结构、网络模型、计算机原理等这样的计算机科学专业需要学习的理论知识是必须要学习的。下面我们先来看看数据结构和算法。

数据结构和算法

算法是比较难学习的,而且学习“算法”是需要智商的。数组、链表、哈希表、二叉树、排序算法等一些基础知识,对大多数人来说是没什么问题的。但是一旦进入到路径规划、背包问题、字符串匹配、动态规划、递归遍历等一些比较复杂的问题上,就会让很多人跟不上了,不但跟不上,而且还会非常痛苦。是的,解决算法问题的确是可以区分人类智商的一个比较好的方式,这也是为什么好些公司用算法题当面试题来找到智商比较高的程序员。
然而,在很多时候,我们在工作中却发现根本用不到算法,或是一些基本的算法也没有必要实现,只需要使用一下第三方的库就好了。于是,导致社会上出现很多“算法无用论”的声音。
对此,我想说,算法真的很重要。我这 20 年的经历告诉我,无论是做业务还是做底层系统,经常需要使用算法处理各种各样的问题。比如,业务上我需要用算法比较两个数组中差异的布隆过滤器,或是在做监控系统时实时计算过去一分钟的 P99 统计时的蓄水池算法,或是数据库的 B+ 树索引,还有 Linux 内核中的 epoll 的红黑树,还有在做服务调度里的“背包问题”等都会用算法,真的是会本质上帮助到你,也是会让你瞬间会产生成就感的事情。
虽然算法很难,需要智商,但我还是想鼓励你,这其中是有很多的套路是可以学习的,一旦学会这些套路,你会受益无穷的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

程序员练级攻略:理论学科 本文强调了程序员在专业编程领域需要学习的理论知识,特别是算法和数据结构。作者指出,虽然学习算法需要智商,但在实际工作中经常需要用到算法来处理各种问题,因此算法的重要性不容忽视。推荐了几本经典的算法书籍,并建议通过做算法训练来提升自己的算法能力。此外,还提到了一些网站资源,可以帮助程序员学习和掌握更多的数据结构和算法知识。总的来说,文章强调了算法在程序员职业发展中的重要性,以及如何通过学习和训练来提升自己的算法能力,从而在面试和工作中取得更好的表现。 在这篇文章中,作者建议想进入专业编程领域的人,一定要学习算法、数据结构、网络模型、计算机原理等理论知识,并推荐了相应的学习素材,给出了思考和建议。虽然这些理论知识枯燥难学,但认真学习,理解其背后的逻辑和思维方式,会让你受益匪浅。不管是未来学习新技能,还是解决疑难问题,都能在这些知识中获得灵感或者启发。 总的来说,本文为程序员提供了重要的理论学科知识,强调了学习算法和数据结构的重要性,并指出了学习资源和方法。这对于想要在专业编程领域取得成功的读者来说,是一篇具有指导意义的文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《左耳听风》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(86)

  • 最新
  • 精选
  • 寻路之人
    皓叔,可不可以讲一下如何阅读源码,有没有一些心得方法?求回复

    作者回复: 几个方法:删掉出错处理逻辑,画流程图,Debug跟踪.

    2018-06-14
    68
  • Dante.Fung
    作者是神一般的存在,男神

    作者回复: 😅😊😘😍😛

    2018-06-14
    28
  • metalmac.kyle
    皓哥,想请教下个问题,个人理解您每一篇应该是一个很好的练级参考攻略及引子,那么我在学习的每一步如何考核和量化自己的学习情况呢?比如我如何衡量自己已经完成入门可以进入下一阶段,每一个阶段的针对个人的晋级标准如何定呢?想看看您怎么建议的

    作者回复: 1)学以致用,在工作场景,开源,个人项目中用起来,2)开始帮助其它人(工作中或网络上),3)面试,通过更好的公司。

    2018-06-14
    2
    28
  • 繁泽
    看耗子叔的这系列文章简直是打鸡血,啊啊啊啊我还有这么多这么多书要看!😂

    作者回复: 我看了20年,你也可以的

    2018-06-14
    3
    19
  • 楚晨曦
    另外,编译方面,龙书比较偏理论、一般原理。虎书主要是编译优化,鲸书是设计、实现

    作者回复: 好厉害👍

    2018-06-14
    14
  • Max
    这些书您都是看的英文版吗

    作者回复: 没有,主要还是看中文版

    2018-06-19
    3
    13
  • 孙悟空
    深入理解计算机系统 这本书怎么样

    作者回复: 很好,下一篇“系统知识”中会推荐。

    2018-06-14
    2
    12
  • Sawyer
    想问下耗子叔推荐的这些书,你都有阅读过才推荐给大家的吗?因为看到这些书籍的推荐理由好像都是豆瓣上的,如果耗子叔是阅读后推荐的话,那我也可以放心的购买学习了。请耗子叔叔回复一下,谢谢啦。

    作者回复: 是的,我都读过的,放心购买。

    2018-06-14
    9
  • Phoenix
    耗子叔,在上上篇程序员修养文章里,您提到,尽量阅读英文教材,是不是可以理解,您上面推荐的书,阅读原版会更好?还是说中文版和原版相差不大?

    作者回复: 你可以根据自己的情况来吧……

    2018-06-14
    4
    7
  • bin
    我想问下学习算法需要微积分,概率论,线性代数的知识吗?

    作者回复: 能学当然好,不学也行。

    2018-06-28
    5
收起评论
显示
设置
留言
86
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部