喜欢Liunx,C,爱好嵌入式技术,爱好Qt 等跨平台技术
分类: IT业界
2013-08-26 21:05:45
我自己认为我是一个不大喜欢看书的人, 相对于书,我可能跟喜欢看视频和同高手一起讨论交流。 但是, 真正静下心来, 想着这么多年来,对我影响很大的一些书, 也能想到一些。 索性, 总结一下, 就当是是为了那过去的岁月来一次简单的重新来过。
我是上大学的时候, 因为学的专业是软件工程, 所以才开始接触计算机,接触到编程的。 当时在学校里面, 学习了很多有关计算机的课程, 站在现在工作了三年的角度来看, 当时的专业课程中, 应当说大部分都是都用的。伴随着这些课程, 其实相对应的教材也是很经典的。
1. 《数据结构》(C语言版) 严蔚敏 编著 清华大学出版
评论: 这本书算是编程基础中的基础, 里面将计算机中最常见的数据结构,从链表、栈、队列、数组, 到树、图、哈希表等, 都进行了详细的讲述。 当时学习的时候, 可能比较机械, 因为是大二开始学的, 所以对计算机的操作系统、编译器等知道的不多,所以理解不深。 后来, 尤其是参加工作后, 去研究LInux系统的内核, 内核中的各种实现, 其基础的数据结构,都来源于当年学习的那本书。
2. 《编译原理》 刘坚著 西安电子科技大学出版
评论: 编译原理, 在当时看来, 是计算机中比较难的课程了。 各种抽象的概念,比如自动机、有向图等, 当时学习的时候那是一个吃力。 随着在编程方面的经验越来越多, 到现在工作了 , 感觉如果要想更加深入理解程序,理解计算机的工作原理, 就不得不必须知道点 有关编译的知识了。 了解了编译, 让我们写代码时更加深层次的考虑,写出高效高质量的程序来。
3. 《C++程序设计语言》(影印版) 高等教育出版社
评论: 这本书是当年学习C++的教材, 英文影印版的。 当时我们学校的学院院长,号称将这本书读了17遍。 虽然是英文的, 但是读起来还是比较轻松的。 我个人曾经在学校里面也读过, 确实是C++ 的经典教材。 这本教材的经典在于, 会将作者(C++之父)的心得写在每个章节后面,提示如何做更好。
4. 《C++ Primer》
评论: 这本书也是经典了, C++学习的入门级别的作品, 初学者,对面向对象理解不深刻的同学,可以从中学到很多。 现在都不知道出第几版了
5. 《C语言程序设计》 唐浩强 清华大学出版社
评论: 说了《C++ Primer》 , 就不得不说 这本书。 这本书是我认为的C语言,甚至是高级程序设计的语言最最入门级的书籍。 虽然有些老师说这本书写的太注重语法了,不太重视程序设计的理念。 但是, 从我的角度看, 作为入门级的学习,还是可以的。 不过, 不能僵化的使用这本书, 读的太深入了,会导致“走火入魔”, 也就是老师谈到的真正忘了程序设计的精髓了。
6. 《Java编程思想》
评论: 这本书因为多年不搞Java , 几乎都要遗忘了。 一直在想, 当年面向对象的学习对我影响最大的是哪本书, 应该就是这本了。Java 是纯面向对象的, 各种面向对象的语法支持。 这本书最大的收获, 是结合Java的语言特性, 详细解答了面向对象的编程思想。 对于学习和理解面向对象, 是再合适不过了。
以上几本书, 是在我上学的时候学习的, 现在还保存的几本书, 平时也会翻一翻。 后来找工作的时候, 又看了一本《程序员面试宝典》(第二版) , 这本书应该说总结的也还不错, 既有关于工作方面的经验之谈, 也有关于技术面试的常见题型, 这些题目会让我们学习到一些书本上没有的东西, 对要找工作的人确实起到一定的帮助。
工作三年多了, 看的技术类别的书籍不多, 断断续续的看了一些, 有一些经典书籍,也是值得大家读一读的。
7. 《代码大全2》 电子工业出版社
评论: 这本书重点讲述了有关如何写好代码, 写出好代码要注意什么, 怎么样才能写好代码。 总这本书中, 可以收获关于代码的编程规范要求, 写出高质量代码的必要意识等。 在学校里面, 或许要求只要写出代码来就行。 虽然讲过一些规范,但是很少。 但是工作之后, 代码写的不规范,以后维护起来就很痛苦了。 如果你想让自己的代码更上一个台阶, 推荐读一读这本书,并且按照书里面说的去做, 我想一定会有质的变化。
8. 《敏捷软件开发 原则、模式和实践》 邓辉译 清华大学出版社
评论: 这本书是我在敏捷当SM的时, 重点学习的。 虽然过去一年多了,但是对这本书中的内容,仍然记忆犹新。 这本书好像是分为三个部分, 首先还是谈到了敏捷的价值观、原则等有关敏捷开发的内容。 其次是介绍了软件设计的SOLID的原则, 这几个原则相对于《设计模式》 那本书中谈到的, 更加具有实用性和广泛性。 后来,这些原则指导着我对软件的设计,受益匪浅。 最后一部分, 谈到了一些具体的实践, 这些实践也是经验之谈, 能够让我们在日常开发中少走很多弯路。
9. 《 设计模式:可复用面向对象的软件基础》 机械工业出版社
评论: 这本书号称是软件设计中的经典, 如果要学设计,就必须得看这本设计模式。 不过我个人感觉经典之作,可能对于初学者来说, 入门有点难。 因为初学者对面向对象的伟大思想,还没有理解到这一层次,甚至对抽象、多态、接口编程等这些基本的概念,还没有理解透彻。 我觉得这本书可以先看看, 然后等有了一定的面向对象设计经验, 再回过头看, 感觉就不一样了。 学设计模式, 最好的方法还是学习、实践、再学习,再实践。 只有实践了, 才能对面向对象的设计模式理解的更加透彻。 不过话说回来, 也不能过分设计,不能为了设计而设计。
10. 《高质量程序设计》 林锐博士著
评论: 这本书也算是C/C++的经典之作吧。 这本书的特点是语言并不是一般技术书籍的枯燥, 而是比较口语化且带有一些幽默。 同时, 将程序设计中最容易犯的常见错误,都进行了讲解。 作为代码的质量提升方面, 和《代码大全2》 一起,算是同类型的书籍。 关于在代码提升方面, 还有比如《C和指针》、《C专家编程》、《C缺陷和陷阱》……
11. 《重构: 改善既有代码的设计》 人民邮电出版社
评论: 这本书算是代码重构方面的经典中的经典了。 讲述了各种关于重构方面的技巧,重构的意识等。 这本书我没有完全读完, 因为一些内容和代码大全中也有。
这些年, 除了上述列举的我认为对我的工作和技术有帮助的书籍外, 还阅读过如下:
1. 《 测试驱动的嵌入式C语言开发》 -----这本书重点讲述了采用TDD的方式进行嵌入式C语言开发, 教你一些实践经验,比如软件模拟硬件逻辑来打桩等
2. 《C嵌入式编程设计模式》 -----------这本书重点讲述了嵌入式编程方面的C语言常用设计模式,属于过程式语言的实践经验。 对于常常写驱动程序的同学, 这本书值得一读。
3. 《深入理解Linux网络技术内幕》 --------这本书 对Linux 网络编程方面 有深入的讲解,尤其是好的设计
4. 《深入理解LInux内核》 -
5. 《 解析极限编程——拥抱变化》 ------XP如何实践, 这本书可以借鉴
除了这些外, 我更喜欢从网络上来获取相关的资料, 尤其是CSDN的各位专家的博客, 有关于技术的、有关于程序人生的、有关于生活的…… 总之, 你能想到的, 这些这里都有, 给我以指导, 其经典不亚于上述这些书籍。
从2004年上学开始接触计算机开始, 从第一个C语言的Hello World 程序, 到现在独立完成某个大型项目的模块功能; 从当时邮件都不知道怎么发的菜鸟, 到现在可以熟练的操作控制计算机, 虽称不上专家, 但是也还凑合; 这些年过去了, 一直以来,都是这些书籍, 让我一点点的进步。 书, 是我永远的朋友 !