很多做编程朋友都喜好读书的。但为什么要读书?读什么书?读多少书?如何读书?这都成了很大的问题。我想就这些问题谈谈我自己的看法。注意,本文读者最好是那些时间不多,希望通过读一些好书能有大收获的朋友。如果那种只要是技术书都要去读读的朋友,你的精力和时间实在太多了,本文应该不适合你。

首先,在中国,程序员只能靠读书来提高自己的编程或设计能力,这本身其实是很无耐的,因为国内软件编程方向的教育已经远远落后于编程业的发展了。名师凤毛麟角,能够听到名师的课的人非常少。运气好,进了大学或者公司,有个高手师兄或者大牛同事带一带,成长会快些。否则,要想提高,除了读书,还真是没有别的办法。由于本人曾经做过数学教师,我很清楚,数学学习如果只是给你几本参考书,然后就能高考得高分,那是不可能的(你如果例外,只能说你是天才,没有普遍意义),但数学教育已经发展了不知多少年,特别中国这样以应试教育为主导的国家,数学是不需要好书只要有好的老师就可以出好的学生,而软件编程教育的师资就实在是不容乐观。而我想强调的是,读书永远没有老师的教学来得有效(注意需要强调“好”字)。因为老师和学生之间是有互动的,是在一个交流的气氛中学习,而不是读书的那种完全单方向的信息传递。现在有了网络视频录像,情况得到了很大改善。不过视频同样存在只能告诉你东西,而不能最快速的解决你碰到的疑问的单向信息传递问题。比如你看了一个视频学习如何用VS2008写一个“HelloWorld”程序,可是你始终找不到视频里提到的“解决方案资源管理器”(原因是之前你或别人无意将它关闭了),或许你费了很大力,终于明白在工具栏上有按钮或者菜单中可以打开它,但是你的挫败感就很强烈了,这对于初学者来说,是很不爽的。如果有个老师,或者旁边有个同学,这种问题几秒钟就能解决。再比如你看了策略模式的教学书或视频,可是为什么一定要用策略模式呢?我不可以用简单工厂吗?不可以用装饰模式吗?你的问题一个接一个,书中没有答案,答案只能依靠自己去想。如果你坚持去想,你会有“悟”通的一天,但是更大的可能是,算了,设计模式也太难了,以后再研究吧。因此我觉得多读书当然好,不过编程能力通过读书显然不是唯一,更不是最好的办法。不过就目前的国内现状来讲,读书或许是在你没有老师的前提下最好的提高途径,尤其是初学者,系统看一些好书,学习一项技术是很有必要的,只靠实际的做项目来提高极有可能会发展不全面(培训学校我不推荐,因为骗钱居多,好教师太难找)。

然后是读什么书的问题。现在很多过来的朋友都推荐了一些好书,这些好书大多是经过时间验证,的确是难得的精品,看看一些网上书店的排名和评论就大概知道好书是哪些。不过问题又来了,是不是这些书都适合我阅读呢。答案不是,并不是只要是好书就适合读者阅读的。从技术书的分类来看,简单的分就有程序设计、软件工程、数据库、网络、图形图像等等;从技术难度上分,就有入门读物、进阶读物、高级读物等;从写作形式上分,有教材类、论文类、休闲类等;从价位上,有10-30、30-60、60-90、90-抢钱没商量价等;从书的厚度或阅读时间来讲,有三天读完、两周读完、两月读完、半年读完、阅读三遍、终生阅读等分类;当然最重要的分类,即按书的写作质量来分,应该是垃圾书、一般书、可读书、精品书、绝对必读书等。换句话说,仅仅是告诉你,编程书好书有哪些是远远不够的,往往会让读者根本没办法去区别这个好书是不是适合自己,是不是应该要现在阅读,是否有必要全部读完。当然,商家是不会做这么细致的分类的,没有什么商家会告诉你,本书是垃圾书,本书不适合低手阅读,本书太厚没时间不要读,本书很贵买前要慎重、本书只有三章可以一读等等。但作为读者,如果你没有这种多角度分类的思考去找书的话,你或许会迷失在书的海洋中,无以自拔。打个比方(尽管这个比方我已经打过很多次),GoF的《设计模式》的的确确是好书,但真的不是每个编程者需要去阅读的,至少不是一开始去阅读的,如果你是非面向对象程序员(比如嵌入式开发),你是关系数据库开发者(比如存储过程开发者),你是UI设计者(偏设计但涉及程序的那种),甚至你是面向对象编程初学者,我都建议你不要读它,真的没什么必要,只有等你真的已经达到一定的开发量了,真的有必要提高自己的编程和设计能力的时候再去阅读它。总结,一定要读经过时间检验的好书,但在这些好书中,需要分分类,需要多多思考自己是不是真的适合当前阅读。

