伍迷家园

让编程融入生活
随笔 - 79, 文章 - 0, 评论 - 1404, 引用 - 136
数据加载中……

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

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

       首先,在中国,程序员只能靠读书来提高自己的编程或设计能力,这本身其实是很无耐的,因为国内软件编程方向的教育已经远远落后于编程业的发展了。名师凤毛麟角,能够听到名师的课的人非常少。运气好,进了大学或者公司,有个高手师兄或者大牛同事带一带,成长会快些。否则,要想提高,除了读书,还真是没有别的办法。由于本人曾经做过数学教师,我很清楚,数学学习如果只是给你几本参考书,然后就能高考得高分,那是不可能的(你如果例外,只能说你是天才,没有普遍意义),但数学教育已经发展了不知多少年,特别中国这样以应试教育为主导的国家,数学是不需要好书只要有好的老师就可以出好的学生,而软件编程教育的师资就实在是不容乐观。而我想强调的是,读书永远没有老师的教学来得有效(注意需要强调“好”字)。因为老师和学生之间是有互动的,是在一个交流的气氛中学习,而不是读书的那种完全单方向的信息传递。现在有了网络视频录像,情况得到了很大改善。不过视频同样存在只能告诉你东西,而不能最快速的解决你碰到的疑问的单向信息传递问题。比如你看了一个视频学习如何用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短片(毕竟后者看的可能性要大得多)。但为什么这些好书,却不能好好阅读呢?这也不能全怪读者,而是电子版图书天生有其不足之处。第一,它不方便携带,它一定要在电脑面前才能阅读(特指有图有代码的编程技术电子书),不像纸质书那样可以在地铁公交甚至厕所里阅读;第二、长时间伤眼睛,书不同于短的文章,在电脑面前长时间阅读很容易疲劳,特别是要学习技术的书,看纸质书会更舒服一些;第三、不方便批注,尽管有的软件可以解决这问题,不过怎么使用不如纸质书来得方便;第四、有些电子书不清晰,有可能直接是把原书扫描而得,这显然无法和纸质书相比,阅读情绪会产生很大影响。所以,只有在能完全克服这些困难的人才可以通过阅读电子书来学习。不过现在老外的有些英文原版电子书制作得非常精良,在美元跌落却依然购买不起纸质书的前提下,阅读好的电子书也是不错的选择。

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

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

posted on 2008-03-27 12:50 伍迷 阅读(6435) 评论(96)  编辑 收藏 所属分类: 软件工程

评论

#1楼    回复  引用    

好长, :-)

看书的个人选择,要么让人明理,要么让人益智,要么让人开拓视野。

最最没有用的是字典,资料类的书籍,有了计算机还要这样的书籍干嘛!

#2楼    回复  引用    

但愿每次阅读都和您一样用上这些方法
2008-03-27 13:06 | 力大无比 [未注册用户]

#3楼    回复  引用  查看    

说的很有道理,读书确实是一门学问,要会读书,读好书。另外,非常同意作者说的关于电子版和纸版书的阅读问题,本人以前也收集了很多经典的电子图书,各个方面的都有,文学、计算机、等等,可最后读的很少,一方面确实伤眼睛,另一方面没有纸质的方便,也只是浪费空间。有一次一下把它全部删了,现在改为读纸质版的,好多了
2008-03-27 13:11 | 風逝無言      

#4楼    回复  引用  查看    

您说得太对了。我也以为读纸质书要比电子书读得顺眼[可就是太贵:(]。:)

#5楼    回复  引用  查看    

我挺肓目地买了好多书了!这可能也是从小是个书虫的缘故吧

老师你的<大话>我也正在看,虽有做笔记,但却一直没编码!
或许说理解了一些,却觉得空荡荡的,真正应用到项目的时候总感觉拿不出手

谢谢!或许我应该从另一种方式去品味书,谢谢老师你的提醒!嘿嘿
2008-03-27 13:12 | yellowyu      

#6楼    回复  引用  查看    

我不知道多久没看书了。。。。
大部分的知识来自 Google, or Cnblogs...
其他的事儿么,靠自己想吧,或者问比我更高的高手。
2008-03-27 13:18 | 随风流月      

