【zt】开发人员进阶读书指南

Posted on 2009-12-05 21:48 深夜两点 阅读(269) 评论(0)  编辑  收藏
(http://www.yeeyan.com/articles/view/115732/71484)

阅读软件开发相关书籍,是程序员在技能和职业上为自己投资的好办法。但是,需要阅读那些书?应该按照什么顺序来进行?这份书单适合那些刚刚开始,一心想要提高自己的编程能力,想要以程序员为职业的人。

我之前曾说,阅读软件开发有关的书籍,是在你技能和事业上投资的好办法。 但是哪些应该阅读呢?而且该按照什么顺序阅读呢? 我已经编制了一份书单,我认为它能真正大幅提高你的能力。 我已经安排好它们的顺序,分为3个阶段,我相信这种顺序是最有成效的。这份书单主要是为那些刚刚起步的开发人员编写的,当然专业的开发者也可参照,它对周围那些想获得提高的人来说都是相当有用的。

首先,你应该关注的是提高书写干净,毫不含糊的,可维护代码的能力。 下列书籍应该大大有助于您:

  1. 测试驱动开发(肯特·贝克)
  2. 重构(马丁·福勒)
  3. 实现模式(肯特·贝克)
  4. 代码大全:第二版(史蒂夫·麦康奈尔)
  5. Working Effectively With Legacy CodeMichael Feathers
  6. Clean Code (Robert C. Martin)

上述的读书顺序可能使有些人感到惊讶,但我敢打赌,这是最有效的阅读顺序。

当你学会了如何书写伟大的代码,你应该开始以简洁的设计和架构为重点。 这并不是说,你应该只集中于设计和架构,但你越了解它,你会变得越好:

  1. 设计模式(Gang Of Four 
  2. 企业应用架构模式(马丁·福勒)
  3. 领域驱动设计(埃里克·埃文斯)
  4. 企业集成模式(格里高·Hohpe,鲍比·沃尔夫)
  5. Release It! Design and deploy production-ready software(Michael T. Nygard)
  6. 97 Things Every Software Architect Should Know (edited by Richard Monson-Haefel)

这一阶段可能值得说明的是在这部分列出的一些图书中可能是有点'争议'的。 如果您已经阅读了第一阶段的书籍,那么你应该有能力用你自身的观点看待第二阶段的这些书籍。 你会了解到,你不应该仅仅仿照那些模式,但了解它们的存在肯定是一件好事。

最后,您需要了解如何在团队环境下工作并理解团队的动力。 下面的书籍不是具体介绍团队中的工作,但包含了众多的智慧和洞察力,这一定会帮助您在专业的团队环境中工作:

  1. 极限编程,第二版(肯特·贝克)
  2. The Art Of Agile Development (James Shore & Shane Warden)
  3. 人月神话,20周年纪念版(弗雷德里克·布鲁克斯)

这本书可能也需要一点说明。 我并不是说你应该做极限编程。 但你了解它肯定不会有害处,至少你应该在你认为有意义的时候去尝试采用这种做法。 你并不会真的需要去采用所有的做法(虽然你这样做会获得额外的好处,或者至少假装这样做),但它们中的一些,每个人都应该至少了解一下。

所以就是这样了...尝试用上述方式阅读这些书,不要忘了以后感谢我 

A Reading Guide To Becoming A Better Developer

I’ve stated previously that reading software development books is a good way of investing in your skills and your career. But which ones should you read? And in what order should they be read? I’ve compiled a list of books that i think can truly increase your skills substantially. I’ve put them in the order in which i believe they will have the most effect, and grouped them in 3 ’stages’. I primarily have young developers who are just getting started as professional developers in mind with this list, but it should be just as useful to developers who’ve been around for a while and simply want to improve.

The first thing that you should focus on is improving your ability to write clean, unambiguous, maintainable code. The following books should greatly help you with that:

  1. Test-Driven Development (Kent Beck)
  2. Refactoring (Martin Fowler)
  3. Implementation Patterns (Kent Beck)
  4. Code Complete: 2nd Edition (Steve McConnell)
  5. Working Effectively With Legacy Code (Michael Feathers)
  6. Clean Code (Robert C. Martin)

The order of this stage might surprise some people, but i’m willing to bet that this is the most efficient order to reading those books.

After you’ve learned how to write great code, you should really start focusing on clean design and architecture. That’s not to say that you should focus solely on design and architecture, but the more you know about it, the better off you will be:

  1. Design Patterns (Gang Of Four)
  2. Patterns Of Enterprise Application Architecture (Martin Fowler)
  3. Domain-Driven Design (Eric Evans)
  4. Enterprise Integration Patterns (Gregor Hohpe, Bobby Woolf)
  5. Release It! Design and deploy production-ready software (Michael T. Nygard)
  6. 97 Things Every Software Architect Should Know (edited by Richard Monson-Haefel)

This stage probably deserves a bit of clarification as some of the books listed in this part might be somewhat ‘controversial’. If you read and learned from the books in the first stage, then you should be capable of putting everything you read in the second stage in perspective. You will have learned that you shouldn’t just apply as many patterns as possible, but it’s certainly a good thing to know about their existence.

Finally, you need to learn about working in a team environment and understanding team dynamics. The following books aren’t about working in teams specifically, but contain a tremendous amount of wisdom and insight that will definitely help you when it comes to working in a professional team environment:

  1. Extreme Programming Explained, Second Edition (Kent Beck)
  2. The Art Of Agile Development (James Shore & Shane Warden)
  3. The Mythical Man-Month, 20th Anniversary Edition (Frederick P. Brooks)

This one probably needs a bit of clarification as well. I’m not saying that you should do Extreme Programming. But it certainly won’t hurt you to learn about it, and at least try to apply the practices that you believe in when it makes sense to do so. You don’t really need to apply them all (though you will get bonus points from the cool kids if you do so, or at least pretend to), but there are a few of them that everyone really should do regardless of which agile variant you subscribe to.

So there you have it… try those books out in that order, and don’t forget to thank me later




只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问