接着,就是读多少书的问题了。好书很多,不是一本,不是十本,而是几十本上百本。有些书是全本都好,有些书是部分章节优,有些书有很强的时效性(比如现在去阅读一些asp.net 1.0入门经典方面的书可能就没有与时俱进了)。是不是有必要把相同类型好书都读了呢?我看没什么必要。比如你要学习asp.net,你真有必要把这方面的好书都阅读一遍吗?读一本足矣。毕竟这里更加需要的是练习而不是阅读了。而要读的这一本书就应该是精读,甚至反复读。其实。因此别的行业可能很需要参考书,我看编程行业基本不需要参考书,Google百度就是最好的参考。思想层面的,比如设计、分析、项目管理等方向的,可能要多读一些。但书实在是贵在精而不是多,还是以设计模式为例,入门读《Head First设计模式》,进阶再去读GoF的《设计模式》就足够了。当然,像《Java与模式》、《设计模式解析》都是好书,你有精力可以多读,没精力,那就不读也罢。

跟着,也是比较关键的,就是如何读的问题,本来这个问题不应该我来多说的,读书吗,从头读到尾就行了,但其实这里学问还真是不少的,技术书还是很有区别于一般的小说书的。如果你只是简单的理解为读书就是花点时间,从头读到尾的话,你从这本书得到的收获是很小的。首先,技术书,并不一定都是需要从头读起的。这要看是什么书,特别是应用级的书,往往是你当前最需要了解的技术,你需要多花时间去研究相关的章节。好的书通常都会在前言就告诉你,应该如何去读这本书。我记得《敏捷软件开发:原则、模式与实践》书中前言就写得很清楚什么样的读者应该更加关注什么样的章节,特别他提到如果你觉得无聊就看看书后的两个故事,哈,我还真是在一次没事做时,去认真的阅读了那两个项目开发对比的故事,感觉非常好。技术的学习不是看完书就完全理解的,更不是看完就能马上应用自如的,一项技能要经过知道、理解、掌握、应用等等过程。我强烈建议读者朋友在精读一本书时,一定要手拿着笔,最好旁边再有一本笔记本(纸)和一台笔记本(电)(哈,PC当然也没问题)。看到好的句子要摘录到笔记本上(别懒,这其实不是让你以后去看你抄的东西,而是让你在抄的时候,放慢你阅读的速度和节奏,而把大脑紧紧的集中在这个知识点上),有句话说,在一个人用笔写东西的时候,他是不可能分神去想别的事情的。这对于记忆和理解是非常有帮助的,简言之,不动笔墨不读书(非常可惜,现在我已经很少看到喜欢记读书笔记的朋友了,有些人可能一年除了签名都写不了几个字,这实在是一大悲哀)。那么旁边那台笔记本或PC要来干吗呢?不是让你来玩游戏的,更不是让你和MM聊QQ的,而是用来写代码的,代码只是看看是没用的,一定要自己打一遍,最好的效果是看懂了后,根据自己理解的来编,效果差一些的是照着书中的抄一遍,但无论哪种都比你根本不写只是看要强。我见过不少朋友买了书,可能连随书的光盘封套都没拆过,又或者光盘中的代码只是简单的运行一下。没有认真的模仿打一遍,这都是不好的学习方法。有些人认为书读完了,应该就差不多都掌握了,其实未必。不知你有没有过看一部电影,过段时间再看第二遍发现很多很有意思东西原来根本没在意。特别是英文字幕的片子,看第一遍甚至根本就不懂,看第二遍就轻车熟路这种情况不是很多吗。读书也是一样的,好书绝对有必要多读,常读。否则理解可能还是会很片面。

