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

99 | 高效学习:如何学习和阅读代码?

底层交互
重要的算法
数据处理
出错处理
代码逻辑
运行时调试
具体实现
业务流程
模块粘合层
接口抽象定义
代码的组织结构
相关文档
软件功能
基础知识
了解思想、方法和原理
What, How & Why
了解具体细节
细节决定成败
What, How & Details
代码阅读顺序
阅读代码前提
文档/书
代码
高效学习:面对枯燥和量大的知识时该如何做
高效学习:如何学习和阅读代码
小结
如何阅读源代码
读文档还是读代码
高效学习系列文章
高效学习

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

你好,我是陈皓,网名左耳朵耗子。

读文档还是读代码

杰夫·阿特伍德(Jeff Atwood)说过这么一句话:“Code Tells You How, Comments Tell You Why”。我把其扩展一下:
代 码 => What, How & Details
文档 / 书 => What, How & Why
可见,代码并不会告诉你 Why,看代码只能靠猜测或推导来估计 Why,是揣测,不准确,所以会有很多误解。而且,我们每个人都知道,Why 是能让人一通百通的东西,也是能让人醍醐灌顶的东西
但是,代码会告诉你细节,这是书和文档不能给你的。细节是魔鬼,细节决定成败。这样的话我们不但听过很多,我们做技术的也应该体会过很多。当然,我们也要承认,这些代码细节给人带来的快感毕竟不如知道 Why 后的快感大(至少对我是这样的)。
书和文档是人对人说的话,代码是人对机器说的话(注:代码中有一部份逻辑是控制流程的逻辑,不是业务逻辑)。所以:
如果你想知道人为什么要这么搞,那么应该去看书(像 Effective C++、Code Complete、Design Pattern、Thinking in Java 等),看文档
如果你要知道让机器干了什么?那你应该看代码!(就像 Linus 去看 zlib 的代码来找性能问题。)
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文由左耳朵耗子撰写,主要探讨了如何高效学习和阅读代码。作者强调了代码和文档的重要性,并提出了在不同情境下选择阅读代码或阅读书籍和文档的建议。他还探讨了学习过程中的感性认识和理性认识,并提出了新手和老手在学习过程中的不同需求。文章强调了在计算机行业中每个人既是新手又是老手的特点。通过对代码和书籍的阅读,作者呼吁读者在不同阶段寻求不同的学习方式,以提高技术水平和解决问题。文章内容深入浅出,为读者提供了关于学习和阅读代码的宝贵建议。左耳朵耗子还分享了一些阅读代码和源代码的方法和技巧,以及对于枯燥和量大的知识应该如何学习的思考。整体而言,本文为读者提供了有关高效学习和阅读代码的宝贵经验和建议,对于技术人员来说具有很高的实用价值。

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

全部留言(39)

  • 最新
  • 精选
  • metalmac.kyle
    Code Tells You How,Comments Tell You Why。 Brilliant!这总结太精妙了
    2018-09-06
    37
  • 孙悟空
    耗子叔,可以推荐几个代码质量不错,适合精读的c/c++/java/go的开源项目么。
    2018-09-06
    3
    34
  • 薛璇
    这也意味着写应用程序时,规范的设计应该分几块去考虑,接口列表,粘合层,控制逻辑,错误处理,业务逻辑。
    2018-10-21
    1
    14
  • Y024
    Source Insight 感觉有点上古神器的样子,当年在外企必备神器,怀念下。
    2018-09-10
    1
    11
  • 小薛薛
    放下急于求成,慢慢能体会到理解深挖一个个小知识点的酸爽了。 why就是舒服。
    2018-09-06
    11
  • lovedebug
    读源码推荐opengrok,自己搭建一个server就行
    2018-09-06
    7
  • 拯救地球好累
    文档和书籍有助于理解原理和思想,代码更有助于了解细节。 阅读源代码并非是上来就硬钢代码,首先要补充相应的基础知识,明确软件功能并简单实践,阅读相应的文档说明。在进入细节前还应先把握代码整体的组织结构,再从接口抽象和模块粘合中把握基本要点,再弄清楚业务流转的流程(画图)。在看具体实现时应当区分业务逻辑和控制逻辑,正常代码和出错处理代码,正常逻辑和数据处理逻辑,核心算法与其他算法,软件内的实现与底层实现。区分这几种代码可以让我们更有效地抓住重点,删繁就简。最后,可以考虑运行时调试。
    2019-08-10
    6
  • Aleck
    耗子叔,看了您前端、后端、机器学习等等讲了很多,就是没有讲移动的。 您啥时候能讲一下移动的发展路径和知识树吗?然后自己也感觉未来移动的需求会趋向于饱和,请问耗子叔对移动的未来发展怎么看
    2018-09-06
    6
  • 刘鹏
    不知道Linus如果不幸离世,还有没有人看得懂Linux内核
    2018-09-06
    2
    5
  • 且听风吟
    这个方法很赞呀。最近正要看Java concurrent相关的源码,希望能啃下来。。。
    2018-09-06
    4
收起评论
显示
设置
留言
39
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部