#7楼    回复  引用    

文章不错,不愧是做老师的,注重学习方法。
2008-03-27 13:21 | cnodin [未注册用户]

#8楼    回复  引用  查看    

因为老师和学生之间是有互动的,是在一个交流的气氛中学习,而不是读书的那种完全单方向的信息传递。如果有个老师,或者旁边有个同学,这种问题几秒钟就能解决。你的问题一个接一个,书中没有答案,答案只能依靠自己去想。如果你坚持去想,你会有“悟”通的一天,但是更大的可能是,算了,设计模式也太难了,以后再研究吧。
说的很好,我就是一人坚持自己学习!旁边没有学习这个的人。这种情况很多很多!单方面的信息传递。哎!!做个广告:乐于很我交流的,希望更多人的参与。加我MSN:liyongjing@live.cn
2008-03-27 13:29 | 李永京      

#9楼    回复  引用  查看    

学习了.呵呵.
2008-03-27 13:42 | 狼Robot      

#10楼    回复  引用    

全部都说到点子上了.

学习和如何学习都很重要.


2008-03-27 13:43 | Johnny R [未注册用户]

#11楼    回复  引用  查看    

刚买了大话设计模式 觉得不错,书的风格很好。
2008-03-27 13:43 | WilsonWu      

#12楼    回复  引用    

受教了..
2008-03-27 13:45 | 东 [未注册用户]

#13楼    回复  引用    

非常同意你的看法
2008-03-27 13:47 | xts [未注册用户]

#14楼    回复  引用  查看    

读书能让人静下心来。网上看网站容易让人浮躁。
2008-03-27 13:49 | 杨正祎(阿一)      

#15楼    回复  引用  查看    

非常受用.最近感觉看纸的书还好些,因为直接可以在上面写批注.对于电子书如果篇幅小我就打印出来,多的话就直接边看边做笔记了.重构和敏捷软件开发都下到了电子版,说实话,真像博主所言,书下载了不少,真正看完的没有多少,而且即使看完,电子版的因为不能快速翻阅,那么看完一遍基本都忘了.不过买书还是要买精典的,另外,遇到大家一致评论的好书还是及早下手为好,因为过一段时间就绝版了,到时候就只能找电子版了.
2008-03-27 13:49 | 毁于随      

#16楼    回复  引用  查看    

读书是一种快乐
尤其是在那豁然开朗的瞬间
支持楼主
2008-03-27 13:54 | floodpeak      

#17楼    回复  引用  查看    

我现在倒是喜欢读电子版的书,双屏幕的显示器可以朝着书,敲代码
2008-03-27 14:03 | 生鱼片      

#18楼    回复  引用    

大哥~~ 看了你说的之后~~ 你那本书我必买啦~
2008-03-27 14:10 | 夕颜 [未注册用户]

#19楼    回复  引用    

看完了,有些道理,呵呵。
我水平不够,就不发表评论了,友情顶
2008-03-27 14:21 | 张浩水 [未注册用户]

#20楼    回复  引用  查看    

这需要经验,还要时间,还有一点,,对读书来不来神跟与什么样的人有很大的关系。。
2008-03-27 14:27 | 真见      

#21楼    回复  引用  查看    

说的好....
2008-03-27 14:38 | 搞IT的狐狸      

#22楼    回复  引用  查看    

非常同意楼主的观点,技术书籍,光看代码不练手效果很差的.
2008-03-27 14:56 | 笑煞天      

#23楼    回复  引用  查看    

“边读,边笔记,边练习”——受教也
2008-03-27 14:59 | sekihin      

#24楼    回复  引用  查看    

楼主说的好,受教!
2008-03-27 15:13 | Gao Zhongfa      

#25楼    回复  引用  查看    

学习lz关于读书的心得,支持看书在理解上敲代码的风格~

2008-03-27 15:16 | 早班火车      

#26楼    回复  引用    

非常好,经验之谈亚
2008-03-27 15:41 | 感冒了 [未注册用户]

#27楼    回复  引用    

