了datesheet ,我们经常遇到英语文档和资料。找到正确的英语文档的打开方式变的非常必要。

计算机类的书大致归为三大类:

(1)语言方面的书。比如C、Java、Python等等

(2)算法书籍。《算法导论》、《编程珠玑》等等

(3)某一特定类别的书。比如操作系统、编译原理、网络、Linux内核、服务器原理等等需要很大的精力才能彻底掌握的书。

当然这个归类是非常粗浅的,针对不同种类的书,我们的阅读策略也会有所侧重。

首先针对第一类书。诀窍就一个字:练。

接下来说说该如何看算法书。诀窍:理解+运用。

最后谈谈对第三类书的学习。

第三类书通常都是一些理论性很强的书,比较难以消化,而且短时期内看不出它有什么价值。。对于很多程序员来说感觉用不上。。但是可以这么说:对这一类书理解有多深决定了你是一个攻城狮还是一个程序猿。。当然每个人都有他自己的选择,并不是所有人都想在技术这条路上走得很远,如果你是那个想在技术上成就自己的人,那么欢迎一起来探讨。如果不是,那么就当随便看看好了。针对这一类书籍的特点,我总结了自己的读书方法——三遍读书法。是的,没错!起码三遍。对于这类书籍,要么不读,要读起码读三遍。其实,在现实中,有很多人对于自己读过的书是不太愿意再去读的,不管是技术书还是其他方面的书。这可能跟人把读书看得过于功利有关,认为读过的书再去读就是浪费时间,还不如去读新的书。如果你问一个人你为什么要读一本书时,他可能会告诉你为了学新的知识或获取新的思想。的确,目的确实没错,可是往往他忽略了一个简单的道理:一本书如果只读一遍,那么你最多只能吸收10%的知识。如果你再读第二遍、第三遍。。。你所吸收的知识就能成倍地增长,当你再读下去的时候,你已经不止是简单地再吸收书本身的知识了,你会形成自己的思考,也许这就是古人说的读书百遍,其义自现吧!所以说,如果一本经典的书拿来,你只准备看一遍,那么还是别看了,,纯粹浪费时间!既然说一本好书要读好几遍,那么问题来了:我该如何读这本书呢?是从头到脚重复地看还是有其他的方法呢?当然有。我这里为什么要提三遍读书法,这其实是对投入与产出的一种权衡,谁都知道多看几遍越好,但是现实中往往很难让你有足够的时间去反复地看,这时候就需要找到能尽可能用最少的时间来获得最大的收获的方法。那么三遍读书法具体是怎么来操作的呢?假如你拿

到一本技术书籍

第一遍

尽可能在比较短的时间内过完这本书。在第一遍中,不要陷入某个具体的知识点,这一遍的主要目的是能把握每个章节的重要知识点,记住,是把握,而不是理解透彻。这一遍讲究的是快、高效。千万不要拖太长的时间。而且对于第一遍读完后的“成果”要牢记,最好把它记录下来,因为它们是整本书的骨架。

第二遍

第二遍讲究的是慢、理解。第二遍一定要慢,要尽可能地把知识点都理解,千万不要贪快,不要讲究进度。记住,在这一遍中:欲速则不达!遇到实在不懂的点,可以先放一放,等看到后面了再回过头来理解一下,或者请教一下其他人。不建议边看边做笔记,最好在读完每一章或者每一节后,把书本合上,然后在脑子里去回忆你看过的部分,尤其是重点知识点,然后把它记录下来,这样比单纯记笔记效率要高很多。(个人比较推荐写博客。千万别觉得自己水平不够,不好意思写博客。记住,写博客不仅仅是为了给别人看,更重要的是对自己学过知识点的一种思路上的整理,通常这种整理都是非常高效的。另外,新手往往觉得写博客很费时间,但是相信我,如果你真的用心在写博客,它绝对不会辜负你的这些时间的!)这样一遍完成后,你对整本书已经有了一个比较完整的理解了。这个时候,你可以去看看你自己写的博客,不用着急读第三遍。

第三遍

