I have just received my copy of Stefan Baumgartner's TypeScript in 50 Lessons in the mail. It is the first book for which I have served as technical reviewer!
shawn swyx wangMy copy of @ddprrt’s TypeScript in 50 Lessons just arrived!
can I just say @smashingmag did a SMASHING job making the book match up to the content?!?
This thing is a work of art. Belongs on every @TypeScript-er’s bookshelf.
P.S. check out the acknowledgments 😉16:22 PM - 16 Feb 2021
I was enormously tickled not just to see my name in the Acknowledgements, but also to learn that apparently technical reviewing is important enough to make it on to the official book credits!
(For what its worth - I got a small stipend for reviewing, and zero dollars whether or not you buy the book - but I'm writing it up anyway because I thoroughly enjoyed both the book and the process of reviewing it!)
In general, one might wonder why the need for another TypeScript book. Orta has led a total revamp of the docs since he joined the team, and now the official docs are much more readable and well organized than when I first started with them.
Some folks might also recall that I did a well received review of Boris Cherny's Programming TypeScript in 2019. I even did a book report on it at a TS NYC meetup! (unrecorded, sadly)
This is something Stefan struggled with for months. When he originally pitched me on working with him, the brief was no more complicated than "write a TS book for Smashing Magazine". Fortunately, Markus Seyfferth's intuition shone through here and advised Stefan to move toward a "quick lesson approach" in the style of the enormously influential CSS Secrets (which I have also reviewed).
The truth is that there is no one right way to approach a topic, much less teach it. You can read through a dry list of rules and documentation, but it is quite another proposition to read realistic examples and explore ways to problem solve through the eyes of an expert. This is what 50 Lessons does for TypeScript, going from introductory (what is TypeScript really about?) to expert (generics, variadic tuples,
infer, and more).
Stefan's blog speaks to his expertise and absolute mastery of the subject matter. His blogpost on Low Maintenance Types, though new, is already an instant classic, and his post on Why I don't use React.FC is often quoted in the React + TS commmunity. I can't do justice to the rest - just check out his archive!
What you get with the book, over the blog, is worked examples well organized for both a gentle introduction (when read from end to end) and revisiting on demand (when need arises). Check the full list of 50 lessons on the book's site. Even if you think you already know TypeScript, here's likely something here that could probably know better.
One of the most unexpected outcomes of learning in public for a few years is that opportunities come inbound to you. The reason I stress the importance of inbound opportunities is two-fold: people find you based on your interests, and you get opportunities that you would never have considered yourself suitable for.
This is how I felt when Stefan first approached me in 2019:
At that point I had only been curating the React TypeScript Cheatsheet for less than a year. I had never served as a technical reviewer and almost turned it down because I didn't feel qualified. But I took up the challenge anyway. It turned out that I didn't have much to worry about - Stefan was the perfect collaborator, and came back with a full manuscript about a year later that was already very well fleshed out.
Not having ever written a book before, I focused on double-checking the technical accuracy of the code samples and whether or not I could see the recommendations working in my former (React + TS Design System) team. I think it's also helpful not to know too much - having a beginner's mind is something valuable since that is the target audience of the book. If a sentence requires too much context to parse, it is probably worth breaking out or restating. In terms of the 3 Types of Editing, I counted myself lower down (copyediting and proofreading) rather than making more sweeping changes (structural editing).
I think the way that Stefan has built out his TypeScript expertise over the years is also exemplary of the #LearnInPublic ethos. He put his hometown, Linz (Austria) on the map with the quality events he runs, from ScriptConf to TSConf EU. His blog and guides map out years of public learning with an incredible amount of polish and thoughtfulness. I'm incredibly inspired by him and honored to work with him in some small capacity.
P.S.: if you do check out the book, look for a little cameo by yours truly on page 182!