如何阅读技术书籍 (转载自赛赛l )

如何阅读技术书籍?

 

 

在我看来,阅读技术书籍,分为三个阶段。

  1. 选书
  2. 读书前
  3. 读书时

选书(技术书籍)

对书籍的选择,人们往往有两个趋势:

  • 经典、经过时间验证、口口相传的书。
  • 更新、不落伍的书。技术的发展极为迅速,稍微过上两年,前几天买的书便成了落伍旧物。

至于具体如何选择,依据书籍本身的分类而定。

书籍的分类,在下文有有所介绍……

但不管是选择前沿的,还是经典的,参考下面的建议还是不会错的:

  1. 必须是优秀的书籍

    • 很多书外包装光鲜亮丽,内容漏洞百出,缺少自身特点。 
      • 选择一本差劲的书不光无法教人,反而害人。
    • 如何辨析一本书是否优秀? 
      • 知乎、豆瓣、亚马逊,当当上大家对书的评价。
      • 也可以看看电子版本。
      • 不过长时间盯着计算机是件很摧毁身体的事情
  2. 同类书籍,贵在精,不在多

    • 百度、谷歌这样的存在,很多书籍买一本书就可以了。
  3. 购买和自己学习方向相关的书籍

    • 反义词就是:“不要买和自己主要学习方向无关的书籍!”。

    • 不要看到别人看Java,自己也想买一本。

    • 但是自己目前在学习C/C++,这样造成的结果无疑会是:

      • 知识层次混乱,学习效率低下。

      • 即使勉强看得下来,也要挤掉学习主要方面的知识的实现。

      • 久而久之,就成了十八般武艺,样样稀松。

      会用40种编程语言输出“Hello World!”一点都不酷!

    • 认准一个方向,好好把它学好,真的需要扩展知识点,再在原来的基础上进行横向扩展。

读书前

  • 强烈推荐使用视频入门

    • 扫清关于一些基本词汇的解释问题
    • (有信心可以直接跳过这一步)
    • 切记不要在视频上停留太久。

    不要在视频课做出以下行为:

    • 将视频中的所有知识点都仔仔细细得整理成笔记: 
      • 太浪费时间
      • 好的教学视频,最关心的往往是教你:
      • 如何入门
      • 建立基础的知识框架
    • 强迫症,不懂得快进、跳过: 
      • 许多视频(特别是大学公开课),总会在前面说些基础(IPO、冯·诺依曼),而这不免会造成相同的内容重复听的问题。
      • 专门读一本计算机导论方面的书籍,比反反复复听那些烂大街的基础要有用得多。(《图解TCP/IP》《程序是怎样跑起来的》……)
  • 可以报名一些网课(免费的大学先修课就不错)

    • 出现无法理解的知识点,而又无法通过搜索引擎查找时,可以在讨论区里发帖询问。

书的类别

不同类型的书,有不同的读法

个人意见分的,不专业

大方面定义:

  • 语言方面的书。比如C、Java、Python等等 
    • 练!
    • 不要陷入语言的细枝末节中,盯着一个地方使劲的看。
    • 尽可能快,防止看了后面忘了前面,导致前后知识不连贯。
    • 看技术视频时,不要当看电影。一会暂停接个QQ、一会看个网页的。
    • 这样的做法是完全被动的接受 
      • 代码是敲出来的,不是看或者听出来的!
      • 英语是同样事情,必须将自己置于一个语言环境中,然后用出来。
  • 算法书籍。《算法导论》、《编程珠玑》等等 
    • 理解+运用
    • 学算法不同于学语言,学算法最重要的不是记忆,而是理解。
    • 理解算法没什么好说的: 
      1. 悟性
      2. 坚持
    • 为什么强调运用?
    • 因为算法这种东西本质上是比较难理解的
    • 算法一旦理解后,要马上投入到不同的环境中运用 
      • 算法书后面的习题
      • 很多高校的ACM OJ
    • 通过算法可以加强记忆
    • 有时可能算法忘了,但是解过的题记住了。 
      • 人们总是难以记住抽象的概念,而对具体的东西记得比较牢。
  • 某一特定类别的书。比如操作系统、编译原理、网络、Linux内核、服务器原理等等需要很大的精力才能彻底掌握的书。 
    • 这类书,一般都是理论性较强,难以消化,短期内看不出多大价值。
    • 对此书的理解决定你是工程师还是程序员。
    • 针对此类书,要么不读,要读至少读三遍!
    • 书读一遍,往往只能吸收10%的知识。
    • 读两遍、三遍。所吸收的知识就能成倍地增长。
    • 在读下去,就不止是简单地吸收书本身的知识了,你就会形成自己的思考。 
      • 也就是古人的“读书百遍,其义自见!”
    • 所谓的三遍读书法,其实是对投入与产出的一种权衡。 
      • 谁都知道读得越多越好,但是现实往往很难有足够的时间反复去读。

内容规划定义:

  • 说明书型: 
    • 恨不得把所有的东西,每一个参数,每一种命令都罗列的整整齐齐
    • 这类,不值得从头到尾的细读,甚至不值得买
    • 可以直接用API、或者帮助文档就可以了。
    • 这种书是用来查的!
  • 基础理论型: 
    • 软件开发领域经久不衰的经典。
    • 数据结构、算法、图形学、设计模式、分析模式等。
    • 读起来很费力气,建议在余有时间的情况下去研究。
    • 不要有太大心理压力,计算机本来就是一门博大精深的学问。
    • 唯一需要认真研读的书籍(其他大多数,视频入门,观其大略,用时按需查找即可。)
  • 操作指南型: 
    • 一步步带你操作,从实践中总结理论,各种XX in Action、XX cookbook等都属于此类
    • 看书上操作,不如看视频来的直接痛快。