说的全在点子上,,果然高手~
2008-03-27 15:47 | SAIZONE [未注册用户]

#28楼    回复  引用    

@xiao_p(匿名)
应该是有了 网络
2008-03-27 15:53 | amen1 [未注册用户]

#29楼    回复  引用  查看    

感兴趣楼主的图书分类:

从技术书的分类来看,简单的分就有程序设计、软件工程、数据库、网络、图形图像等等;
从技术难度上分,就有入门读物、进阶读物、高级读物等;
从写作形式上分,有教材类、论文类、休闲类等;
从价位上,有10-30、30-60、60-90、90-抢钱没商量价等;
从书的厚度或阅读时间来讲,有三天读完、两周读完、两月读完、半年读完、阅读三遍、终生阅读等分类;
当然最重要的分类,应该是垃圾书、一般书、可读书、精品书、必读书等。

对于出版人而言,尤其要好好考虑这样的分类。
2008-03-27 15:59 | designbook      

#30楼    回复  引用  查看    

内容都是真知灼见啊。确实读书应该有这样的方法。
2008-03-27 16:07 | 水果阿生      

#31楼    回复  引用  查看    

思考,思考最重要
2008-03-27 16:46 | Jeffrey Zhao      

#32楼    回复  引用    

很有道理,选书、看书的原则说的不错

不过感觉象是对广大学生说的...
2008-03-27 17:16 | MLY@ [未注册用户]

#33楼    回复  引用  查看    

说得好

书就应该这样读,不然就白读了
2008-03-27 17:18 | 电机拖动      

#34楼    回复  引用  查看    

带着思考读书,在这浮躁的世界里,在静静的深夜读书也是一种别样生活:-)
2008-03-27 17:44 | Anytao      

#35楼    回复  引用  查看    

我就喜欢读纸介质的,如果看电子的,一是感觉记不住,二是如果以后有个知识点在电子书上,总是找不到在那一页,搜索太麻烦了,呵呵
2008-03-27 18:58 | 兴百放      

#36楼    回复  引用  查看    

数学学习如果只是给你几本参考书,然后就能高考得高分,那是不可能的
--
这就不对了,对于一般学生来说不可能,但也不一定要天才,需要的只是勤奋的人。一个学生能够把数学课本的所有课后习题做3遍,无论这是哪个数学分支,他绝对能得相当高分。
2008-03-27 21:01 | Cat Chen      

#37楼    回复  引用  查看    

第一,它不方便携带,它一定要在电脑面前才能阅读(特指有图有代码的编程技术电子书),不像纸质书那样可以在地铁公交甚至厕所里阅读;第二、长时间伤眼睛,书不同于短的文章,在电脑面前长时间阅读很容易疲劳,特别是要学习技术的书,看纸质书会更舒服一些;第三、不方便批注,尽管有的软件可以解决这问题,不过怎么使用不如纸质书来得方便;第四、有些电子书不清晰,有可能直接是把原书扫描而得,这显然无法和纸质书相比,阅读情绪会产生很大影响。

--

将以你去买读电子书专用的移动设备。

1.比PDA略大,但是很薄,易于携带
2.使用e-ink技术,类似黑白的液晶计算器显示那样,通过自然光源反光显示,不容易疲劳
3.部分设备支持comment和bookmark
4.大多数英文书,不是印刷用版本,都是OCR好的,因此不存在此问题

电子设备的唯一不足是:如果你在茅坑里发现没纸了,你不能选择从它上面撕一页下来擦屁股……
2008-03-27 21:17 | Cat Chen      

#38楼 [楼主]   回复  引用  查看    

@Cat Chen
哈,刚上来,正好看到你的两个较长的回复,也感受到了你的入厕无纸幽默。我简单谈谈我对你的问题的看法吧。

首先我想你一定是高中的优秀学生,有足够的自学能力和勤奋。因此你所提到的数学学习方法不带有普遍性。

