程序员自我提升阶段的首选书籍
来源:互联网 发布:java hashcode 源码 编辑:程序博客网 时间:2024/06/16 11:36
其实两年之前(那是我还在上大三)就曾在书店里看到这本书,当时可能是被书名所蛊惑吧,看到"修炼之道"这四个字就感觉这本书书名太唬,拿起来翻了翻也没看到什么有关"修炼"的实质内容,于是就将它搁置了。
两年的时间里,实习和工作让我积攒起了一定的代码量和项目经验,同时在这段时间里,我阅读了很多书籍,以弥补大学里不努力学习的过失。后来再次在书店看到了这本书,才发现书中的不少内容和我这两年的一些感触产生了共鸣,于是将其买下,仔细的阅读了一遍。
这本书的翻译还是很不错的,个别的字眼可能比较晦涩(比如“古鲁”或是“曼特拉”之类的怪词),不过不影响整体的阅读,关键的词汇以及语句译者给出了原文,这一点是很不错的。
一般来说,刚刚接触编程的人,更倾向于从具体的程序代码学习编程的理念,而不是从程序设计理论书籍去理解编程的概念。就像学习英语,在刚开始的时候,最重要的是扩大自己的阅读量和词汇量,而不是“钻研”各种奇淫技巧。所以,计算机编程的入门书籍里都包含了大量的示例代码片段,初学者通过模仿这些代码,在心里逐步建立起一个属于自己的程序设计模型。这是程序设计的第一个阶段,也就是入门阶段。
在编写了一定量的代码,对编程有了一定的了解之后。逐渐的,我们开始对自己的编写的程序,以及程序设计进行反思:程序为什么要这么设计?以什么方式可以编写出更好的程序?如何在编写程序时少走不必要的弯路?这时我们最需要的,不再局限于某种语言的语法或者是xxAPI的使用方法,而是面对实际问题需要的灵活的处理方案,亦或是去理解被前辈所认可的相对正确的软件设计方法。在这时,我们处于程序员的第二个阶段,也就是自我提升阶段。
当然我们也可以通过自己的摸索,逐步找到上面问题的答案,然而这样会付出很大的代价。阅读相关的书籍,可以令我们少走不必要的弯路,加快我们水平的提升速度。事实上这样的书籍并不多。
The Pragmatic Programmer(以下简称TPP)这本书,就是在自我提升阶段,值得反复阅读的绝好的书籍。这本书里面涉及到了在软件开发中的方方面面:从正确的理解需求到灵活的设计实现,从估算/提升程序的运行效率到提升软件的开发效率,从程序员的自身修养到与他人交流时的tips。这本书用非常短小的篇幅,覆盖了非常大的范围(事实上,这是我看过的覆盖面最广的有关程序员技术的书籍)。
传统的计算机书籍一般采用自下而上,由浅至深,循序渐进的方法来讲述计算机理论。而TPP这本书的组织结构显的比较松散,章节之间相对独立,这使得“随机阅读”成为可能:你可以随便的翻到某一章直接阅读,而有联系的章节均在每一节末尾给出。每一节里面都有一两个起到概括全文作用的Tips,这些Tips都是前辈经验的结晶,需要被牢记。和代码大全2里的Checklist相类似,TPP把全书出现的70个Tips整合到一起,放在了书末尾,以便查阅。
然而,由于篇幅所限,TPP在介绍程序设计的理念及原则时,都是"点到为止",也就是说,TPP只提供了一个通往成为注重实效的程序员的前进方向,而具体的细节,则需要你在工作中,或者进一步阅读相关书籍来把握。因此我在这里提供一些值得阅读的后续书籍:
编写程序:程序设计实践(The practise of programming)从各个方面,讲述了如何编写正确、优美的程序
交流:人性的弱点,这个... 不用多说了吧,和编程无关,但是程序员应该读读它,毕竟我们不只和计算机打交道
算法速率和估算:编程珠玑(Programming pearls)是介绍编写实用高效算法和正确程序的最好的书籍
生产效率:卓有成效的程序员(The productive programmer)里提供了很多实用的小工具,以及提升编程效率的具体途径。
软件构建:代码大全2(Code complete 2nd edition),超级经典的软件构建过程全书,从下至上介绍了软件构建过程中的大量使用技巧和细节。
重构:重构-改善既有代码的设计(Refactoring- refactoring improving the design of existing code)阐述了重构的理念,并提供了大量的重构技巧。
编程规范:.Net设计规范(Framework Design Guidelines)一书以微软.Net Framework开发团队的视角,提供了大量.Net编程的实用规约(Convention)
下面是对本书翻译的一点小建议:
古鲁这个词在英文中是Guru,这个词汇来源于印度,意为宗教领袖,后来被引申为计算机领域的大师。个人认为在这里音译Guru显得很诡异,翻译成"大师"显得更为合适。(Head First 设计模式一书也是这么翻译的)
曼特拉这个词在英文中是Mantra,这个词汇同样源于印度,意为教义。译者同样使用了音译,个人认为翻译成"信条"更为合适
接下来是对电子工业出版社的一些建议:
个人感觉自从07年下半年到现在,电子工业出版社就没再引进过很好的国外计算机图书了,希望电工社能注意到这一点。
希望电工社可以引进下面这两本书:
http://www.amazon.com/Computer-Systems-Programmers-Perspective-2nd/dp/0136108040
深入理解计算机系统第二版,此书就不用多介绍了吧,的最好的计算机系统导论教材。
http://www.amazon.com/Programming-Language-Pragmatics-Third-Michael/dp/0123745144
程序设计语言-实践之路第三版,此书的第一版和第二版都是电工社出版的,我看过第二版,无论是翻译质量还是内容都很不错,希望可以尽快引进第三版(如果可能,希望还是裘宗燕老师翻译)
http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/
Programming: Principles and Practice Using C++ ,C++之父编写,我看过的最好的程序设计入门书籍,同时也是我看过的最好的C++入门书籍
两年的时间里,实习和工作让我积攒起了一定的代码量和项目经验,同时在这段时间里,我阅读了很多书籍,以弥补大学里不努力学习的过失。后来再次在书店看到了这本书,才发现书中的不少内容和我这两年的一些感触产生了共鸣,于是将其买下,仔细的阅读了一遍。
这本书的翻译还是很不错的,个别的字眼可能比较晦涩(比如“古鲁”或是“曼特拉”之类的怪词),不过不影响整体的阅读,关键的词汇以及语句译者给出了原文,这一点是很不错的。
一般来说,刚刚接触编程的人,更倾向于从具体的程序代码学习编程的理念,而不是从程序设计理论书籍去理解编程的概念。就像学习英语,在刚开始的时候,最重要的是扩大自己的阅读量和词汇量,而不是“钻研”各种奇淫技巧。所以,计算机编程的入门书籍里都包含了大量的示例代码片段,初学者通过模仿这些代码,在心里逐步建立起一个属于自己的程序设计模型。这是程序设计的第一个阶段,也就是入门阶段。
在编写了一定量的代码,对编程有了一定的了解之后。逐渐的,我们开始对自己的编写的程序,以及程序设计进行反思:程序为什么要这么设计?以什么方式可以编写出更好的程序?如何在编写程序时少走不必要的弯路?这时我们最需要的,不再局限于某种语言的语法或者是xxAPI的使用方法,而是面对实际问题需要的灵活的处理方案,亦或是去理解被前辈所认可的相对正确的软件设计方法。在这时,我们处于程序员的第二个阶段,也就是自我提升阶段。
当然我们也可以通过自己的摸索,逐步找到上面问题的答案,然而这样会付出很大的代价。阅读相关的书籍,可以令我们少走不必要的弯路,加快我们水平的提升速度。事实上这样的书籍并不多。
The Pragmatic Programmer(以下简称TPP)这本书,就是在自我提升阶段,值得反复阅读的绝好的书籍。这本书里面涉及到了在软件开发中的方方面面:从正确的理解需求到灵活的设计实现,从估算/提升程序的运行效率到提升软件的开发效率,从程序员的自身修养到与他人交流时的tips。这本书用非常短小的篇幅,覆盖了非常大的范围(事实上,这是我看过的覆盖面最广的有关程序员技术的书籍)。
传统的计算机书籍一般采用自下而上,由浅至深,循序渐进的方法来讲述计算机理论。而TPP这本书的组织结构显的比较松散,章节之间相对独立,这使得“随机阅读”成为可能:你可以随便的翻到某一章直接阅读,而有联系的章节均在每一节末尾给出。每一节里面都有一两个起到概括全文作用的Tips,这些Tips都是前辈经验的结晶,需要被牢记。和代码大全2里的Checklist相类似,TPP把全书出现的70个Tips整合到一起,放在了书末尾,以便查阅。
然而,由于篇幅所限,TPP在介绍程序设计的理念及原则时,都是"点到为止",也就是说,TPP只提供了一个通往成为注重实效的程序员的前进方向,而具体的细节,则需要你在工作中,或者进一步阅读相关书籍来把握。因此我在这里提供一些值得阅读的后续书籍:
编写程序:程序设计实践(The practise of programming)从各个方面,讲述了如何编写正确、优美的程序
交流:人性的弱点,这个... 不用多说了吧,和编程无关,但是程序员应该读读它,毕竟我们不只和计算机打交道
算法速率和估算:编程珠玑(Programming pearls)是介绍编写实用高效算法和正确程序的最好的书籍
生产效率:卓有成效的程序员(The productive programmer)里提供了很多实用的小工具,以及提升编程效率的具体途径。
软件构建:代码大全2(Code complete 2nd edition),超级经典的软件构建过程全书,从下至上介绍了软件构建过程中的大量使用技巧和细节。
重构:重构-改善既有代码的设计(Refactoring- refactoring improving the design of existing code)阐述了重构的理念,并提供了大量的重构技巧。
编程规范:.Net设计规范(Framework Design Guidelines)一书以微软.Net Framework开发团队的视角,提供了大量.Net编程的实用规约(Convention)
下面是对本书翻译的一点小建议:
古鲁这个词在英文中是Guru,这个词汇来源于印度,意为宗教领袖,后来被引申为计算机领域的大师。个人认为在这里音译Guru显得很诡异,翻译成"大师"显得更为合适。(Head First 设计模式一书也是这么翻译的)
曼特拉这个词在英文中是Mantra,这个词汇同样源于印度,意为教义。译者同样使用了音译,个人认为翻译成"信条"更为合适
接下来是对电子工业出版社的一些建议:
个人感觉自从07年下半年到现在,电子工业出版社就没再引进过很好的国外计算机图书了,希望电工社能注意到这一点。
希望电工社可以引进下面这两本书:
http://www.amazon.co
深入理解计算机系统第二版,此书就不用多介绍了吧,的最好的计算机系统导论教材。
http://www.amazon.co
程序设计语言-实践之路第三版,此书的第一版和第二版都是电工社出版的,我看过第二版,无论是翻译质量还是内容都很不错,希望可以尽快引进第三版(如果可能,希望还是裘宗燕老师翻译)
http://www.amazon.co
Programming: Principles and Practice Using C++ ,C++之父编写,我看过的最好的程序设计入门书籍,同时也是我看过的最好的C++入门书籍
- 程序员自我提升阶段的首选书籍
- 程序员自我提升阶段的首选书籍
- 程序员自我提升阶段的首选书籍
- 程序员的自我提升
- 程序员的自我提升
- 关于程序员的自我提升
- 程序员提升自我素养应该读的书(包含团队管理、自我素质、技术书籍类)
- 程序员努力提升自我的途径
- 初级php程序员的自我提升
- 程序员自我提升方式
- 程序员自我提升方式
- 程序员自我提升
- 工作三年的程序员如何在技术上实现自我的提升
- 提升能力,挑战自我-----------------注:刚工作的JAVA程序员
- 程序员提升自我修养的具体方法有哪些?
- 孤独的自我提升
- Shuffle阶段的自我理解
- 博客是程序员提升自我必备
- linux常用命令总结
- 网络游戏开发的灵魂-数据结构与算法
- IE7或者IE8全屏解决方案
- diff . patch备用
- 析构函数(C# 编程指南)
- 程序员自我提升阶段的首选书籍
- c#集合
- PHP将死。何以为继?
- JDBC连接到各种数据的方法
- tomcat日志
- JVM内存管理&GC机制 原理资料收集
- android 常见死机问题--log分析
- 排序算法——选择排序
- dorado导出excel的一些问题