Unless you’ve spent a couple of decades coding, you may not remember the days when some of the most important information about frameworks, APIs, and even programming languages was as scarce as semicolons in a .py file. But there was a time when programming information was so valuable that well-worn books (like Petzold’s Programming Windows) were passed around the office from cubicle to cubicle. Sometimes they went missing.

Books were a particularly valuable source of information about new technology. In 2001, the year before I wrote my first book, one of the most sought-after computer books was a comprehensive guide to the beta version of a new framework. (That was ASP.NET 1.0, still called ASP+ at the time.) That’s how valuable insider information could be. Software companies recognized that books and magazines were a priceless conduit to their developer audience — a fact I realized when I toured the Microsoft campus during their Book Publishing Partners Summit, an intimate gathering with PMs and developers that was far more illuminating than the much bigger MVP conference the following year.

The world has come a long way since then. Today, there is no more Publishing Summit, and the information about programming that’s available online — from free books to live playgrounds, video courses, and even chatty Twitch streams — is nothing short of incredible. For new coders, the barriers to entry have come crashing down, and there’s no perspective where that’s a bad thing.

Someday I may write a post about the business of book writing, then and now. But this article is about something different — it’s about what I learned while writing the thousands of pages I left behind. Here are four lessons that still stick with me today.

1. Good teachers learn more than good students

I’ve taught programming in print and in a classroom setting, and the experience has flipped my perspective around almost completely. I once thought that experts become authors. I now know that authors become experts.

There are a variety of reasons this transformation happens, but here are a few:

  • To teach something properly — be able to answer every question and contextualize every design practice — you need to understand it thoroughly. I explored the bits of tech that I wrote about far more than the ones I used just to code an application.
  • Formalizing your opinion forces you to clarify it. As we become experienced programmers, we develop a sense for where dangers lie and caveats apply. You hone a valuable instinct. But until you are called on to explain your opinions, you haven’t tested your assumptions.
  • You can learn a lot from new people grappling with an old problem. Yes, I spent hours refining explanations and demonstrations for the most commonly asked questions. After a while, you can anticipate them. But even a novice programmer can ask a question that invites you to think more deeply about something you’ve always breezed past.

#life-lessons #education #programming-books #programming #publishing

Lessons Learned from Writing 38 Programming Books
1.25 GEEK