Top 100 Best Software Engineering Books.
来源:互联网 发布:ubuntu识别u盘 编辑:程序博客网 时间:2024/04/29 10:19
from:
http://knol.google.com/k/jurgen-appelo/top-100-best-software-engineering-books/z7e4mx2g6lir/3#
Top 100 Best Software Engineering Books, Ever
The Full List
This article contains a top 100 of the best software engineering books.
The Top 100 List
#
Author(s) / TitleYear
ISBN13
Jolt
sum
avg
1
Steve McConnellCode Complete: A Practical Handbook of Software Construction (2nd Edition)
2004
978-0735619678
**
243
4.72
2
Elisabeth Freeman, etc.Head First Design Patterns
2004
978-0596007126
**
237
4.63
3
Steve McConnellRapid Development
2003
978-0072850604
**
112
4.74
4
Erich GammaDesign Patterns: Elements of Reusable Object-Oriented Software
1994
978-0201633610
*
244
4.55
5
Bruce SchneierApplied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition)
1995
978-0471128458
*
99
4.61
6
Robert C. MartinAgile Software Development: Principles, Patterns and Practices
2002
978-0135974445
**
31
4.77
7
Joel SpolskyJoel on Software
2004
978-1590593899
*
48
4.71
8
Tom DeMarco, Timothy ListerPeopleware: Productive Projects and Teams (2nd Edition)
1999
978-0932633439
76
4.79
9
Frederick P. BrooksThe Mythical Man-Month, Anniversary Edition (2nd Edition)
1995
978-0201835953
124
4.54
10
Martin FowlerRefactoring: Improving the Design of Existing Code
1999
978-0201485677
138
4.54
11
Mike CohnAgile Estimating and Planning
2005
978-0131479418
43
4.74
12
Alistair CockburnWriting Effective Use Cases
2000
978-0201702255
*
45
4.62
13
Bertrand MeyerObject-Oriented Software Construction (2nd Edition)
2000
978-0136291558
**
43
4.47
14
Steve McConnellSoftware Estimation: Demystifying the Black Art
2006
978-0735605350
*
31
4.74
15
Mike CohnUser Stories Applied: For Agile Software Development
2004
978-0321205681
37
4.76
16
Donald E. KnuthThe Art of Computer Programming, Volumes 1-3 Boxed Set (2nd Edition)
1998
978-0201485417
109
4.39
17
Martin FowlerPatterns of Enterprise Application Architecture
2002
978-0321127426
*
54
4.46
18
Jeffrey FriedlMastering Regular Expressions
2006
978-0596528126
122
4.48
19
Andrew Hunt, David ThomasThe Pragmatic Programmer: From Journeyman to Master
1999
978-0201616224
127
4.42
20
Karl E. WiegersSoftware Requirements (2nd Edition)
2003
978-0735618794
*
44
4.48
21
Craig LarmanApplying UML and Patterns (3rd Edition)
2004
978-0131489066
178
4.37
22
Alistair CockburnAgile Software Development: The Cooperative Game (2nd Edition)
2006
978-0321482754
**
28
4.46
23
Gary McGrawSoftware Security: Building Security In
2006
978-0321356703
19
4.95
24
Gregor Hohpe, Bobby WoolfEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
2003
978-0321200686
31
4.74
25
Tom DeMarcoThe Deadline: A Novel About Project Management
1997
978-0932633392
*
52
4.42
26
Craig LarmanAgile and Iterative Development: A Manager's Guide
2003
978-0131111554
46
4.52
27
Eric A. Marks, Michael BellService-Oriented Architecture: A Planning and Implementation Guide for Business and Technology
2006
978-0471768944
33
4.45
28
Thomas H. Cormen, etc.Introduction to Algorithms, Second Edition
2001
978-0070131514
167
4.08
29
Thomas ErlService-Oriented Architecture: A Field Guide to Integrating XML and Web Services
2004
978-0131428980
32
4.59
30
Martin FowlerUML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)
2003
978-0321193681
*
139
3.95
31
Kent BeckExtreme Programming Explained: Embrace Change (2nd Edition)
2004
978-0321278654
*
126
3.98
32
Alan Shalloway, James TrottDesign Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)
2004
978-0321247148
109
4.33
33
Grady Booch, etc.Object-Oriented Analysis and Design with Applications (3rd Edition)
2007
978-0201895513
**
37
3.95
34
Jim HighsmithAgile Project Management: Creating Innovative Products
2004
978-0321219770
20
4.80
35
Scott BerkunMaking Things Happen: Mastering Project Management
2008
978-0596517717
55
4.53
36
Jon BentleyProgramming Pearls (2nd Edition)
1999
978-0201657883
28
4.50
37
Paul Duvall, etc.Continuous Integration: Improving Software Quality and Reducing Risk
2007
978-0321336385
**
13
4.85
38
Andrew Stellman, Jennifer GreeneApplied Software Project Management
2005
978-0596009489
15
5.00
39
Clemens SzyperskiComponent Software: Beyond Object-Oriented Programming
1997
978-0201178883
**
13
4.69
40
Arthur J. RielObject-Oriented Design Heuristics
1996
978-0201633856
27
4.78
41
Thomas ErlSOA Principles of Service Design
2007
978-0132344821
24
4.58
42
Mary Poppendieck, Tom PoppendieckLean Software Development: An Agile Toolkit
2003
978-0321150783
*
35
4.57
43
Ken SchwaberAgile Project Management with Scrum
2004
978-0735619937
30
4.47
44
Ken Schwaber, Mike BeedleAgile Software Development with Scrum
2001
978-0130676344
35
4.51
45
Joshua KerievskyRefactoring to Patterns
2004
978-0321213358
*
42
4.10
46
Alistair CockburnCrystal Clear: A Human-Powered Methodology for Small Teams
2004
978-0201699470
12
4.75
47
Steve McConnellSoftware Project Survival Guide
1997
978-1572316218
63
4.33
48
Tom DeMarco, Timothy ListerWaltzing With Bears: Managing Risk on Software Projects
2003
978-0932633606
**
23
4.52
49
Venkat Subramaniam, Andy HuntPractices of an Agile Developer: Working in the Real World
2005
978-0974514086
*
26
4.58
50
Kathy SchwalbeInformation Technology Project Management
2007
978-1423901457
27
4.63
51
Randall HydeWrite Great Code: Volume 1: Understanding the Machine
2004
978-1593270032
17
4.82
52
Scott RosenbergDreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
2007
978-1400082476
59
3.78
53
Cem Kaner, etc.Lessons Learned in Software Testing
2001
978-0471081128
35
4.54
54
Andy Oram, Greg WilsonBeautiful Code: Leading Programmers Explain How They Think
2007
978-0596510046
**
27
3.81
55
Luke HohmannBeyond Software Architecture: Creating and Sustaining Winning Solutions
2003
978-0201775945
27
4.56
56
Grady BoochUnified Modeling Language User Guide, The (2nd Edition)
2005
978-0321267979
81
3.30
57
Karl FogelProducing Open Source Software: How to Run a Successful Free Software Project
2005
978-0596007591
*
13
4.85
58
Michael FeathersWorking Effectively with Legacy Code
2004
978-0131177055
21
4.86
59
Kent BeckTest Driven Development: By Example
2002
978-0321146533
*
27
4.11
60
Per Kroll, Philippe KruchtenThe Rational Unified Process Made Easy: A Practitioner's Guide to the RUP
2003
978-0321166098
14
4.79
61
Thomas ErlService-Oriented Architecture: Concepts, Technology, and Design
2005
978-0131858589
60
4.15
62
Cem Kaner, etc.Testing Computer Software (2nd Edition)
1999
978-0471358466
35
4.34
63
Frank Buschmann, etc.Pattern-Oriented Software Architecture Volume 1: A System of Patterns
1996
978-0471958697
*
16
4.50
64
Harold Abelson, Gerald Jay SussmanStructure and Interpretation of Computer Programs - 2nd Edition
1996
978-0262011532
157
3.44
65
Dan PiloneUML 2.0 in a Nutshell
2005
978-0596007959
14
4.57
66
Brett D. McLaughlin, etc.Head First Object-Oriented Analysis and Design
2006
978-0596008673
**
35
3.77
67
Johanna RothmanManage It!: Your Guide to Modern, Pragmatic Project Management
2007
978-0978739249
*
7
5.00
68
James Shore, Shane WardenThe Art of Agile Development
2007
978-0596527679
11
4.64
69
Brian W. Kernighan, Rob PikeThe Practice of Programming
1999
978-0201615869
49
3.96
70
Ron Jeffries, etc.Extreme Programming Installed
2000
978-0201708424
31
4.35
71
Scott W. Ambler, Pramodkumar J. SadalageRefactoring Databases: Evolutionary Database Design
2006
978-0321293534
*
19
4.42
72
Jared Richardson, William GwaltneyShip it! A Practical Guide to Successful Software Projects
2005
978-0974514048
24
4.46
73
Greg Hoglund, Gary McGrawExploiting Software: How to Break Code
2004
978-0201786958
27
4.41
74
Michael NygardRelease It!: Design and Deploy Production-Ready Software
2007
978-0978739218
*
17
4.47
75
Edward YourdonDeath March (2nd Edition)
2003
978-0131436350
68
3.82
76
Stephen P. Berczuk, etc.Software Configuration Management Patterns: Effective Teamwork, Practical Integration
2003
978-0201741179
23
4.57
77
Elfriede Dustin, etc.Automated Software Testing: Introduction, Management, and Performance
1999
978-0201432879
40
4.55
78
Donald C. Gause, Gerald M. WeinbergExploring Requirements: Quality Before Design
1989
978-0932633132
25
4.72
79
Tom GilbCompetitive Engineering
2005
978-0750665070
13
4.92
80
David J. AgansDebugging
2006
978-0814474570
15
4.80
81
Eldad EilamReversing: Secrets of Reverse Engineering
2005
978-0764574818
14
4.64
82
Robert L. GlassFacts and Fallacies of Software Engineering
2002
978-0321117427
23
4.30
83
Martin FowlerAnalysis Patterns: Reusable Object Models
1996
978-0201895421
15
4.40
84
Matt WeisfeldThe Object-Oriented Thought Process (2nd Edition)
2003
978-0672326110
42
4.07
85
John M. VlissidesPattern Hatching: Design Patterns Applied
1998
978-0201432930
25
4.68
86
Johanna RothmanBehind Closed Doors: Secrets of Great Management
2005
978-0976694021
24
4.38
87
Robert K. WysockiEffective Project Management: Traditional, Adaptive, Extreme
2006
978-0470042618
26
4.35
88
Ellen GottesdienerRequirements by Collaboration: Workshops for Defining Needs
2002
978-0201786064
14
5.00
89
Eric EvansDomain-Driven Design: Tackling Complexity in the Heart of Software
2003
978-0321125217
42
4.24
90
Nick Rozanski, Eóin WoodsSoftware Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
2005
978-0321112293
12
5.00
91
Peter Rob, Carlos CoronelDatabase Systems: Design, Implementation, and Management (8th Edition)
2006
978-1418835934
27
3.37
92
Robert Orfali, etc.Client/Server Survival Guide (3rd Edition)
1999
978-0471316152
43
4.40
93
Douglas Schmidt, etc.Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects
2000
978-0471606956
21
4.33
94
Michael LoppManaging Humans: Biting and Humorous Tales of a Software Engineering Manager
2007
978-1590598443
21
4.29
95
Paul GrahamHackers and Painters: Big Ideas from the Computer Age
2004
978-0596006624
55
4.07
96
Philippe KruchtenThe Rational Unified Process: An Introduction (3rd Edition)
2003
978-0321197702
34
3.91
97
Joel SpolskyThe Best Software Writing I: Selected and Introduced by Joel Spolsky
2005
978-1590595008
22
4.14
98
James O. Coplien, Neil B. HarrisonOrganizational Patterns of Agile Software Development
2004
978-0131467408
13
5.00
99
Esther Derby, etc.Agile Retrospectives: Making Good Teams Great
2006
978-0977616640
17
4.53
100
Henry S. WarrenHacker's Delight
2002
978-0201914658
13
5.00
Legend
Year
= Year of Publication
Jolt **
= Jolt Winner
Jolt *
= Jolt Productivity Award
sum
= Number of reviews on Amazon
avg
= Average rating on Amazon
Scope of this List
For this Top 100 list I have included only books covering subjects found in the Software Engineering Body of Knowledge(SWEBOK). This means that I have left out books with main topics suchas web design, computer science, business management and systemadministration. The main reason for this is that I had to limit thescope (or I would never be able to finish it).
I also excludedall books that dealt with specific technologies, such as Java, .NET,Ruby and PHP. I was only interested in the potentially timelesssoftware engineering classics. In my opinion, technology books do notfall into that category. I did include books on project management (asproject management is one of the competences in SWEBOK) but only whenthose books explicitly dealt with managing software development.(That's why there is no generic PMP-related material on the list.)
Finding the Books
To find all these potentially timeless classics, I checked the best-selling books in these five Amazon categories:
Books > Computers & Internet > Computer Science > Software Engineering
Books > Computers & Internet > Computer Science > System Analysis & Design
Books > Computers & Internet > Programming > Algorithms
Books > Computers & Internet > Programming > Software Design, Testing & Engineering
Books > Computers & Internet > Project Management
AfterI found all best-selling software engineering books, I subsequentlyfound many other books through the "Customers Who Bought This Item AlsoBought" cross-reference feature. And that's how I finally ended up witha list of 250 books.
Note: in case of multiple editions ofthe same book, only the most recent edition is listed on the chart,though reviews and ratings were combined for all available editions.
Doing the Calculations
When it was time to do the calculations, I checked the number of customer reviews on Amazon,and I ranked the books according to these numbers (= a measure ofquantity). I also calculated the average Amazon ratings, and I rankedthe books according to these ratings (= a measure of quality). I thenchecked the number of Google hits for each of the books, and I rankedthem accordingly (= a measure of popularity). Finally, I took the threerankings, added extra points for all winners of Jolt awards, and thenre-calculated it into a final ranking. This resulted in the list younow have before you.
Note: this little project was performedin the first week of June, 2008. Current Amazon reviews and ratingsmight have changed since then.
I admit that the system Iused has no scientific basis. Nevertheless, I think the results arequite interesting, and I'm sure the list can be of great help if youwant to broaden your knowledge of the field of software engineering, inall its exciting dimensions. I suggest you start with number 1, andthen slowly work your way down. It shouldn't take you more than acouple of years…
Comments
Let's walk down the list and see what entries are worth pointing out...
First of all, it is obvious that Steve McConnell is the biggest hero among software engineers. (Well, at least among the reading part of the software engineering population...) Steve has no less than four entries on the list: Rapid Development (#3), Software Estimation (#14), Software Project Survival Guide (#47), and of course the Best Software Engineering Book Ever... Code Complete (#1). Congratulations to Steve for this stellar achievement!
There's only one other author with four entries on the Top 100 list. It's Martin Fowler, with Refactoring (#10), Patterns of Enterprise Application Architecture (#17), UML Distilled (#30) and Analysis Patterns (#83). And next in line is Alistair Cockburn, with three titles: Writing Effective Use Cases (#12), Agile Software Development (#22) and Crystal Clear (#46). It seems you cannot go wrong reading just about any of the books these guys are delivering!
After creating the top 100 list, one thing that immediately grabbed my attention was the #2 position for Head First Design Patterns, by Elisabeth Freeman, etc. The book ended two notches higher than the original (and more famous) Design Patterns (#4) by the Gang of Four(Erick Gamma, etc.) Several people had already informed me thatFreeman's book is actually more readable than the classic one by theGoF. And now the Top 100 list seems to indicate that this is indeed thegeneral public opinion. Freeman's book has a higher average rating onAmazon, and it was a Jolt Winner on top of that.
The best agile software development book is Agile Software Development: Principles, Patterns and Practices (#6), by Robert C. Martin. There are no less than 20 books onagile software development on the Top 100 list. It's obvious that noother topic has been so hot as the "agile" meme in the last decennium.
I would like to mention that I had a tough time deciding whether or not Mastering Regular Expressions (#18), by Jeffrey Friedl,actually belonged on the Top 100 list. I told you before that the listis about software engineering topics, and not about specifictechnologies. However, the book simply kept popping up in numeroussearches and references. And I considered that regular expressions areactually not a technology but an (interpreted or compiled) technique ornotation, just like UML, and useful for any software engineer,regardless of the type of application. So I relented, and Jeffrey gothis #18 slot on the list.
For books with different editions Isimply added the reviews and ratings for each edition, and used thelast edition as the only Top 100 entry. Scott Berkun, the author of Making Things Happen (#35) was lucky that I knew that the previous edition of his book had a different name: The Art of Project Management. He wouldn't have ended so high if I had not been able to catch that essential piece of information.
One book that deserves a special treatment is Dreaming in Code (#52), by Scott Rosenberg. It was released in 2007 (first edition) and it has already scored Amazon 59 reviews.
And another newcomer that's worth point out is Manage It! (#67), by Johanna Rothman.Johanna's relatively new book still had only seven reviews on Amazon(at the time of calculation), but she scored a perfect 5.0 rating, andshe added a Jolt award on top of that! Her book is the highest on thelist with such a small crowd of enthusiastic supporters, and an almostperfect score for quality.
Speaking of Jolt awards, the top 7 books on the list all have received such an award. The highest entry on the list that did not receive a Jolt award is Peopleware (#8), by Tom DeMarco and Timothy Lister.The book is one of the highest rated books ever, and I'm sure that theJolt jury regrets not having awarded Tom and Tim for their little (butvisionary) masterpiece.
At the other side of the scale we find The Unified Modeling Language User Guide (#56), by Grady Booch.Of all the books on the Top 100 list, this one has the lowest averageAmazon rating (3.30). But it is compensated by a large number ofreviews (81) and a huge number of Google hits. It's a nice example of abook having popularity winning over quality.
Last of all, I think there's no better way of ending this post than including a reference to Hacker's Delight (#100), by Henry S. Warren.It seems like a nice book to close the list at the bottom. I had neverheard of the book myself, but seeing that it has a perfect Amazonrating of 5.0 I'm sure that it's worth checking out.
Happy reading!
p.s. If you want to receive a nicely formatted Word-document of the list, you may email the author about it!
This article was originally published as a blog post at www.noop.nl. The original post will not be kept up-to-date. All future updates will be made in this Knol.
- Top 100 Best Software Engineering Books.
- Best Practices of Software Engineering
- Software Engineering Best Practices - Three Tier Architecture
- Top 5 Must-Read Software Development Books
- Best Android Books: My Top 5 Choices
- Top 20 Best Agile Development Books, Ever
- Top 20 Best Agile Development Books
- Software Engineering
- Software Engineering
- Software Engineering
- Software Engineering
- How to Get My Paper Accepted at Top Software Engineering Conferences
- Software Engineering 全部存档
- On Software Reverse Engineering
- Software Engineering Journals
- Intelligent Agent Software Engineering
- Software Engineering Measurement
- Strategic Software Engineering
- C#调用非托管DLL函数
- 免费浏览器兼容测试工具
- 几个有用的网址
- CSDN不为人知的秘密
- 点击按钮,弹出一个可关闭的层窗口,网页背景变灰
- Top 100 Best Software Engineering Books.
- 列举实现合并GridView的单元格各种方法代码
- 《CLR via C#》第23章 执行异步调用 读书笔记 part1
- 转换函数
- ESBasic 可复用的.NET类库(01) -- 时刻 ShortTime
- make命令参数详解
- 微软中文类库
- Java检查型异常和非检查型异常
- 文摘:Linkedin创始人霍夫曼:成功的三个秘诀