最后,还得提一提两个细节问题。
      关于电子版和纸版书的阅读问题。有些朋友喜欢收藏电子版的好书,一收藏就是几十上百本,可惜真正看完的可能是零头。书是用来看的,这些放在硬盘里不看的图书,不如删除更换为几部AV短片(毕竟后者看的可能性要大得多)。但为什么这些好书,却不能好好阅读呢?这也不能全怪读者,而是电子版图书天生有其不足之处。第一,它不方便携带,它一定要在电脑面前才能阅读(特指有图有代码的编程技术电子书),不像纸质书那样可以在地铁公交甚至厕所里阅读;第二、长时间伤眼睛,书不同于短的文章,在电脑面前长时间阅读很容易疲劳,特别是要学习技术的书,看纸质书会更舒服一些;第三、不方便批注,尽管有的软件可以解决这问题,不过怎么使用不如纸质书来得方便;第四、有些电子书不清晰,有可能直接是把原书扫描而得,这显然无法和纸质书相比,阅读情绪会产生很大影响。所以,只有在能完全克服这些困难的人才可以通过阅读电子书来学习。不过现在老外的有些英文原版电子书制作得非常精良,在美元跌落却依然购买不起纸质书的前提下,阅读好的电子书也是不错的选择。

关于图书馆借书还是自己买书看的问题。有句俗语叫“书非借不能读也”。说的是因为自己的书,会有一种反正已经拥有,有空再读的想法,造成反而很长时间都不去阅读。而借的书因为有还期,所以抓紧读的机会还更大一些。加之图书馆借书可以省很多买书的钱,所以去图书馆借书也是不错的选择。不过图书馆的书很难跟得上时代,很多都太老了,有些新书图书馆虽然引进了,但因为抢手也很难借得到,特别好书,基本都要碰运气才行,加之有些书一个月外加一个月续借的时间很难读完。所以借图书馆的书是好办法,但有些书借不到时,还是要考虑购买。但盲目的购买图书显然不是好办法。说到买书,不妨几个同事相约买书,这样可以平摊的购书的成本,另外网络购书优惠不少,也是不错的选择。

总之,在国内的大环境下,读书还是编程工作者提升技术能力的最好办法。那么上面所谈到的问题,也就显得非常的必要。希望本文可以给你的技术书阅读有所帮助,我的看法也可能有失偏颇,大家一起讨论。但不管你是否同意,留句话,那尽管我花这么几个小时打字的劳动也甚感欣慰了。

