I’m a junior C# developer, I learned at home and now I got my first job 🙂
I want to buy these books. But what is the correct order to read these books?
Code Complete: A Practical Handbook of Software Construction
Clean Code: A Handbook of Agile Software Craftsmanship
Pragmatic Programmer
6
There is no “correct” order to reading these books.
They each focus on different aspects of software engineering.
- Clean Code – focuses on coding in the small. How to write classes and functions.
- Code Complete – focuses on the processes of software engineering.
- Pragmatic Programmer – focuses on working within a team producing software.
1
Congrats on getting your first job! And you really made good book choices!
These books are master pieces for every programmer to read at least once.
From my personal experience i would advice to read books interchangeably. It is a fact that you may get tired/bored from one book, and switching to related book will make you re-focus and behind the scene your brain will kick off to process the information. Thus, you may maximum benefit from this process.
Edit: as mentioned in comment, it is a kinda multi-threading solution to add up in efficiency 🙂
However, don’t over-heat yourself. Having more than 3 books might be hard to deal at the same time.
2
I agree with the answers of “no correct order”, but I will offer a different spin…
Start and fully digest Code Complete. It’s the most basic, most comprehensive basis book. Spend a LOT of time reading and re-reading it. It should give you the most returns if you’re a beginner.
I’ve read Pragmatic Programmer and I’m in the process of reading “Code Complete”.
From my experience so far, I think that “Pragmatic Programmer” is a great place to start because it gives a high-level view of different coding issues. I read it over the course of a week; as I read it, I was immediately enlightened of some better ways to solve problems I deal with every day.
“Code Complete” is longer and more exhaustive.
I only read “Clean Code”, and it was very good. Uncle Bob tells you how to become a good Software Craftsman and how to write clean code that is maintainable even in years. So you maybe should read this book first 🙂 (I wish I had read it earlier).
If you want to get a bigger view (on dependencies between modules) I also can recommend his code-casts: http://www.cleancoders.com/
I’m also reading those books, here’s my order:
- Clean Code
- Pragmatic Programer
- Code Complete
1
These books have high merit.
Often times developers enter into the work knowing mostly what without much detail about why. The three books you picked offer a lot to improve what you do as a programmer, and are good at providing descriptions to back up their prescriptions.
Reading these books will open you to a lot of ideas you might have never imagined. Later, as you gain experience, you will get even more out of these books, relating what you have seen to what they describe.
Together, these books total over 1500 pages. That’s a lot of reading, and you are right to prioritize and map out a sequence. I suggest you download the table of contents for all three and score the chapters in each by what you most need now for your job. You could compare and contrast their advice on variable and class naming, but I think if your read about naming once, it would be enough. Similarly, if your team or manager have guidelines, follow them.
Perhaps you can borrow these from a friend or library before buying them. Or maybe even spending a few hours at your local bookstore. If you time box your reading, threading through all three based on your priorities, taking notes on a blank piece of paper, you will find vocabulary and concepts you can apply at work today.
Pragmatic is a great description of the learning approach you want when using these books. There is a lot of overlap between the three, and I think much has been revisited in web accessible sources. There are many things you may find you need that are either not in these books, or are barely touched upon. Consider adding more topics that go beyond the scope of these books:
- Programming language tutorials.
- Your organizations specific source control and build tools.
- Concepts and implementations of data structures in C#.
- Standard C# class libraries.
- Coding standards specific to your organization.
- Testing, probably with MS Test tools.
- UI / UX design guidelines for your platforms.
- Applicable design patterns which for C#, I would expect MVVM to be the most critical.
Another consideration I think might help is to consider the publication date, context, and goals of each book. Oldest to newest: Pragmatic 1999, Code Complete 2nd Ed. 2004, Clean Code 2008. Context: Pragmatic lists C, C++, Java in its index but not C#. Code complete is Microsoft Press, written by an ex-Microsoft guy, and because you are working with a Microsoft language, there might be some affinity there, but the index has one entry for C# and it gets less love than Fortran on page 64.
The Robert Martin book is more steeped in the Agile approach than the other two, is the newest, and has some pretty great descriptions of naming, class design, and probably a lot more help with concurrency than the others. It may be a little unfair, but the later books can talk about more stuff and newer stuff, and their context is generally more like what we do today.
Each of these books to some extent competes in a similar range of topics. Kind of makes you want to ask, “What newer, broadly scoped programming books are competing in the same space?”