First steps
I started by completing all the videos and "talk-throughs" on Khan Academy's "Computer programming - JavaScript and the web" page. The target audience of these tutorials is kids, but don't worry about it.
Then, I brushed up on my HTML and CSS knowledge by completing the HTML and CSS tutorials on W3Schools.
From here, I already knew Python, but if I were you, I would learn Python right about now. I recommend going to your local library and finding a Python programming book. This helps to take the strain off your eyes. Also, it can be rather mind-numbing to learn exclusively through a computer screen.
Once you get a decent grasp on Python (when you know how to define classes and implement OOP), it's time to branch out into your specialization. Here are some possible paths you could take:
Branching out
The indie game-dev route
If you want to develop games, perhaps to make a little money on the side or to improve your overall skills, you can...
- Go the JavaScript path, learn to develop web games in JavaScript. A good benchmark for having the necessary skills is to build an agar.io clone with multiplayer. Check out three.js as well!
- Go the Pygame path, not recommended. Python is slow. Look into Pygame anyway if you don't care about performance.
- Go the traditional game dev path; learn a 3D framework like Godot or Unreal Engine. YouTube tutorials are probably the best way to learn this type of programming. If a picture is worth a thousand words, a video tutorial is worth a thousand pictures.
The fullstack web developer route
Do you want to make those flashy modern websites like www.tesla.com or www.apple.com? There is a surprising amount of UI design that goes into these websites.
You should start by learning a JavaScript framework. As of late 2025, your best options are: React & Next.js, Angular, Vue, Svelte, or a few others.
You also need to learn server-side programming and learn how to "CRUD" a database.
Since there is so much information in this field, I strongly recommend the Odin Project's Full Stack JavaScript course. The Odin Project is a completely free website, so take full advantage of it. There's also freeCodeCamp, a good alternative.
The fullstack mobile developer route
I have some experience in this area as well. Generally, you need to learn Kotlin or Java for Android development, and Swift for iOS development.
There are cross-platform frameworks, namely React Native and Flutter, that will allow you to deploy to both mobile operating systems using the same codebase. I recommend using Expo (a React Native derivative) to speed up development time.
Mobile programming is challenging for several reasons. Requesting app permissions (push notifications, location) can be complex to handle. Before publishing an app, it has to go through an app testing stage and review process. This can take weeks to months, or longer. There are also fees. Apple charges $100 per year for a developer license. Ideally, you will also need a physical iPhone, Android phone, and real-life friends to test the app. (I know, scary.)
The data science and machine learning route
The tech that powers generative AI systems like ChatGPT originated in this field, so it can be quite lucrative. If math is your strong suit, I recommend studying data science and machine learning.
You can check out Kaggle and/or search up machine learning courses online.
One often-overlooked component of data science is data visualization. You can pick up data visualization by learning d3.js. Head over to this GitHub repo for some free data to use in personal projects. Side note: I don't know why GBIF, a comprehensive biology observations database, isn't included on that page but here it is.
The C/C++ route
If you are interested in any of the following: embedded systems, theory of programming languages, competitive programming, operating systems, or efficient algorithms, you should learn C. As a random Reddit user puts it, "C++ is good when you want code to run fast."
To get started, check out this C++ tutorial. Learning C++ will help you write better code in other programming languages. Also, the moment when you realize arrays and pointers are equivalent must be how Albert Einstein felt when he discovered that E=mc².
Most universities teach C++ because it teaches important concepts like memory management and algorithms. If you want the equivalent of a university education or better, learn C++.
The cybersecurity route
For cybersecurity, check out TryHackMe. There are many other cybersecurity resources you can find online. It's a broad field. Some cybersecurity professionals don't write any code at their jobs.
Still don't know?
If you are still really indecisive, check out Harvard's CS50 Course. It's a great way to get a "bird's-eye view" of computer science.
Ok, now what?
You need to decide whether you are learning to code just to make money or out of a genuine interest in the field. The most successful coders are the ones who code in their free time and do it for fun. This is my observation from university. Goodluck!
Kyle Author − Oct 8, 2025 Link
Bobert − Oct 7, 2025 Link