100 best books on Software Engineering
-
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. -
Richter likes renaming his books :) It is now called Windows via C/C++[^]. An excellent book for Win32 system programming.
References for writing software are good, but NOTHING beats writing software. I've tried reading some books, but rarely get through them. Too often they are targeted toward a narrow market, and I just don't quite fit it; or the book have exercises that I just don't have time to work through. I prefer to read short things on line. I have a few RSS feeds that I browse, and when I want something specific I search the internet. Also, at work there are occasional classes. I work (at work) on embedded development, so our training here is geared toward processors. My boss jsut recently asked me about taking a Infineon TriCore class next month. Once in a while someone has a brown bag lunch where they take about 45 minutes to go over some concept or an aspect of some tool we use (like a debugger, or some algorithm). I think the best think is figuring out what works for you, and keeps you moving forward (you don't want to be stagnant, especially in this economy).
-
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!
rickyvj wrote:
That's like being a Doctor, not a medicine book reader
so what?
rickyvj wrote:
would you go to that doctor?
if he fixes the problem i give him, why not? i've been programming since 1982. i've learned C, C++, C#, Java, Modula-2, Pascal, PHP, SQL, HTML, JavaScript, ATL, COM, etc., etc., etc., without books. you get a compiler, you look for code samples, and then you solve the problem at hand.
rickyvj wrote:
Besides, what difference does it make to read form the internet than to read from a book?
the internet allows you to get the information you need, when you need it. a typical (non-reference) programming book is a poorly-written re-enactment of the steps the author took while writing his sample application(s). you can learn how to write his sample application (and you get to read its source code a dozen times!), but that may or may not cover what you want to learn. frankly, most classes are even worse. but at least you can ask questions (or take naps) in class.