拍摄是一件艰苦而有趣的事情。 它需要眼睛和心灵完全融合投入, 需要耐心等待排除干扰, 需要敏捷捕捉稍纵即逝的瞬间。 但是, 非艰苦不成乐趣。 人生也应该选择一件有难度的事情来做。 做不成, 可以收获过程的乐趣; 做成了, 可以收获丰厚的回报。

世道如今, 互联网已经成为一个巨大的资源池, 供人们自由学习和交流。 这是一件非常了不起的事情。 不过,纸质书籍依然不可或缺, 作为人们静心阅读的唯一选择。 IT 发展日新月异, IT 书籍也异彩纷呈,有薄的,有厚的,  该如何选择和阅读呢?   我觉得可以分为四类:

1.  快餐类书籍。 此类书籍篇幅短小, 但信息量丰富, 薄薄的一百页, 通过实例, 足够囊括一门技术的各种常用特性。 比较成功的书籍有 《正则表达式必知必会》 、 《Mysql 必知必会》 等。 我建议, 一个项目的官方介绍文档也应该做到这一点(而不仅仅是参考型手册)。 简明介绍该项目的起源, 目标, 特色, 理念、工作模型及若干实例以快速引导人入门上手。 比较好的例子有 ExtJs 。 阅读完快餐类书籍后,应该对这个新事物有个比较全面的了解,能够初步判断这个东西是否适合自己的项目。

2. 登堂入室类书籍。 此类书籍篇幅可能 300 - 500 页, 用于详细介绍一门技术的使用方式及细节内容, 这类书籍应该信息量丰富, 写作风格平实稳重略带诙谐。 比如成功的书籍有 《C++ Primer》 , 《Thinking in Java》,《Shell 脚本学习指南》、《XXX in action》 等。 阅读此类书籍需要耐心和规划,循序渐进。 读完之后, 你应该可以使用新东西上手开发。

3. 参考类书籍。 此类书籍主要是作为随时参考。 以 O'Relly 出版社的书最为出名。

4.  思想类书籍。 此类书籍作为增强自己的思维视界的补充读物。 例如 《黑客与画家》, 《Coders at work》 等。

基本上, 在读完登堂入室类的书籍后, 可以选择性地购买一本参考类书籍, 不定期阅读一些思想类书籍。更好地参考和使用网络文章(而不仅仅是盲听盲从,Ctrl+C/V)。 此外, 也要善于从同行那里学习和交流。 这一点,我做的还是很不够的。

一本好的书籍, 不仅教授正确的知识和技能, 更重要的是潜移默化地给予一个更好的思维方法和视角。 应该尽可能选择比较知名的书籍,同时注意要稍高于自己当前的能力水平。 要读一些有难度的书籍,会有些吃力, 一旦打通,会带来飞跃性的进步。当然也不要过于困难, 像《计算机程序设计艺术》这样的经典书籍,我还难以看懂,作为下一步的阅读目标,不过《编程珠玑》 、《程序设计实践》 这样的书确实值得一读,而且应该能够读懂。

我比较倾向于 图灵系列, O'Relly,  部分博文视点及华章图书的计算机丛书系列, 当然更重要的是书籍而不是出版社。 倾向与薄一些而不是大部头(没耐心)。倾向于思想类和登堂入室类而不是快餐类,尤其不会去读 《XXX快速开发》 之类的书籍, 因为我希望一本书能给我一个更好的思维和视角, 而不只是教会我用一个东西。快餐类的书籍内容我更愿意在网上下载下来浏览下就差不多了。参考类的书籍比快餐类的书籍用处更大一些,不过也适合从网络获取。一本书买来后,我希望能够带来比较长期的用处和影响,尽量具有珍藏的价值。 另外一点就是IT书籍通常都比较贵, 得节省银子。 软件开发更重要的是悟,入其间而能出其外, 而不是学一样用一样。

一个人读的书籍在某种程度上可能决定其事业高度和成就, 因为不同的书籍给予人的思维和视角是不同的。 不同的思维和视角会影响一个人的态度和性格。 性格播种习惯, 习惯催生行动, 行动决定命运。 虽然不完全正确, 也是很有道理的。