我在江苏常州做过两年高中数学教师。学生数量加起来也已经一两百人了。在相同的智力和勤奋条件下,有没有一个好的老师,差别是相当大的。越是能力差的学生越是明显。比如你提到的把数学课本后的习题做三遍,我想高考得90分是不难的,但显然高考的竞争很激烈,及格的分数是不能满足需要。另外,难道在做这些习题时就没有困难,就所有的题目都会?有人指点可以事半功倍。编程也是同样的,我在写设计模式书的时候,时常对着天花板发呆,很困惑,很苦恼,此时,我多么希望GoF中的任何一个或者Martin或者其它大牛在我面前指点我一下。

另外,千万不要忽略情感因素。一个人自学成材,需要很大的毅力。而有人的鼓励,特别是老师的鼓励,就会坚持下去。我有一个学生,本来门门课都差,但就是由于我对他说了句,“你的数学一定学得好,你有这个天分”。后来他的数学一直全班第一(没有吹牛,事实也让我惊讶)。这里情感因素起了非常大的作用,这是一个人看书不能解决的问题。

你的第二个问题,我想和我所说的没有什么矛盾。随着电子技术的发展,用一些新的电子设备可以解决问题。我原文中有“不过现在老外的有些英文原版电子书制作得非常精良,在美元跌落却依然购买不起纸质书的前提下,阅读好的电子书也是不错的选择。”不过有个前提,阅读英文书需要一定的基础,这未必适合所有人,特别是英文基础不太好朋友,一开始就不借助电子辞典顺利阅读还是有一定困难的。

感谢所有朋友的回复。
2008-03-27 21:55 | 伍迷      

#39楼    回复  引用  查看    

写得不错!
2008-03-27 21:57 | 超晨      

#40楼    回复  引用    

一看到好书就想买,可惜就是不怎么读呀!呵呵
2008-03-27 22:04 | qwzsky [未注册用户]

#41楼    回复  引用  查看    

@伍迷
我觉得英文实在不能算是障碍,看书需要多少英文呢?如果这些英文都是障碍的话,已经很难说是“能力”上的问题,而是“态度”上的问题了……学好技术比看懂英文技术文章困难多了。而如果态度不好,又能做好什么事情呢?
2008-03-27 22:36 | Jeffrey Zhao      

#42楼    回复  引用    

受教了.
2008-03-27 22:57 | CCyy [未注册用户]

#43楼 [楼主]   回复  引用  查看    

@Jeffrey Zhao
你说得没错,从长远的角度讲,要想编程好,英文是一定要学好的,起码要在阅读上不应该有什么问题。不过你Jeffrey Zhao是复旦毕业,是微软的MVP,像你这样的能力的人毕竟是非常少的。

我觉得在程序员中,还是有许许多多,大专甚至中专毕业。他们编程基础相对比较差,英文基础也不好,让他们一开始就直接阅读计算机英文原版图书,你让他们如何学下去呢?如果程序员都必须要能阅读英文文档才可以做的话,十个有九个可能就放弃了。

任何学习都要有个过程。假设英语需要半年学习可以阅读原版图书,而学编程也需要半年可以找到工作,两者同时进行可能又精力和能力都有限。我相信这类人基本都会先去学编程,而不是英语,因为只会阅读英语,什么工作也找不到,而有一定的编程能力就可以在社会上混口饭吃。这很现实,也是事实。

这也让我想起了《笑傲江湖》中的华山派,分为剑宗和气宗,剑宗走捷径,气宗打基础,五年里剑宗胜,十年后打平手,二十年后气宗远远超出。我感觉在现实社会,是我,我也会先学剑,后练气,这样至少先有小本事,然后再图大发展。

哈,如果再发散一下,又可以谈到敏捷开发还是瀑布开发的区别了。不多说了。总之,你说的是没错的,而我说的其实也是没错的,只不过我们看待的角度不同罢了。
2008-03-27 23:22 | 伍迷      

#44楼    回复  引用  查看    

有很多值得思考借鉴的地方
多谢了
2008-03-27 23:28 | qiuwch      

#45楼    回复  引用    

good!总结的不错
2008-03-28 08:54 | 名刘 [未注册用户]

#46楼    回复  引用  查看    

