100 best books on Software Engineering
-
Compiled from Amazon reviews/rankings, Google hits and Jolt awards[^]. Personal impressions: 1) So many classics left out because they're too specific about one technology (Stevens on Unix programming, Petzold on Windows programming, K&R, etc...). 2) How many of these books do people actually read? Did anyone read all of Knuth's "Art of Computer Programming"? 3) Lots of injustices. "The Pragmatic Programmer" really deserves a better rating. "Head First Design Patterns" doesn't deserve to be 2nd. 4) Funny how many Agile-specific titles are in the list (including related like SCRUM). Specific for non-Agile I only saw on RUP. 5) Steve McConnell, Martin Fowler and Alistair Cockburn are the masters.
Of all forms of sexual aberration, the most unnatural is abstinence.
Reading is theory, experience is practice In my opinion reading gives you a base knowledge that somehow is consistent on the specific issue. But in practice it always is a little different. Normally you take the good things from a book and adapt it to the real world. What is never told in the technical books is the view on money, and that's what it's finally all about, at least in business. from sunny snowy switzerland Dani
-
Compiled from Amazon reviews/rankings, Google hits and Jolt awards[^]. Personal impressions: 1) So many classics left out because they're too specific about one technology (Stevens on Unix programming, Petzold on Windows programming, K&R, etc...). 2) How many of these books do people actually read? Did anyone read all of Knuth's "Art of Computer Programming"? 3) Lots of injustices. "The Pragmatic Programmer" really deserves a better rating. "Head First Design Patterns" doesn't deserve to be 2nd. 4) Funny how many Agile-specific titles are in the list (including related like SCRUM). Specific for non-Agile I only saw on RUP. 5) Steve McConnell, Martin Fowler and Alistair Cockburn are the masters.
Of all forms of sexual aberration, the most unnatural is abstinence.
Proper name of the list should be "100 best books on Software Engineering of the best selling books" And I think this does explain the high ratio of Agilish books... Having read (and owning) quite a few of these books, I still don't understand why I fail to proper appreciate agile methods... or that might be the very reason ;)
-
I agree. I've seen developers who know "ALL" the design patterns but can't write methods properly.
Sunny Ahuwanya "The beauty of the desert is that it hides a well somewhere" -- Antoine de Saint Exupéry
The GoF is just a line of conduct. The danger is that programmers tend not to think their design anymore, to think their application is perfect because they use Design Patterns only. From my computer science education, I learnt object-oriented programming concepts, but I never had an example on how to use it cleverly. Design Patterns are these missing examples to me - and only examples.
-
i hate books about programming.
Chris Losinger wrote:
i hate books about programming
Why? Being lengthy and time consuming?
"In the end it's a little boy expressing himself." Yanni
-
Proper name of the list should be "100 best books on Software Engineering of the best selling books" And I think this does explain the high ratio of Agilish books... Having read (and owning) quite a few of these books, I still don't understand why I fail to proper appreciate agile methods... or that might be the very reason ;)
Martin Fowler, Jon Bently, Frederick P. Brooks, and Eric Gamma titles worth a look. Most of the rest are pretty hit and miss. Donald Knuth is a legend, but I agree with the earlier comments, to me he is perhaps not a great popular writer, his books are pretty intimidating. I preferred reading Robert Sedgewicks stuff, he was a student of Knuth. I've read some of the Agile stuff, it has its place but it occupies far too much of the top 100 as stated. A lot of the Agile, UML, SOA and patterns books are in reality pretty average books. No K&R, Bjarne Stroustrup C++, or Penfold get serious ? Never been a fan of Steve McConnell books personally, so I can't see why he gets top spot or four books in top 100. The list seems to take a publishers view of 'Software Engineering' titles, its a pretty lazy list probably generated by a computer ? A few gems in there though...
-
i hate books about programming.
Uhhhh, are you in the right community?
-
Chris Losinger wrote:
i hate books about programming
Why? Being lengthy and time consuming?
"In the end it's a little boy expressing himself." Yanni
pedantic, boring, instantly obsolete, full of useless examples.
-
Uhhhh, are you in the right community?
i'm a programmer, not a programming book reader.
-
i'm a programmer, not a programming book reader.
Alright then.... So how do you learn new programming things without reading?
-
pedantic, boring, instantly obsolete, full of useless examples.
Chris Losinger wrote:
pedantic, boring, instantly obsolete, full of useless examples.
Boring yes, obsolete depends to the context, pedantic and full of useless examples; not all of them I believe. I have recently been reading some books on software engineering, OO design and design patterns particularly, and I think I can create better softwares now :rolleyes: . I also believe that what I've read can't be conveyed easily in any other form. The amount of information is a lot. I can remember I started learning computer and programming by reading books as well. May I ask what other sort of learning medium or source do you use or prefer to use instead?
"In the end it's a little boy expressing himself." Yanni
-
Alright then.... So how do you learn new programming things without reading?
employers sometimes pay for classes. and the internet is full of code samples.
-
Chris Losinger wrote:
pedantic, boring, instantly obsolete, full of useless examples.
Boring yes, obsolete depends to the context, pedantic and full of useless examples; not all of them I believe. I have recently been reading some books on software engineering, OO design and design patterns particularly, and I think I can create better softwares now :rolleyes: . I also believe that what I've read can't be conveyed easily in any other form. The amount of information is a lot. I can remember I started learning computer and programming by reading books as well. May I ask what other sort of learning medium or source do you use or prefer to use instead?
"In the end it's a little boy expressing himself." Yanni
Hamed Mosavi wrote:
May I ask what other sort of learning medium or source do you use or prefer to use instead?
the internet has been useful.
-
Hamed Mosavi wrote:
May I ask what other sort of learning medium or source do you use or prefer to use instead?
the internet has been useful.
Chris Losinger wrote:
the internet has been useful.
To find a quick answer to my questions it had been a great help to me either, but for in depth information specially for beginners I think book is the way to go.
"In the end it's a little boy expressing himself." Yanni
-
pedantic, boring, instantly obsolete, full of useless examples.
Chris Losinger wrote:
pedantic, boring, instantly obsolete, full of useless examples.
Hmm, I've only found that to be the case with books on Java/C++/OO which jump straight into object-oriented abstractions in an unnatural way (e.g. the first and only book on C++ which I spent much time on; "Teach yourself C++ in 10 days" (what an absurd premise), which came with Borland C++ Builder 3 when I got it in 1998 - on day two or three, it jumped into "Limousine inherits from Car" with some horrible analogy about 'protected' attributes). After that, I just paid attention to my college notes on the web, coasted the assignments and brute-forced through two reasonably large projects (an 8086ish emulator and an AI thing) and eventually learned to hate C++ :| Before that, I had read the first "C for Dummies" book and enjoyed it immensely, although it's certainly obsolete now and very simplistic introductory material. However, I'm currently reading SICP which, while old, feels neither boring, pedantic nor obsolete, and the examples seem very fitting (as well as a little re-education in maths for me, one of my long underdeveloped skills). There's something rewarding about doing an exercise and seeing your code approximate pi or find fixed points of useful functions (perhaps especially when you've sucked at maths for ages).
-
I'll take someone with 10 years experience writing commercial apps who hasn't read any of those books over someone with 3 years experience who has.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
I'll take someone with 10 years experience writing commercial apps who hasn't read any of those books over someone with 3 years experience who has.
There is some redundancy in this statement. I think we can remove the 'reading' element from it and be clearer: "I'll take someone with 10 years experience writing commercial apps over someone with 3 years experience." Reading has nothing to do with that, and it doesn't help to build a straw-man out of "experienced programmer vs. inexperienced wannabe programmer" and cast it upon the practice of reading. Every programmer should keep reading and learning.
Joe Woodbury wrote:
My point is that reading is not a substitute for experience, yet too many people think it is.
No, but it's an excellent complement to experience. You seem to treat it as if people either read books on programming or they program. This is not the case, except with unwise people who will surely learn the error of their ways :-D.
-
Chris Losinger wrote:
i hate books about programming
Why? Being lengthy and time consuming?
"In the end it's a little boy expressing himself." Yanni
-
i'm a programmer, not a programming book reader.
That's like being a Doctor, not a medicine book reader...would you go to that doctor? How about a Lawyer, not a law book reader...would you trust this guy to get you out of jail? OK, taking classes definitely helps, but how do you think the instructor learned what he's teaching? The internet is full of samples, true, but are they trustworthy? efficient? proven to work? Besides, what difference does it make to read form the internet than to read from a book? I know I know, the internet is more convenient, easy to search the exact topic, etc., in other words, it's like a customizable book, you create your own. But it's still reading! What I can't stand about programming books is that they are so expensive!
-
I'll take someone with 10 years experience writing commercial apps who hasn't read any of those books over someone with 3 years experience who has.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Experience helps - but I've known experienced programmers who could use improving. Experince plus wanting to improve and learn new things works for me. I would've liked to see books like for specific languages. For example, Effective C++ by Meyers goes into great details how to correctly program as opposed to just a reference manual on the language...
-
I'll take someone with 10 years experience writing commercial apps who hasn't read any of those books over someone with 3 years experience who has.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
I couldn't disagree with you more. Just because you write software and you've been doing it for 10 yrs doesn't mean you're a good programmer. In fact, someone who hasn't had formal training, develops his own habits and methods, and is used to organically grows software that ends up being a nightmare to maintain. Software that works, of course, but highly inefficient and expensive. (I know I'm generalizing but that's the impression I've gotten from my engineers who don't read...) In other words, how do you think this 10yr experienced programmer learned whatever got him in the job in the first place? I don't think there's a way to learn anything without reading, just from classes and going to school is mediocre, you have to go the extra step and teach yourself (by reading) to be exceptional. I don't know anybody who graduated from school with honors without reading (unless maybe me, but I still read a lot, not a nerd but I like to read.) Someone who is interested about reading is someone who's interested about learning and applying new techniques to make the software better, easier and cheaper!
-
No matter how many books you read, or how much software you developed, some idiot manager knows how to do it better. Guess who wins the "conversation".
Need software developed? Offering C# development all over the United States, ERL GLOBAL, Inc is the only call you will have to make.
If you don't ask questions the answers won't stand in your way.
Most of this sig is for Google, not ego.