Books that made you a better programmer
-
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
-
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 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
As Edsger Dijkstra said, programming is an art. It cannot be taught, like painting cannot be taught. You can be taught how to set up the easel, how to mix the colors to get what you want, how to use specific brushes for specific purposes, etc. But learning that won't make you into a Rembrandt. If you think you are going to be a better programmer by reading books, you are sadly mistaken. You should be programming in VB! :sigh:
-
As Edsger Dijkstra said, programming is an art. It cannot be taught, like painting cannot be taught. You can be taught how to set up the easel, how to mix the colors to get what you want, how to use specific brushes for specific purposes, etc. But learning that won't make you into a Rembrandt. If you think you are going to be a better programmer by reading books, you are sadly mistaken. You should be programming in VB! :sigh:
While it is true that programming is an art.
Vivic wrote:
If you think you are going to be a better programmer by reading books, you are sadly mistaken.
At least in my experience, I have never seen a good programmer who has not read some of the books I have mentioned. There have been no exceptions and yes I have seen lot of programmers in my career. The best programmers I have seen with almost no exception have been voracious readers whether books or learning via seeing others code.
Proud to be a CPHog user
-
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
Interesting thread! I can't list them all, there have been many over the last 20+ years, but some of the most decisive have been (in no particular order) 1) Graphics Gems (all of them) 2) AMIGA RKMs (ROM Kernel Manuals) 3) the best to help me go from C to C++: Thinking in C++ by Bruce Eckel(vol1+vol2) (both are free downloadable as PDF as well) Hope this helps!
-
Everything by Douglas Adams, Michael Crichton, ...
Rama Krishna Vavilala wrote:
"Design Patterns" - GOF
Really only helps to discuss programming issues.
Agreed. But the book that really changed my programming style and influenced my teaching to hundreds of students in the 80s was "Introduction to Pascal" by Jim Welsh & John Elder. By the way, did you hear that Crichton just died this week?
Regards, Ricardo Corona
-
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
Expert VB 2005 Business Objects by Rockford Lhotka there is also Expert C# 2005 Business Objects. Can be found at lhotka.net
-
He didn't say anything bad about it.
Kevin
-
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
Byte Magazine & Compute Magazine... Oh, but that was back in the early 80's... ;)
Rocky <>< Recent Blog Post: Canon PowerShot SX10 IS (S5IS Update) Thinking about Silverlight? www.SilverlightCity.com
-
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 votes go for the following: "About Face" by Alan Cooper My first edition copy of this looks way outdated now, but the core concepts still ring true. "Inside Visual C++: 5th Edition" by James Kruglinski Taught me everything I needed to get started with MFC, and got me off on the right foot. Kruglinski unfortunately died tragically in a hang-glider accident shortly before the book was released. "XSLT: 2nd Edition" by Michael Kay Excellent to get started, and an excellent reference after you've gotten started Have seen Code Complete a number of times, but never bought it. After reading some of the response here though, perhaps it's time to give it a read. Cheers, Carl