内容写的不错,但是就是看起来有点累,多分几个段可能会看得舒服的。。。没办法现在老了,注意力容易分散
2008-03-28 09:05 | 可乐加冰      

#47楼    回复  引用    

真的想骂你,“你太厉害了”
2008-03-28 09:09 | WMJ [未注册用户]

#48楼    回复  引用    

有双屏的显示器来看电子书确实是比较舒服, 不过总是觉得时间久了太累, 还是纸质书看起来舒服.
2008-03-28 09:29 | mmkk [未注册用户]

#49楼    回复  引用    

看用电脑看书,受的影响太多,老想着聊QQ,看网站,没发专心
2008-03-28 09:55 | 积雨云 [未注册用户]

#50楼    回复  引用  查看    

分享点自己的经验:
入行这么多年,书确实是读了不少,每次搬家最头疼的就是搬书!不论是是Delphi、C#、数据库、SQL、网络、设计模式、UML、OOAD、软件工程,从入门到提高,再到精通,这个过程其实就是 【选书(入门级) >读书>实践>再选书(中高级)>读书>实践!】

所以,什么时候读什么书,如何选择一本适合自己这个阶段读的书就很重要。

【选书】:China-pub永远是我选书的首选之地,因为那里的书评比较多,虽然灌水者不少,书托也挺多,疯狗乱咬人的偶尔也能见到,但是经过细心甄别,还是会得到很好的参考!我对一本书的最初的了解,几乎都是从China-pub的书评开始的!读原版的话,就是去亚马逊看书评了!

【买书还是借书】:这也是一个问题,我的经验是这样的,最最开始的时候,自己的辨别能力不行,虽然有China-pub做参考,但是还总是在买到仔细阅读以后发现实在难以读下去的书!所以那个阶段我只借书,一般专业计算机书店都是同时可以办借书证的,因为是专业书店,所以大部分书都能顺利借到,如果仔细读部分章节后发现是本烂货,那尽快换掉就是了!所以那个阶段我几乎每个周末都会去那家书店,这个阶段至少持续了一年半左右。过了这个阶段之后我就没借过书了,因为自己已经有能力分辨一本书是否是好书,是否值得购买收藏,如果结果都是True,那就买吧!读好书的过程就是加薪进爵的过程,买本又何妨呢?

另外,我的习惯是读书的时候会加很多批注,把书画的很花那种,每章读完都会加上时间和评语,已供日后参考!这些批注都是宝贵的资源,所以我都会妥善保存好的。

伍迷说得没错,作为一名程序员,成长的过程就是一个读书的过程,这个过程还会一直持续下去。

最后补充一点:China-pub的送货服务做得实在不敢恭维,所以我一般选好书后,买书还是去当当,呵呵!实在是有点对不住China-pub啦!

补充一点以前整理的东西(下载PDF格式):站在巨人的肩膀上 Laughing
2008-03-28 10:38 | Justin      

#51楼    回复  引用  查看    

我能不能问问,“以设计模式为例,入门读《Head First设计模式》,进阶再去读GoF的《设计模式》”,那我花钱买的您的书该怎么办啊??什么时候读呢?我是初学者。
2008-03-28 10:47 | spoony      

#52楼    回复  引用    

总结的非常有道理
2008-03-28 11:08 | imxjb [未注册用户]

#53楼 [楼主]   回复  引用  查看    

@Justin
感谢你的分享,这些经验也很值得大家学习。
2008-03-28 11:12 | 伍迷      

#54楼 [楼主]   回复  引用  查看    

@spoony
哈,我在文章里总不能一直强调我自己的书好吧,这会引起读者的反感的。因此在此文的写作上我没有提我的书。

其实我觉得《大话》和《Head First》风格有些类似,各有其内容优势。《大话》优点是内容更加中国化,语言更符合中国人的习惯,而且价格便宜。缺点是插图太少,没有《H》书制作的精良。

说着说着又做起广告来了,不多说了,从初学者角度,《大话》值得一读,大牛就不需要去读了,去啃GoF的吧。
2008-03-28 11:18 | 伍迷      

#55楼    回复  引用  查看    

