Learning TypeScript Deeply – Kick-off

In the past several years work has taken me closer to the realm of people and their problems than to shifting bits. For a nerdy programmer like me, it has taken a sustained learning and rewiring to be reasonably effective in a role different from writing code. A more management role has also meant that my learning focus is different and while I have been following technical developments very closely (especially in the JavaScript world), have helped with a lot of technical decisions, have read a ton of code, and even have written a non-trivial amount, I haven’t learned a programming language deeply for several years. Maybe since Clojure & ClojureScript in 2013–2015.

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.

Why TypeScript?

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 🙂

How?

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:

Follow further progress and learnings here 🙂

What are your favorite TypeScript resources? Should have I picked something else?

8 thoughts on “Learning TypeScript Deeply – Kick-off

    1. Oh, great. I was planning to talk to few people about redpop and TypeScript while I was in the NYC office in February, but things changed last-minute.

      Having the journey together will definitely motivate me to share further progress here 🙂 Let us know what did you learn, either in comments here, or even if you decide to blog about it 🙂

      Like

      1. I don’t so far. I do have a stub in my blog that I never finished. 🙂

        The tl;dr is his observing and exploring in business contexts of what he calls “integrative thinking”:

        “The predisposition and capacity to hold two diametrically opposing ideas in the head; and then, without panicking or simply settling for one alternative or the other, able to produce a synthesis that is superior to either opposing idea.”

        I think it’s something of a variant on a “both/and” mindset. But he breaks it down in what I thought were some really interesting ways. For example, he walks through the mechanics he observed in his subjects and found they often had commonality in their high degree of detail salience to a “problem”, superior causality in their mental modeling, and the ability to leverage both to drive to an architecture and resolution better than defensive thinking.

        Also, he used the words “Corporate Rashomon”. So I had to love it. 😄

        Liked by 2 people

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s