Great reminder that real learning comes from building, debugging, and shipping projects—not just consuming tutorials. Consistent practice beats passive learning every time.
How to Actually Learn Programming (and Not Just Pretend You're Learning)
14 Comments
This piece captures the essence of what real learning feels like — the friction, the solitude, the slow burn of understanding earned through failure.
The line about “you didn’t forget — you never learned it” cuts deep because it’s true. Tutorials give you motion, not momentum. The moment you start debugging your own broken code, that’s when the craft begins.
Thanks for writing something that respects the struggle instead of selling shortcuts. It’s rare to see honesty this sharp and useful in tech writing.
Good work, keep going!!!
Please log in to add a comment.
Beginners ask the same question over and over: "How do I even start?"
It is like a master sculpter or a master landscape or portrait painter asking "How do I even start?" at the beginning of their careers.
Either you have the passion for it! In which case you QUICKLY figure out where to start!
Or you have no real passion for 'creating' with code and you just think coding is a path to 'get rich quick'.
In which case the real question you are asking is "How do I learn coding with the MINIMUM amount of intellectual effort?"
@[gregaryb] You're not wrong, honestly.
Yeah, plenty of people treat coding like a get-rich-quick scheme — and they usually wash out in a few months. No argument there.
But here's the thing: passion isn't always a lightning strike. Sometimes it starts with curiosity, or frustration, or just wanting to build something that doesn't suck. And when you're in that spot, the 'how do I start' question is legit — because there's so much noise out there.
That's exactly why I wrote this post. Not to hold anyone's hand, but to give them a roadmap that actually works. No shortcuts. No magic. Just: pick one language, build something real, fail, debug, repeat.
If someone's only in it for the money — they'll quit. If they're in it for the craft — they'll stay. This post is for the second group
@[alexvoste] i was formally trained in pascal at the university of melbourne in 1985. I found it entirely natural to think programmatically and found the various exercises assigned to me rather easy.
But even long before that in form 4 high school on 1983 in the lunchtime computer club I taught myself MS DOS BASIC (QBASIC I think it was called). I coded a simple number guessing game. Even then I found programmatic thinking entirely natural.
After a short career in medical science I was formally trained in unix commandline C/C++ and object oriented programming. I still found programmatic thinking very natural, and OOP particularly. I was able to complete the various assignments with ease. Including a version of pacman with very basic graphics libraries. And I found working in routine hospital labs low paid and EXTREMELY BORING, with little or no room for creativity. I have always been far more and engineering type than a scientific type. And it took me at least 10 years to understand that about myself.
I worked for several years in Australia as a commercial programmer. In my first job I learnt windows MFC programming and found it relatively to easy to get my head around the MFC classes MS Visual studio. But i did not much like the cooperate work lifestyle (particularly going to work on the train when it was dark and getting home at night on the train in the dark. Nor did I like the choice of career paths open to me at the time in Australia - essentially banks, insurance companies, gambling companies and corporate head offices.
So I did conservation land management type work and started a specialist australian native landscaping business. And I am still doing that to date - more gardening than full landscaping these days. But as part of that I taught myself web programming so I could build my own business website. Clearly I had an advantage to a raw beginner who has not programmed before. But I did not follow any road maps nor followed any tutorials.
As it turns out I also have a certain amount of small scale engineering talent. I.E. Intuitively knowing how deep to dig post holes in sleeper retaining walls so that the retaining wall does not fall over in a year. And intuitively knowing how to join timber together on small scale projects so that they don't fall apart or collapse in a year. Handy man skills in general. I was not particularly taught any of that by my dad or grandfather (who was a carpenter). I just know how to do it some how - it seemed obvious to me largely.
What I did was just dive in the deep end with web programming. I had a vision of what I wanted with my website and proceeded to implement it. What I did a lot of was to get chunks of sample code and just pull it apart in modifying it to suit my specific needs in my website. And over a period of 2-3 year perhaps I became a quite capable web programmer. Including programming my own content and style management system based on an Excel spreadsheet. My own custom shopping cart system for online plant orders that sent me an email with the customers orders (because certain species may or may not have been available at the time).
I have also taught myself microcontroller programming in C++ and Python - Arduino, microbit, ESP32, Raspberry pi Pic and associated digital electronics with discrete transistors and a wide range of arduino shields and ICs. If figured out how to communicate between android apps and window windows MFC apps and various Arduino microcontroller gadgets over both bluetooth and WiFi. The MFC apps took the longest to figure out and get working - there were no tutorials and no specific examples to follow online. It took me several months at least of trial and error to find the answer and get it working.
I have also built Jacobs Ladders with analogue tv flyback transformers, a solid state tesla coil (that I am looking at now but not working on ATM).
The point is this respectable talent with electronics and programming etc. has been in me from the very beginning. And in my latter years I have decided to unleashed it. Working as a commercial programmer was really actively suppressing the hunger to learn that has always been in me as well.
If you have this sort of talent and hunger built into your brain wiring then you just don't need road maps or formal university lessons. In then end your hunger to learn and natural talent will show you the way far more than university lectures or tutorials can ever can. I have no doubt that this is how it is for talented civil/mechanical/electrical engineers, painters, architects and sculptors too.
And if anyone else ask the question "where do I start?" Then in my view, they are CLEARLY in the wrong field for the wrong reasons.
@[gregaryb] Damn. That's a hell of a path, man.
Pascal '85, MFC, microcontrollers, landscaping, Tesla coils — that's not a career, that's a life. Mad respect.
And you're right: if the fire's inside you, you don't need a roadmap. You'll find your way no matter what. But for those who haven't found the fire yet — or who are still figuring out if it's even there — a map can help. That's all my post was.
Also, I feel you on the corporate grind. Banks, insurance, dark trains — been there, felt that. Glad you got out.
Respect, bro. Keep building weird shit.
Please log in to add a comment.
Please log in to comment on this post.
More Posts
- © 2026 Coder Legion
- Feedback / Bug
- Privacy
- About Us
- Contacts
- Premium Subscription
- Terms of Service
- Refund
- Early Builders
Performance overhead is my personal ene... Show moreWriting ForgeZero: Fixing the mess of modern build systems.
Performance overhead is my personal enemy.
C | Go | x86_64 Asm (3 dialects)
https://github.com/forgezero-cli/forgezero Show less
More From alexvoste
Related Jobs
- Senior Machine Learning EngineerMastercard · Full time · India
- Senior Machine Learning Operations EngineerMercury · Full time · Canada
- Senior Machine Learning Engineer, AI Infrastructure, AutonomyRivian · Full time · United Kingdom
Commenters (This Week)
Contribute meaningful comments to climb the leaderboard and earn badges!