|
我读技术书籍,有以下心得:
一是明确读书的目的是为了用于实践。好的技术书籍来源于工程实践,那么读者读完之后用于实践,才是一个最合理的闭环。如果读书的目的是为了考试得个好成绩,又或者想把论文包装的高大上,又或者想增加些炫耀的资本,那就有失偏颇,而且未必能有预想中的效果。即使是从掌握知识的角度来说,学以致用也是最高效的,死记硬背是低效的。有时候,因为条件所限,暂时找不到合适的应用实践环境,怎么办呢?其实把所学的知识整理之后传授给他人也是一种实践活动。如果没有人愿意来学,自己整理并系统化,也比被动的学习效果好的多。
二是分清主次。把知识点详略程度和重要性划分一个坐标系,那么会存在四种区域。区域一:重要且简略的知识。例如面向对象设计的几个设计原则(如里氏替换、多用组合少用继承等)。这部分知识当然是重要的,但是过于强调则容易陷入教条主义,脱离实际。区域二:重要且详细的知识。主要是涉及到重要的实操、案例、说明、推导等。这部分知识当然要详细掌握,但不能只见树木不见森林。区域三:不重要但详细的知识,包括许多细节,随着技术进步可能会被淘汰的部分。这部分最好是随着实践自动掌握的,不值得花脱产的时间去学习。有的人特别喜欢深究这部分知识,美其名曰抓细节、性格仔细认真,其实陷入牛角尖而不自知。区域四:不重要也不详细的知识,例如花絮、人物生平、补充说明之类的,但如果想深入进阶,有的地方还是不能略过不看。读书时要会分辨知识是属于哪个区域的。
三是及时复盘。我读《深入理解计算机系统》,其第一章讲的是C语言hello world程序执行所发生的背后的事情。第一次看的时候觉得好神奇(特别是对于我这样的非计算机专业的人来说)。但是这本书仔细读过一遍重新看,只觉得第一章写的简直酣畅淋漓,真的是高屋建瓴,非常自然(看山还是山,看水还是水,hello world还是hello world),对作者的佩服更加深了一层。再举一个例子,《电力系统分析》我本科的时候,只考了70多分,完全就没学懂。后来工作后,每年都会看一个版本的电力系统分析,互相对照,跟自己的工作经验结合起来。这样早已经跟课堂上所学不在同一个层次了。
四是在一个领域要成系统的学习,才能达到专家水平。以C++为例,我自己看的C++书目至少包含以下:《C++Primer》、《C++编程规范101条规则、准则最佳实践》、《C++高级编程》、《C++程序设计语言》、《C++程序设计原理与实践》、《C++标准库》、《Boost程序库完全开发指南》、《C++性能优化指南》、《Effective C++》、《More Effective C++》、《Effective Modern C++》、《Linux多线程服务端编程》、《Google C++编程风格指南》、《大规模C++程序设计》、《深度探索C++对象模型》、《STL源码剖析》、《C++函数式编程》、《C++语言的设计和演化》、《Effective STL》、《C++代码整洁之道》等。 有人说,这怎么可能。其实假设说成为C++专家需要掌握1000个知识点,那么认真读完《C++Primer》就掌握700个了,剩下300个分布在别的几十本书里。读书时自己已经掌握的就可以跳过去了。这就是成体系的知识带来学习效率的大幅度提升。再比如很多专业的建模是完全不同的,但是共同的基础就是微分方程、积分变换、线性代数等这些,把这些知识学好,跨越不同的学科,其实没有那么难。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 17:30
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社