Six years is startlingly long time given my previously dense learning history. I am not sad – change is the only constant and I have enjoyed the people challenges as much as the purely technical ones. Still, the lockdown in combination with the realization that the problem-solving and regular surprises involved in learning a programming language are something that brings be a lot of joy meant it’s time to choose the next language.
I have dabbled with TypeScript before, even wrote a few thousand lines worth of a hiring stats visualization system that ended up abandoned. But this experience was closer to a deterrent of learning more about the language than helped. Here are my reasons for picking up TypeScript:
- The dichotomy of having the same codebase and same patterns exist in either typed or untyped form are every alluring. I am super curious what will be the effect on gradual typing on my thinking about problems.
- After years of using generic (even if powerful) tools for my languages of choice, the first-class TypeScript support in VSCode is exciting.
- People. I don’t know much about the community (yet), but I have enjoyed previous work by Anders Hejlsberg, like Delphi and Turbo Pascal. He’s still number one contributor, which is impressive. Last, but not least, Stefan was excited about it 🙂
My learning strategy is usually to often alternate between top-down approach (first principles first, high-level knowledge) and bottom-up (low-level knowledge, often trivial). This often means alternating between a book, paper, theory, principles on the subject and a lot of hacking, tinkering, trying things out, doing, digging into source code, learning how something works in detail.
Here are the resources I have on my short-list and I am starting with them tonight:
- Book: Programming TypeScript – sounds like a good basics book.
- Book: Effective TypeScript – bit more advanced.
- Book: Programming with Types – newer, wildcard, hopefully more general typing strategies using TypeScript.
- Code Exercises: Gary Bernhardt’s interactive TypeScript course.
- GitHub: TypeScript repository – the code for the compiler can always be handy 🙂
Follow further progress and learnings here 🙂
What are your favorite TypeScript resources? Should have I picked something else?