程序员读书和练习的方法(个人观点)

来源:互联网 发布:中原g7 知乎 编辑:程序博客网 时间:2024/06/06 01:52
<传送门-->针对本文的交流探讨>

总宗旨:打好计算机通用理论基础、通用实战能力,便于需要时对各领域的无障碍深钻。时间宝贵,不要为了学习而学习。

计算机通用理论基础:计算机各领域理论基础、各领域所需的数学

通用实战能力:高效阅读、编写大型代码的能力

------------------------------

计算机专业书分类:


第一种:工具类。也称之为”工具书“。通常读1~2本即可。它面向的是真实环境中的实战,并且在其他环境不通用。这种书的特点是——每一章,都是针对一个实战问题而展开描述的。比如《疯狂Android讲义》、《C++ Primer》;
一句以概括——工具类的书,解决的是在实战中”怎么做“(How)的问题。


第二种:理论类。它要解决的是,你所接触到的各种工具,外观背后的共同原理。所以它跟应用类书籍相反,面向的是一种精神层面的详细交流,让你知道工具背后的计算机原理。——有助于让你更好地深入了解各种工具的特性,利用好工具;或者做出比当前工具更有成效的新工具。但是,理论类的书可能不是纯粹理论,也许会拿出一个具体的程序实例来阐明理论;而且理论类的书也不是完全通用的,需要分领域——操作系统、算法、编译,等等;
一句以概括——理论类的书,解决的是”是什么“(what)和”为什么“(why)的问题;
每个领域的理论书,只需读相关的导论,有需要的时候再学阐述更深入的书。


另外的理论类是数学。它是理论中的理论,需要最重点加强。先读各种相关的导论。然后在阅读数量上多多益善。(加强培养数学功底和数学思维能力,遇到其他计算机领域的根本数学理论有足够能力去研究)

------------------------------

学习方法:


应用类的书(适用于实战方向),先粗略通读一遍,然后直接实战,边实战边查书。有空闲再把学过的知识点连带整章都仔细阅读;书后的练习可做可不做;


理论类的书(适用于研究方向,但对编程职业绝对有好处),无法制定一个详细的方案,但一定要1、细读、多思考;2、要注意运用到实战当中,才能体现理论的威力,也才能用实战经验弥补书本的不足;


数学类的书,精读,一定要做练习。



------------------------------

练习方法(学以致用)



读完每个领域的导论,必须能手工做一个试验品出来。比如读完《操作系统原理》就做一个小型操作系统,读完《编译原理》就作一个编译器,读完《TCP/IP详解》就做一个TCP/IP协议栈。可以查其他具体资料。

------------------------------

实际工作图解:





在实际工作中:为了改善/实现某个工具而阅读书本或他人的代码,不要为了阅读而阅读。但需要培养高效编写、阅读大型代码的能力,才有能力研究他人代码或自己创造工具(所以实际工作之外又必须多写代码,多研究别人的代码);

===================================================

备注:
我个人非常不同意"程序员技术练级攻略"一文(http://coolshell.cn/articles/4990.html),简直把人当作技术的奴隶,而不是把技术视为人类为达到目的而使用的工具。按他那么学,只有一个结果:什么都会,但什么都不精通,<重点>会的东西又不一定用得上</重点>。从他的个人简介(http://coolshell.cn/haoel)中的一句话可以佐证:


“底层技术研究了十来年了,离业务太远了,越来越有点技术书呆子。”

0 0
原创粉丝点击