For beginners

For most of human history, if you wanted to master a craft, you would have to find someone who is already an expert in it.

Farmers, blacksmiths, engineers and scientists would all learn their skills through mentorship. An important aspect of that mentorship was the ability to practice hands-on applications of those skills, ask questions, and understand the reason behind failures.

It is unlikely that a beginner learning to code on the Internet has that same luxury of direct mentorship. Therefore, it is up to you as an individual to be resourceful and to set a clear direction for yourself.

Choose a project

The best way to learn how to code is to pick an idea and work on it relentlessly. If your goal is to build a web application, there are beginner-friendly options like Vercel, Netlify, Render, and more - all of whom are competing to make it as easy as possible to launch your TypeScript application.

If your goal is to build a mobile app, you can use TypeScript to build native mobile applications with Expo. Once you understand the basics of TypeScript programming, you should find it easy to follow along with their tutorials.

If your goal is to build a desktop app, you can use TypeScript with Electron to build desktop applications that provide full access to a user's file system and computing resources.

Practice reading code

There are millions of TypeScript projects on GitHub and the NPM registry. When you find something that looks interesting, try clicking on the code files and just reading. You might not understand everything, and you might understand nothing - that's okay, just move on to the next file. Keep repeating this process and you will automatically find your "code comprehension" abilities going up.

Common questions

These are questions that I expect would be on the mind of a beginner.

"Can't an AI just write code for me?"

Yes it can, in the same way that an autopilot system can fly a plane. You still need a knowledgeable individual behind the controls. The autopilot can handle predictable tasks, improve efficiency, and reduce mental load, but there is no substitute (as of yet) for human experience.

"How do I make money from learning how to code?"

This is a common reason to learn, and can be a powerful motivator. For technology entrepreneurs, the desire for financial reward is a great motivator for getting it out there, rather than waiting until the code looks perfect. However, whether you're looking to build a startup or find a programming job, I think it is also important to appreciate the craft of computer science.

Having high standards when it comes to the craft of writing computer programs may not lead to any tangible financial benefit. It will, however, provide some intrinsic motivation to achieve mastery in it. Don't just sit back and let an AI model write all the code for you.

"I want to learn coding for science / research / curiosity /..."

TypeScript can become your Swiss army knife.

It allows you to create websites, command line tools, desktop applications, mobile apps, and much more. Having a specific application in mind can be tremendously helpful in aligning your priorities and learning objectives, rather than simply trying to learn all the details at once.

Notes

I'm incorporating these pieces of advice into the document above:

  • Read open-source code to see how other people are doing things
  • Use GitHub actions to automatically push your code to a server
  • Don't get stuck in one way of doing things, keep trying to improve to a higher standard

Was this page helpful?