Books that made you a better programmer
-
I am not going to answer your question, but to comment your list, I find 1. absolutelly great, 2. and 4. mostly harmful, and 3. has good and bad points.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
O'Reilley's Java in a Nutshell was the single most impactful book on my programming career. Having been stuck in a rut of VB6 and VBA development, this book transformed all of my development into more useful OOP including all the .Net work I am doing today.
You are here - through no fault of mine!
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
My book list includes: The Design and Analysis of Computer Algorithms by Alfred Aho, John Hopcraft and Jeffery Ullman. The AWK Programming Language by Alfred Aho, Brian Kernighan, and Peter Weinberger The Theory of Parsing, Translation, and Compiling, volumes I and II, by Alfred Aho and Jeffery Ullman The C Programming Language by Brirn Kernighan and Dennis Ritchie There is also a book on decision tables which taught me a different paradigm from the traditional control flow. When I locate my copy (it's in this room someplace!), I will post a reference. On a personal note, Alfred Aho was one of my instructors at the Stevens Institute of Technology in the 1970s and his classes were a big influence on how I design and code today.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
The Shack - William P. Young. Not a lick about programming in there, but it gives a great perspective on life and priorities. So, if you become a better person, you become a better programmer, right?
-
Everything by Douglas Adams, Michael Crichton, ...
Rama Krishna Vavilala wrote:
"Design Patterns" - GOF
Really only helps to discuss programming issues.
-
Everything by Douglas Adams, Michael Crichton, ...
Rama Krishna Vavilala wrote:
"Design Patterns" - GOF
Really only helps to discuss programming issues.
Can anyone recommend a good VB.NET book? Thanks Ed
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
Code Complete is absolutely outstanding! Very good choice. I'll be looking at some of the other books that are recommended here, too.
-
Everything by Douglas Adams, Michael Crichton, ...
Rama Krishna Vavilala wrote:
"Design Patterns" - GOF
Really only helps to discuss programming issues.
Every one of Terry Pratchett's "Discworld" novels, including the "Science of Discworld" trilogy with Ian Stewart and Jack Cohen. They remind me that each time I break down my programs into more manageable chunks, those chunks gain a small life of their own, and if they're worshiped enough can even become SMALL GODS. That can, of course, lead to mischief and much head scratching though, so a good dose of wizardry, plenty of coffee, and a sense of humour the size of a planet are occasionally required else deadlines get missed and D E A T H comes on a large horse called Binky...
-
I have a few gripes with GOF. OOP isn't the only paradigm available (just look at Erlang success: it's a freaken actor pattern!!!), you then have AOP which is improving the quality and maintainability at the same rate the GOF did when they published their OOP patterns. GOF is really useful, unfortunately some people see it as gospel. One of my old lecturers (I have since transferred universities) recently wrote a book on C# 3.0 design patterns and included an observer pattern implementation, cough, events. A decent T-SQL book is a must (Professional SQL Server 2000 Programming - Rob Vieira), as well as a subscription to MSDN magazine. Blogs such as Hanselman's are a vital source of information. I have a few books, but I have found that most of them are somewhat obsolete, the nice thing about the internet is that it keeps itself up to date.
He who asks a question is a fool for five minutes. He who does not ask a question remains a fool forever. [Chineese Proverb] Jonathan C Dickinson (C# Software Engineer)
Jonathan C Dickinson wrote:
I have a few gripes with GOF. OOP isn't the only paradigm available (just look at Erlang success: it's a freaken actor pattern!!!), you then have AOP which is improving the quality and maintainability at the same rate the GOF did when they published their OOP patterns.
Functional languages are deep and ancient. I suspect Erlang's success can be attributed to the Kult of the New. People like being different. That's why you can still participate in coding contests on TRS-80s.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
The biggest influence on my programming style was a course in Constantine and Yourdon's Structured Design. There was a book that went along with the course, but I don't know if you can buy it separately. Structured Design is one of those areas that has a high ratio of definitions to useful results, but the course taught me the value of short, easily-understood functions. (This was before object-oriented design, but the same concept applies to class methods.) Short methods make code simpler, more reliable, and easier to maintain. Effective STL by Scott Meyers actually improved my understanding of C++, along with teaching STL. I read an intro book on C# and thought I knew C#. I then read Effective C# by Bill Wagner and realized I didn't know C# nearly as well as I thought I did. It's on C# version 1, but it's just as relevant today because the concepts it covers are still fundamentals of the language. Design Patterns by the GOF is THE basic book on the subject. The short chapters are great because you can get a concept quickly, and it's a good book to take along to read while waiting for something.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
-
I belive that any list has to include Donald Knuth and the Art of Programming. In my time it was a standard and it definitely set the standards for many things that came later. Today you might read it like a history book but it explains most of the things that we take for granted now but in the olde days we had to figure out.
Agree. Hope, you mean the whole series. And let's add the "Structured Programming" of Dijkstra too. But saying truth, the greatest impact on my programming style (at least in Assembler) had the source code of IDMS, that I've got accidentally. Regards, Gennady
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
For a beginner, the best into to OOP that I've ever encountered is "Object Oriented Programming in C++" by Robert Lafore. Yes, it was written for Borland, not MSVS, and it's coverge of advanced topics is nigh non-existent. But if you know nothing about programming, or are coming from the VB or Fortran world, it's fabulous. Michael Waters
-
It's a great book. It should be required reading for anybody new to programming. Unfortunately for ME, I bought it after being a programmer for 15 years and had already learned everything it taught. And it's rather longwinded sometimes.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
I've always liked programming. Although I'm an Electronic Enginner, the circuit design area of electronics never called my attention. During my carreer I took classes of digital desing area and programming-oriented assignatures. I was increasing my programming skills, but then there was a breakout during my thesis (I had to write propetary USB device drivers for windows) and to achieve such task, I read: "Writing Windows WDM Device Drivers" by Chris Cant... So far, the best book I've ever read!!! It changed my entire vision about Operating Systems (expanding it and getting it to detail)... And since device driver programming is very strict (you can't just allocate a memory buffer and not test if O/S actually returned a valid pointer, or Blue Screen of Death comes up), I learned a lot of techniques to avoid bugs, memory leaks and working in multi-threaded environments with reentrant routines, etc... So... Great Book!!!... Changed my life, from a programmer's point of view... XD
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
One of the best techincal books I've ever read: CLR via C# by Jeffrey Richter. It is C#.NET specific, but it is great.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
Maybe better to say books that had an impact on me for programming... The Mythical Man-Month - Frederick Brooks Classic and in my mind, unassailable, since it was written the manager responsible for the creation of OS/360 and he was willing to admit his mistakes. The updated version includes "No Silver Bullet". Excellent for providing arguments when managing expectations. The Psychology of Computer Programming Got me to formalize the concept of ego-less programming. You are criticizing my program, not me, it is "product".
Psychosis at 10 Film at 11
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
-
Nemanja Trifunovic wrote:
2. and 4. mostly harmful,
I could not disagree more. In general, I have found a great difference between programmers who have read those books and those who have not read the books. Now partially reading without understanding the principles may be harmful. For example, refactoring without unit tests (an absolute no no in the book) for example may be harmful. Similarly, applying patterns religiously out of context is also harmful. But it should be a must read in my opinion. Also, the books does have different impact on different stages of the career too.
Proud to be a CPHog user
I have to disagree as well. The only way the referenced texts could be harmful is if the concepts were applied without understanding or if they were applied as a policy without careful forethought as to the overall design cost/benefits. I studied design patterns under Dr Johnson (one of the GOF) and he is adamant that the patterns are a way to discuss topics common to software engineering in a common language. They should not be applied as a policy, only where they make sense in your design and the costs of implementing are outweighed by the benefits in readability/maintainability. The same goes for refactoring. You absolutely should not refactor code without solid unit testing already in place. Refactoring code can also lead to performance issues unless careful forethought is given to what you hope to achieve and what problems you may cause by using the refactoring. Refactoring book even tells you just because a piece of code could be refactored doesn't mean it should. These books are an essential part of any programmers technical library IMHO FWIW.
-
I know there are many people here who scorn technical books. But I like reading technical books and have always found them useful. I was looking back to see what books had maximum impact in making me a better programmer in my career. I am not just talking about the technology here sure there are many good books about technologies. I am talking about the whole outlook on programming, programming styles and approach. My list is as follows: 1. "The C++ Programming language" - Bjarne Stroustrup. The last part especially had very good insights. I can definitely say that reading that book made me a lot better. 2. "Design Patterns" - GOF. Luckily, I read it (C2C) before shifting jobs and the new job required an application design from scratch. I was able to apply many patterns judiciously and I am still working on the product today. 3. "Code Complete" - Steve McConnell. It should be a required reading everywhere. 4. Refactoring - Martin Fowler. Helped me decide what is refactoring and what not. I overcame many of my pre-dispositions about performance and stressed on code readability. I have read lot of other books, I could clearly see that these books made a great impact on me. So if you have to list books which had the maximum impact on you. What will they be? [Edit] Added Refactoring book.
Proud to be a CPHog user
"Code Complete" (Steve McConnell). This is THE programming book. I've found it useful for my deeply embedded C code and high-level C# applications. It gives clarity and specificity to concpepts that may be generally intuitive but nonetheless illusive. In college, I got a lot of use out of "Numerical Recipes in C" (William H. Pres, et al). This is a great "cheat" book for writing math code. It may be a little out-of-date by now, but probably still useful to anyone writing scientific or custom Engineering applications for problem solving. I just looked at Amazon and there seems to be a bunch of new versions of the book with code, etc. "Software Fundamentals: Collected Papers by David L. Parnas" is a collection of academic papers written by Parnas, who is a very charismatic (if not downright controversial and confrontational) Computer Scientist. This was the reading material for a Software Engineering graduate class. It has some great papers and changed the way I look at software. BTW, I have also found that you inevitably win an argument in a design review, etc. when you site a book as the source of your position! Happy reading! Stuart