其实很多方法大家都知道
关键是在于坚持
2008-03-28 12:30 | oec2003      

#56楼    回复  引用  查看    

其实电子版的书还是有好处的,特别是英文书;毕竟原版的书遇见不认识的还带一本字典吗?电脑上解决的办法就较多了

#57楼    回复  引用    

受教了,尤其楼主#43楼的看法。我想楼主能否给不同水平的人推荐几本参考书呢?
2008-03-28 12:37 | Ivans [未注册用户]

#58楼 [楼主]   回复  引用  查看    

@Ivans
建议到一些图书网站上看评论,毕竟多人的评论还是有价值的。一个人的看法通常片面。
2008-03-28 13:29 | 伍迷      

#59楼    回复  引用  查看    

密密麻麻的一篇文章,看过后对以后买书,读书会有些帮助
2008-03-28 14:14 | LeoS      

#60楼    回复  引用  查看    

关于从头读到尾这个问题...

真正有内容的书,我觉得不重头读到尾倒是奇怪的事情。 比如DP,比如SICP,可以说每一句话或多或少都有点用。 另外一些书,我觉得如LZ所说,可以作为参考,有事没事找和自己关系紧密或者愿意先看的部分翻一翻。

另外,读书不宜太多; 读书太多是有害的,他往往是一个迷失自我的过程。 让自己的需求带动去读书,比跟着舆论趋势读书要强的多。 Jolt大奖也不见得就代表着对于你来说同样具有“含金量”。人的时间有限,还是我一直在说的,基本上哪个真正的大牛也不是读书读出来的。

最后就是,对于有一定水平和经验的人来说,拿批判的态度看一般的书。 不要以为写书的就多牛,你的思考在一些点上不见得就比作者(甚至Fowler这样的作者)浅薄。

当你试着去批判他,如果失败了,就会让自己的认识得到修正;如果成功了, 就会让自己的思考得到加深。 这才是我们看书的目的。

尽信书不如无书。
2008-03-28 15:30 | 怪怪      

#61楼    回复  引用    

讲得很精辟!
顶!!!!!!!!
2008-03-28 16:03 | Hu Ivan [未注册用户]

#62楼    回复  引用    

恩!支持下!

打算买《大话》来看看,但看CHINA-PUB上说马上要出第二版,有些勘误把,不知道是不是 啊
2008-03-28 19:33 | cclover [未注册用户]

#63楼    回复  引用  查看    

楼主讲的很棒,感觉收获很大:)
Jeffrey Zhao说的“我觉得英文实在不能算是障碍,看书需要多少英文呢?如果这些英文都是障碍的话,已经很难说是“能力”上的问题,而是“态度”上的问题了……学好技术比看懂英文技术文章困难多了。而如果态度不好,又能做好什么事情呢?”
很是受教!看来以后得端正一下态度了...
2008-03-28 21:04 | Passerby      

#64楼    回复  引用  查看    

呵呵,我们学校可以借3个月。图书馆确实是一个非常不错的资源。
2008-03-28 21:14 | Sandwi      

#65楼    回复  引用  查看    

看英文原版,学校如果可以找到IEEE的英文原版最好。为了看电子书,买了个激光打印机,打下来看,也算是奢侈享受了……
2008-03-28 22:38 | Dream world 梦想天空      

#66楼 [楼主]   回复  引用  查看    

@cclover
《大话》现在市面上应该都是第二次印刷的了。不过二次印刷只是部分文字上的勘误改动,影响不会很大的
2008-03-28 23:01 | 伍迷      

#67楼    回复  引用    

读电子书确实眼睛痛死拉 现在我的眼球凸出来好多 丑死个人

对于没工作经验的人 ( 我就是) 技术书这个东西 读的收获有限 忘的快啊 要用到实践中去 如果你读的多的话 最多都有个印象 算入门吧 不可能很深刻理解 有了实践经验后 读起书来应该轻松一点

谁能给我介绍个实习机会 我是大专马上就要毕业 家里的给的压力大啊 痛苦死了 qq512014103
2008-03-29 02:13 | wowdd11 [未注册用户]

#68楼    回复  引用  查看    