关于阅读技术类图书的思考相关推荐

  1. 程杰:关于阅读技术类图书的思考

    很多做编程朋友都喜好读书的.但为什么要读书?读什么书?读多少书?如何读书?这都成了很大的问题.我想就这些问题谈谈我自己的看法.注意,本文读者最好是那些时间不多,希望通过读一些好书能有大收获的朋友.如果 ...

  2. 阅读用户思维的思考。

    阅读用户思维的思考. 在阅读用户思维的时候感觉对自己启发很大,想到自己以前以前做产品,如果知道这些知识可能会与有不同的效果. 看到书里面的一段话是这样说的,让用户变厉害,并且让他看到. 用户不是因为你 ...

  3. 如何高效阅读技术类书籍?

    阅读书籍是学习的重要方法之一,而是相对于博客等零散内容来讲读书是更加系统.(时间)成本更低.说过更多的一种学习方式.在阅读书籍,特别是技术类书籍时有些朋友往往会犯一些错误或不知所措.本文给大家分享一些 ...

  4. 技术类图书聚合的小众网站推荐

    今天想来和大家分享的这个网站适合于那些爱学习有自我成长需求程序员同学,如果你没有这个需求就不用继续往下看啦. 想必很多程序员同学都知道,全球范围内的新技术都是从外国飘过来的舶来品,如果想在第一时间获得 ...

  5. 新书 5 折腰斩!畅销技术类图书推荐

    题图 | Sale vector created by vectorjuice - www.freepik.com 以下新书按照 24 小时畅销度排名.附京东5 折购买链接,数量有限! 1. 活文档: ...

  6. 电脑看书软件_能全平台阅读的图书软件,是kindle? No!大公司低调出品

    读书使我们获益颇多,看小说体验人生的整个苦乐辛酸.看出版书几乎完美替代质感图书,进入2019年新纪元,我们都已经离不开手机,那么对于如此多的书籍阅读软件以及浏览器,我们如何选择?今天就为大家带来一款聚 ...

  7. 【肥朝】从一次问题讨论聊聊我对阅读源码的思考

    比如本文,没有深度思考的同学,很容易就被表面现象所迷惑,以为问题就此解决,立马关掉文章.但是深度思考的同学就会选择关注肥朝公众号,然后星标置顶,并思考,肥朝为什么能迅速找到这个关键的类呢?这个才是最核 ...

  8. 微信小程序-书籍阅读 【阅读、小说阅读、图书、世界读书日、爱读书爱分享】

    前言: 微信小程序分为 小程序端[原生微信小程序] 和 后端[node] 两套代码.主要有四大模块:查找书籍.分享图书.书架.管理员发布书籍.阅读给人以力量,作为毕业设计的话是一个令人眼前一亮的作品, ...

  9. 岁月凶残,敬请珍惜——得知早已不能过五四节时之随想[转自伍迷]

    本来是没有这篇博客的,但是昨天在天涯中看到一篇名叫<看了"五四"放假半天的新闻,我却哭了>的文章,我突然才发现,自己一直以为还算年青的人,却已经渡过了中年期的好几年了. ...

最新文章

  1. Centos 6.5下一个SNMP简单配置(snmp protocol v3,监控宝)
  2. Apache Hadoop 入门教程第一章
  3. fenby C语言 P20
  4. 游戏UI设计师怎样的作品更值钱?
  5. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]45.描述一些对抗RSA侧信道攻击的防御方法
  6. 2021年国庆节旅游数据报告
  7. C++学习随笔之一:基础
  8. foreach进不去报错java_为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作...
  9. Android 回声消除
  10. STK。如何规定“视线”的范围
  11. python爬虫基础Ⅱ——Ajax数据爬取、带参请求:QQ音乐歌单、QQ音乐评论
  12. 一次完整的PWM电磁摆设计实验---含手工制板全攻略
  13. 《新亮剑》力求炮火逼真 柱子金钟负伤骨折_0
  14. Zemax操作--4(公差问题)
  15. 自定义checkbox
  16. 求助 vs2019编辑C++项目:MSVC头文件大量报错
  17. 用Python进行批量文件整理
  18. Vagaa哇嘎软件,为您建造全球的互动娱乐中心
  19. java上传大文件慢处理方案
  20. python的ai写作_使用Python创建AI比你想象的轻松

热门文章

  1. 机器学习之——归一化
  2. 【C++基础】删除vector中指定下标元素
  3. [HDU6598] Harmonious Army(网络流方程建图)
  4. 高职教育人工智能专业调研报告
  5. [新手学IOS]项目实战-土豆客户端(2): searchViewController的实现
  6. c语言自动关机程序,自动关机程序:如何制作自动关机软件
  7. 英语从零到过英语4级不是梦,跟我一起考过四级!!!!!!
  8. 双向智能电表是什么?什么是双向智能电表?
  9. Unity 毛玻璃效果(UGUI)—高斯模糊
  10. Linux下vncviewer和vncserver的安装