actually learning programming
I've been doing programming-related things for multiple years (5+) now, but if you ask me to do anything above beginner level in any programming language1, I won't know what to do. Instead of focusing on one language, I have jumped around, using Python, JavaScript, Java, Dart, C#, Kotlin, Lua, C++, Ruby, C, Rust, and basically any other tool out there2. Unfortunately, I don't know any of these languages, rather, I know some general programming concepts without any way to actually apply them.
To fix this, I've decided to really learn 2 programming languages: Python (for high-level and general-purpose development, along with scripting) and C++ (for lower-level development). I'm familiar with both languages, but I will be ignoring this, learning as if I was a total beginner. Of course, I'm trying to avoid the same thing as before: learning multiple languages at once, so I will start with Python, then when I feel like I have mastered the language enough, I will move to C++.
To learn Python, I chose to use w3schools and learnpython.org. Combined, these cover most useful features of the language, and I can reference the documentation if needed after these courses. The primary project I will be working on while learning is Honeycomb (a command line + gui project management utility).
For C++, I will be learning through a website called Learn C++. It seems to provide in depth instruction on most of the language's features while following modern best practices and language standards (C++20/23). The main projects I will be working on are NodesIDE (a visual flow-based IDE, like UE Blueprints) and Marigold (my hobby OS project).
By the end of this journey, I will truly be able to say I know at least 2 programming languages.
if you have any tips or good wishes: e-mail me, marcie [at] marcies [dot] cloud.