工作七年,买了不少IT相关的书,现在阶段性总结一下对于程序员,哪些书的意义不大,哪些书让人真正受益。

第一类:专门写某个IDE怎么用的书(不推荐)

比如名称类似于“Android Studio入门”、“Eclipse入门”、“Visual Studio入门"等等,这些书虽然对于某个IDE讲得很全,但这些书不可避免地存在几个问题:

1:内容虽多,但对于买了书的人来说,平时工作中真正用到的只是其中很小一部分内容。从事编程工作几年之后,大家应该普遍有体会,对于具体某个岗位的工作,平时用到的功能其实就那么固定的十几二十个,主要就是怎么运行程序、查找、替换、保存、另存为、打开项目、新建项目、编译、build、看日志、撤销、重做等等,这些操作比较简单,在不同IDE中也有很高的相似性,实在没有必要买本书来学。偶尔有些特殊的需求,比如要改一下IDE的主体、代码颜色方案等、做一些比较细致的调试工作等,也都能从网上找到不少教程、博客和问答。一本厚厚的书,存在的意义实在很小。

2:IDE本身更新的速度也比较快,特别是近几年这些工具,一本书的内容只能顾到某段时间的版本,后面新的就顾不到了。

 

第二类:专门精讲某项技术的的书(总体不推荐,少数情况除外)

比如名称类似于”Spring源码分析“、”Android源码分析“、”Java虚拟机原理“等等,这些书对于某项技术讲解比较深入,不过对于绝大多数人来说,工作的内容还是应用层开发,再精通某个领域可能也难有用武之地,徒然投入了很多研究的时间。比如"Android源码分析"这类内容,如果要发挥作用,工作机会的选择还是相对较窄,集中在ROM定制、系统移植等领域。除了立志于从事操作系统领域相关工作的人,其他应用程序员研究这类内容的意义不大。

 

第三类:笼统介绍某项技术的的书(新人推荐,老兵不推荐)

比如名称类似于”Java从入门到精通”、“C#从入门到精通”等等。对于新人来说,本身对编程没概念,网络信息相对分散,容易带偏,要想快速入门一种编程工具,一本“XXX从入门到精通”是很不错的选择,内容相对实用,体系比较完整。对于老兵来说,意义不大,一来现在各种编程语言之间相似度其实挺高,用过一种后,其他的看上去就有熟悉的感觉,并且网上教程不少,并且教程中很多都对内容做了比较清晰的分类,各个语言大同小异,老兵平时忙、时间紧,在网络教程上快速熟悉几遍即可,买书实无必要。

 

第四类:介绍某项技术进阶内容的书(老兵推荐,新人不推荐)

比如名称类似于”Android进阶开发”、“.NET开发之道”、“深入理解C++”等等。讲的内容相对高级,不过平时工作中也确实能接触到。新人就别买这种书了,因为基础和经验欠缺,书上的内容完全没接触过,不知道在讲什么。老兵的编码经验多了,看到这些进阶的内容,往往是看上去熟悉,仔细想想又不太熟悉,好像在哪里接触过。这类进阶内容,基本都能和自己实际的开发场景联系起来,并非虚无缥缈(例如:.NET开发中,编译具体是怎么一回事?对于大多数人来说没概念,因为不需要考虑这个问题;而窗体的Dispose是怎么一回事?对于大多数人来说,好像平时经常接触到,但好像又不必亲自处理这些问题),好好看看书中对于这些进阶内容的讲解,对编程工具的理解会有比较明显的提升,往后的工作中,更容易避免踩坑消耗大量时间,因为很多时候,在一个坑里消耗大量时间,其实往往就是卡在那么一两个比较进阶的知识点上。

 

先写到这里,以上分享我的一点想法,希望能他人多提供一种思路。