IT书籍的选择与阅读的更多相关文章

  1. Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)

    第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...

  2. 面试Tips

    面试Tips 面向对象:准备找工作的同学 内容概述:关于面试的一些经验总结,希望能带给你些许帮助.若有描述不准确的地方,欢迎指点建议. 内容提炼:共分为四阶段 1.面试前之静生慧 (1)课本知识过一遍 ...

  3. java学习书籍推荐

    1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...

  4. 架构师素养及从小菜进阶架构(CTO)的书籍【转】

    CTO要了解无线技术/搜索/大数据/数据库等. -- 通常定义架构有几个层次,这包括业务架构.产品架构.应用架构和技术架构: 1.业务架构:描述一个企业围绕一个行业做了哪些业务,例如支付行业的收单.退 ...

  5. Java 系书籍,,,,,,,,,,,,,

    Java 系书籍 本文仅对每本书做简单介绍,里面的精华我是希望留给各位看官仔细去阅读去琢磨~~ Java 1. <Java核心技术 卷1 基础知识> 2. <Java核心技术 卷II ...

  6. Java 推荐读物与源代码阅读

    Java 推荐读物与源代码阅读                                                     江苏无锡  缪小东 1. Java语言基础     谈到Java ...

  7. 初始化IoC容器(Spring源码阅读)-我们到底能走多远系列(31)

    我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? 毕竟,对自己的收入的分配差不多体现了自己的 ...

  8. 福昕阅读器drm加密解密总结

    drm是数字版权保护的一种方式,前一段时间在做四川文轩数字图书馆项目的时候用到了相关的知识,感觉这东西对于一些在线阅读和视频播放还是有很大用处的. 对于其工作原理我也很好奇,先摘抄度娘的内容如下,当然 ...

  9. 初始化IoC容器(Spring源码阅读)

    初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? ...

随机推荐

  1. android studio 0.8.11 如何导入Library(新手向)

    网上下了个ViewPagerIndicator的库,下载下来是个zip包,解压开来,里面有一个library和一个sample文件夹,还有一些其他的配置文件. 其中library就是我们新项目中要引入 ...

  2. Windows 服务器使用FTP出现“当前的安全设置不允许从该位置下载文件" 警告

    为了安全,Windows服务器默认禁用了从网上下载文件的安全选项.此错误即是出现在这里,所以打开这个选项即可: 控制面板  —— Internet选项 ——安全 —— 找到“自定义级别” —— 找到“ ...

  3. Activity的四种启动模式和onNewIntent()

    转自:http://blog.csdn.net/linghu_java/article/details/17266603 Android中Activity启动模式详解   在Android中每个界面都 ...

  4. Java hashCode

    Java中的集合(Collection)有两类,一类是List,再有一类是Set. 你知道它们的区别吗?前者集合内的元素是有序的,元素可以重复:后者元素无序,但元素不可重复. 那么这里就有一个比较严重 ...

  5. Windows网络共享权限设置

    文件共享权限有两种权限设置,只要理解这两种权限设置就可以在域控灵活运用. 第一种是网络共享权限 共享权限是控制用户通过网络访问共享文件夹的手段,共享权限仅当用户通过网络访问时才有效,本地用户不受此权限 ...

  6. Fluentd安装——通过rpm方式

    0. td-agent是何物 为了灵活性,fluentd用Ruby写的,其中一些性能敏感的部件使用c写的.普通的用户直接安装和使用Ruby进程可能有困难,这样就把它封装成Fluentd的稳定版本——t ...

  7. windows开发hadoop文件系统权限错误

    org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRI ...

  8. java web工程读取及修改配置文件

    这篇博客比自己讲解的详细: http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 使用方法: 1)配置文件在web-info的class目录下,或者 ...

  9. bash 截取字符串

    转载自http://blog.chinaunix.net/uid-1757778-id-3162034.html 命令的2种替换形式 $()和 ``示例:截断字符串    a):    #截取文件名称 ...

  10. decimal类型保留两位小数

    oj.PriceTop =Math.Round(Convert.ToDecimal(reader["PriceTop"]),2);