长做电脑前~看书倒是可以算是休息~感觉看书的时候有更多思考的空间,好书加上思考和编程经验,会受益良多的
2008-03-29 02:26 | wsky      

#69楼    回复  引用  查看    

楼主总结得太好了`~
2008-03-31 16:08 | 圣炎¢天乐      

#70楼    回复  引用    

读书,无论电子版还是纸质的,只要有就好。但是最近遇到一个怪现象,C#编程的书不是基础语法的,就是数据库方面的,没有一本是专门说网络编程的,我这里指的网络编程不是那种ASP.Net的编程,是应用程序方面的,比如socket,传送文件,P2P文件下载之类。百度、谷歌也只能搜索到一些极少的零星的文章。

可以阅读MSDN学习,但是太费力了。唉~~~
2008-03-31 20:22 | 钢琴诗人 [未注册用户]

#71楼    回复  引用    

呵呵,写的不错。“书非借不能读也”。不习惯在电脑前看书。
2008-04-01 10:29 | Ikbear [未注册用户]

#72楼    回复  引用    

纸质书还是比电子书更易读啊 无论是从心里上还是视觉上
2008-04-01 11:38 | 念时11 [未注册用户]

#73楼    回复  引用    

谢谢楼主,感觉看书方法真的很重要!
2008-04-07 14:00 | yooplmqj [未注册用户]

#74楼    回复  引用    

受教很多,尤其是 不动笔墨不读书
和关于读电子书的部分
2008-04-14 13:57 | hbjava1985 [未注册用户]

#75楼    回复  引用    

嗯。。那是。。买了大话和HEAD FIRST之后反而没有兴趣读了。。现在还是去图书馆借书来看。。。
2008-04-17 21:41 | 牛腩 [未注册用户]

#76楼    回复  引用    

喜欢看代码少而概念深的书,不是说代码少就不会写代码了,而是把思想讲清晰了,不用示例代码自己都已经可以写出来的那种,而且可以跨语言了
2008-04-22 16:49 | 屹砾 [未注册用户]

#77楼    回复  引用  查看    

讨论好热烈,受益匪浅
2008-04-23 20:46 | 路缘      

#78楼    回复  引用  查看    

恩。多谢。知道该怎么做了
2008-04-23 21:44 | 留恋星空      

#79楼    回复  引用  查看    

恩,很有同感,谢谢你!
2008-04-23 22:19 | PuserChen      

#80楼    回复  引用  查看    

--引用--------------------------------------------------
風逝無言: 说的很有道理,读书确实是一门学问,要会读书,读好书。另外,非常同意作者说的关于电子版和纸版书的阅读问题,本人以前也收集了很多经典的电子图书,各个方面的都有,文学、计算机、等等,可最后读的很少,一方面确实伤眼睛,另一方面没有纸质的方便,也只是浪费空间。有一次一下把它全部删了,现在改为读纸质版的,好多了
--------------------------------------------------------
2008-04-24 10:36 | 镜涛      

#81楼    回复  引用  查看    

虽然买书要花很多钱,尤其是现在的书普遍都是漫天要价,但我还是喜欢读书,不喜欢看电子书。
非常感谢,学到了很多!
2008-04-24 11:12 | kun.zhang      

#82楼    回复  引用    

以前自学都苦于看什么书的问题,今天看到本文收益了,且比预期多,谢谢了。
有个小小提议:何不自己把电子版变成纸板版呢?叫人打或自己打。
2008-04-28 22:29 | sdyzandy [未注册用户]

#83楼    回复  引用    

真不愧是位好老师。
2008-05-24 18:03 | aishame [未注册用户]

#84楼    回复  引用    

一个字“好”,这是我完全看完的第一篇,一共看了两篇,以后我会经常看的,谢谢作者,谢谢楼主,你们辛苦了,为了我们这样的“小菜”,你们的慷慨真的很让我感动,再次谢谢
2008-05-27 18:46 | 李新新 [未注册用户]

#85楼    回复  引用    

说得很有启发性,顶你
2008-05-30 09:52 | kyo [未注册用户]

#86楼    回复  引用