通常如果你认认真真地读完第二遍后,你可以先放一放。人的大脑还是需要一些时间来慢慢消化的,哪怕是潜意识的,况且,短时间内连续读好几遍确实会让人感觉厌烦。这样过了一段时间后(比如去看看一些其它书啊等等),你再开始读第三遍,相信这个时候你很感觉很轻松(人往往对熟悉的知识有一种愉悦感),这个时候你不仅仅巩固了你之前的知识,甚至有可能还会让你产生新的想法,比如当你把操作系统的理论知识都掌握得差不多时,你可能会好奇它究竟是怎么工作的,你会产生想要去读内核源码的冲动。当然这就进入另一种境界啦!(当你研究过源码再来看操作系统的理论书籍时,你甚至都能知道哪些书写得好哪些书写得渣了呢!\(^o^)/~)。最后,我还是想说,哪怕对于这些理论性很强的书,要想真正得理解它们,还需要动手实践,比如学操作系统的可以试着去看源码,学编译原理的可以试着自己做一个小型编译器,学网络原理的可以自己去搭建网络环境来加深对网络的理解等等。

the way of reading English books的更多相关文章

  1. English is very important!

    Well, as a college student,I haven't realized how important the English is . But as a web programmer ...

  2. English常用短语

    (1) be waken  by    被什么吵醒 (2) wake up !           快醒醒 (3)  put the flames    /fleimz/               ...

  3. [转] How Bill Gates read books

    Bill Gates is one of the most famous figures in the business world. He is one of the richest men in ...

  4. English trip -- VC(情景课)2 C Where's my pencli?

    Grammar focus 语法点: in 和 on in the desk    在桌子抽屉里 on the desk  在桌子面上 Practice 练习 Where's my pencil? I ...

  5. Harry Potter

    Names appearing in "Harry Potter" 1.Harry Potter ①Harry is from Henry. ②Harry is related t ...

  6. Code Complete阅读笔记(三)

    2015-05-26   628   Code-Tuning Techniques    ——Even though a particular technique generally represen ...

  7. 【转】The most comprehensive Data Science learning plan for 2017

    I joined Analytics Vidhya as an intern last summer. I had no clue what was in store for me. I had be ...

  8. Programming Learning - Based on Project

    Today when taking a bath I got a good idea that it is an efficient and interesting way to learn a ne ...

  9. python学习笔记(一)

    • Python能干嘛?[1]科学计算[2]图形化开发[3]系统脚本[4]Web服务器[5]网络爬虫[6]服务器集群自动化运维 • 常用工具:easy_install.pip.ipython.Subl ...

随机推荐

  1. 猫都能学会的Unity3D Shader入门指南

    https://onevcat.com/2013/07/shader-tutorial-1/ https://onevcat.com/2013/08/shader-tutorial-2/

  2. 【vijos1266】搜集环盖

    题意 百事任何饮料的瓶盖上都会有一个百事球星的名字. 假设有\(n\)个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 分析 设凑齐\(i\)个球星的期望次数为\(f ...

  3. DispatcherServlet中使用的特殊的Bean

    DispatcherServlet默认使用WebApplicationContext作为上下文,因此我们来看一下该上下文中有哪些特殊的Bean: 1.Controller:处理器/页面控制器,做的是M ...

  4. 用java实现冒泡排序法

    一.基本思路: 冒泡排序是一种简单的交换类排序.其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移.每经过一趟排序后,关键字值最大的元素将移到末尾,此时 ...

  5. 关于json的理解

    一. 获取数组长度 array.length 获取对象长度  Object.keys(objs).length 二. 如何抉择{}和[] 先说两者区别, {}:父类下面直接是子类名称 []:父类下会追 ...

  6. 5.4.2 使用配置启动firefox

    1.使用firefox的本地配置加载浏览器 使用本地配置加载浏览器,代码如下. 这样运行后,可以看到firebug等插件都已启动. 练习:假设做性能测试时,需要获取某个状况下的页面网络运行参数.要求完 ...

  7. 网络与RPC

    网络与RPC 标签 : Java基础 Java为网络编程提供的java.net包封装了底层通信细节, 包含了大量的基础组件以及TCP/UDP协议的编程接口, 使得开发者可以专注于解决问题, 而不用关注 ...

  8. 弹出消息对话框ScriptManager

    //直接调用WebMessageBox方法 #region 弹出消息对话框 /// <summary> /// 弹出消息对话框 /// </summary> /// <p ...

  9. 查看Linux软件信息

    查看系统发型版本 1. 对于linux系统而已,有成百上千个发行版.对于发行版的版本号查看方法 如以centos为例.输入lsb_release -a即可 该命令适用于所有的linux,包括Redha ...

  10. Codeforces Round #308 (Div. 2)----C. Vanya and Scales

    C. Vanya and Scales time limit per test 1 second memory limit per test 256 megabytes input standard ...