混合型

  • 融合了以上所有类型的书籍 
    • 有基础理论、API说明\部分操作手册
    • 读的时候识别,采用不同的读书方法

读书时

带着问题去读,设定明确的目标:

  • 阅读这篇文章的最终目的是什么? 
    • 如果无法达到,也就没有看下去的必要
  • 这篇文章对自己有多重要?
  • 我需要的是多详细的信息?
  • 为了达成目的,我现在需要花多少时间?

尽可能快

  • 后面读起来缺少连贯性。
  • 很久没碰这本书时,再看后面章节的时候,最好先翻下前面的章节,有个预热。

没读完一篇文章,做一个小小的总结与肯定

读书抓住重点

  • 大多书籍喜欢由浅入深、
  • 并非不好,但对于有些基础的人而言太过基础的东西反而会显得无聊。
  • 看书一般直入主题,直到找到重点知识。
  • 细节类的东西,需要在反复的实践中体会,然后反复的看书。

对于IT方面的知识如何才能理解?

  • 多实践
  • 反复看书,反复阅读
  • 思考
  • 做笔记也很好

强化知识层次:时间+反复阅读+做题。

  • 实践 
    • 最关键的一步,是对这个东西充满兴趣。
  • 反复阅读 
    • 反复阅读一本书(前提:这本书很经典)可以有新的发现。
    • 知识层次的提升,会让阅读的体验截然不同。
    • 同时还可以加强记忆。
  • 做题 
    • 做题是为了巩固知识,不是为了应付考试。

如果一篇文章对你有用,最好能间隔一晚上是最理想的

  • 这段时间是知识的成熟期
  • 尝试问自己关于那篇文章的一些内容。
  • 提出问题时,重在在于不要急着找到答案。
  • 注意阅读坐着的思考流程 
    • 能够做脑图更好

多去读读英文原著

  • 国内很多翻译超烂。
  • 提升你的英语水平。(包括单词,以及思维模式的改变)
  • 迟早都要读英文,还不如早点看。

关于英语书籍

  • 先克服心理这一关
  • 一边读,旁边手机备着翻译软件 
    • 建议爱上不要挑选太难的,中英文对照度效果更佳。
    • 英文书非常忌讳一个字一个字去读,太累人了。
    • 妄想通过一本书来提高英文水平,只会带来浓烈的挫折感。
    • 想着读书能给自己带来技术和英文上的进步就可以了。
  • 不要什么都不懂就去看未知领域的英文书。
  • 读的时候一代码为导向,详读标题,略读内容 
    • 以代码为导向
    • 有基础的情况重点阅读每一段代码,这样大多数时候就不需要再细读里面的讲解了,读起来会更轻松。
    • 详读标题
    • 一本不错的书,小节的标题代表了这一小节的内容
    • 读完后做少量的笔记加深记忆也是不错的。

三遍读书法?

  • 第一遍

    • 尽可能在较短的时间内过完这本书。

    • 这一遍中,不要陷入某个具体的知识点。

    • 目的是能把握每个章节的重要知识点,记住,是把握,而不是理解透彻。
    • 第一遍讲究的是快、高效。
    • 千万不要拖太长的时间。
    • 对第一遍读完后的“成果”要牢记,最好把它记录下来,因为这是整本书的骨架。
  • 第二遍

    • 讲究慢、理解。
    • 尽可能地把知识点都理解,千万不要贪快,不要将就进度。

    • 所谓“欲速则不达!”

    • 实在有不懂的点,可以放放,等看到后面了再回头来理解一下,或者请教一下其他人。

    • 不建议边看边做笔记,最好在读完每一章或者每一节后,把书合上,然后在脑子里去回忆看过的部分,尤其是重点知识点,将其记录下来

    • (个人推荐写博客。千万别觉得自己水平不够,不好意思写。记住,写博客不仅仅是为了给别人看,更重要的是对自己学过知识点的一种思路上的整理)

    • 新手往往觉得写博客很费时间,但是相信我,如果你真的用心在写博客,它绝对不会辜负你的这些时间的!

    • 这一遍结束后,可以看看自己写的博客,不用急着读第三遍。

  • 第三遍

    • 读完第二遍后,建议先放一放。

      • 人的大脑还是需要一些时间来慢慢消化的,哪怕是潜意识的。
    • 放置的时间,可以去看看其他书。

    • 读第三遍时,一般会显得比较轻松

      • 这个时候不仅能巩固之前的知识。
    • 甚至还可能会产生新的想法

      • 举例:

      • 看过操作系统的理论知识后,会好奇它究竟是怎么工作的,会产生去源码的冲动。这就进入了第二个境界。

      • (当你研究过源码再来看操作系统的理论书籍时,甚至能知道哪些书写得好,那些不好。)
    • 哪怕对于这些理论性强的东西,要想真正得理解它们,还需要动手实践。

       

       转载自赛赛l ,怕文章某一天消失了,

      转载地址: https://blog.csdn.net/qq_41648756/article/details/81105218#commentBox

      • 学操作系统可以看下源码
      • 学编译原理可以试着自己做一个小型编译器
      • 学网络原理可以自己搭建网络环境加深对网络的理解。
      • 陆游有云:纸上得来终觉浅,绝知此事要躬行!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值