It's dangerous to code alone! Take this.

Sixth Edition Update

Published on 09 Jan 2023.

It has been a while since the announcement about the sixth edition, and it is time for an update.

We are still at least two months away from the final release of the sixth edition.

It will be no sooner than March, and could be much later.

Why the delay?

My original plan was to simply update the book for C# 11. Indeed, updating the book for changes in the language has always been the goal of any new edition.

However, the other part of it is that, over the years, I have learned better ways to teach a topic, as well as what parts of the book could use a little refinement.

The Discord server has been indispensible for this, because I get to interact one-on-one with you. Working with people on Discord eats up a fair bit of time, but it also provides huge benefits because I can see what those gaps are. I can help readers immediately and figure out how to make future editions of the book better.

One area that I have felt could use some improvement is the first half of Part 2, where the book gets into the foundations of object-oriented programming. Of particular note, one thing I’ve been wanting to add is a practical example of object-oriented design on a program big enough for it to matter.

So for the sixth edition, I went back to the drawing board and did a lot of rework in the first nine levels of Part 2 (roughly the first half of Part 2, up to the Catacombs of the Class boss battle).

I think it is a nice improvement over what earlier editions of the book has, but I wanted to specifically vet the new content with people before making it official. So I set up a “mini-course” on the Discord server where people could get access to the sixth edition in early access and read those revised chapters and get some feedback.

And, boy, did I get feedback!

While I found that the new updates were a huge improvement over earlier editions, the other big thing I found was that I had created an environment where people were willing to share all of their constructive criticism about the book.

The biggest bit of recurring feedback I got was people wishing for even more out of the book’s story and having the challenges tie more directly to the overall goal of dealing with the Uncoded One. For example, some people said that they liked the challenges, but felt like they were spending a lot of time doing random things that didn’t directly contribute to their eventual battle with the Uncoded One, only to sort of “fast forward” in that story to some major event.

And I agree with this assessment.

So the scope of the sixth edition has grown and grown. It now includes:

  1. Updates for C# 11.
  2. More information to help you learn the more essential bits about object-oriented design.
  3. More deeply diving into the storyline and challenges that are more relevant to the storyline (and a few more challenges than before).

However, building that storyline and the challenges that support it takes time.

Which is why we’re still at least a few months away from the release of the sixth edition.

Which leaves me with another debate: if the book isn’t ready to be released until, say, March, what does that mean for the seventh edition? Do I really want to release a sixth edition in March and then a seventh edition in November?

Perhaps, but there are some definite downsides to that.

So I’ll throw this out there, and mention no decision has been made. My options are:

  1. Release the sixth edition when it is ready in late spring, and then release the seventh edition as previously scheduled in November, and accept that it is very high churn for a technical book.
  2. Release the sixth edition when it is ready in late spring, and then not do the seventh edition until C# 13 in 18 months.
  3. Push back the sixth edition until November and include C# 12 features.

If you have any preferences among those options, or any suggestions for other alternatives that I’m not thinking about, I’m interested in hearing about them.

I’ll keep you posted on the final decision.