36

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

Coral Doe
  • 214
  • 2
  • 10
Tarek Saied
  • 789
  • 1
  • 8
  • 13
  • 6
    There is no correct order (as @Oded said). You'll likely be reading them (or at least portions of them) over and over again. So pick one, crack the cover and digest :) – Joel Etherton Jul 12 '12 at 12:47
  • 9
    Conventional wisdom says you should start at the first page and end at the last page. ;) – vaughandroid Jul 12 '12 at 14:08
  • 1
    I can't see any reason to downvote. – mmdemirbas Jul 12 '12 at 14:08
  • +1 to good selection of right books for further improvements – Yusubov Jul 12 '12 at 14:11
  • Here's another one you might want (many consider it the C#.NET bible): Pro C# 2010 and the .NET 4 platform, fifith edition (they might even have one for .NET 5 and VS 2012 soon). – Linuxios Jul 12 '12 at 14:52
  • I personally don't get why people even recommend at least one book in the list. That particular book is opinionated, dogmatic, one size fits all, BS. *Flame suit on* – Rig Jul 12 '12 at 15:05

7 Answers7

52

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.
Oded
  • 53,326
  • 19
  • 166
  • 181
13

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.

Yusubov
  • 21,328
  • 6
  • 45
  • 71
  • 10
    I find it amusing that a programmer's solution to a real life issue is to implement multithreading :) – Rotem Jul 12 '12 at 14:08
  • @Rotem - The reason for that is simple, and much like a regex. Once you start on such a task, your real life issues start looking a lot less serious ;-), – Joris Timmermans Sep 20 '12 at 08:10
4

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.

Richard Morgan
  • 576
  • 4
  • 12
3

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.

Vivian River
  • 2,397
  • 5
  • 21
  • 32
2

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/

habakuk
  • 125
  • 2
2

I'm also reading those books, here's my order:

  1. Clean Code
  2. Pragmatic Programer
  3. Code Complete
HoBa
  • 131
  • 3
  • Thank you for posting your first answer on Programmers Stack Exchange. Not sure why you had a down vote on this one, but it could be that the down voter was looking for not just a list, but also rationale. If you have not already done so, please read through the FAQ, which includes advice on asking questions and giving answers and is rewarded with a badge http://programmers.stackexchange.com/faq. Good luck in your future participation on stack exchange. I hope you will find it informative and rewarding. – DeveloperDon Sep 20 '12 at 05:30
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?"

DeveloperDon
  • 4,958
  • 1
  • 26
  • 53