I learned all of my programming outside of university and textbooks. It’s one way to learn. Not the only way though - and it has its limits - but you can get pretty far.
But here is my advice. Learning by doing with AI seems akin to copying source from one location (I.e. view source, stackoverflow).
My tips:
- Understand all of the code in a commit before committing it (per feature/bug).
- Learn by asking AI for other ways or patterns to accomplish the something it suggests.
- Ask Claude Code to explain the code until you understand it.
- If code looks complex, ask if it can be simplified. Then ask why the simple solution is better.
- Tell AI that you’d like to use OOP, functional programming, etc.
One way to measure if you’re learning is to pay attention to how often you accept AI’s first suggestion versus how many times you steer it in a different direction,
It’s really endless if your mindset is to build AND learn. I don’t think you need to worry about it based on the fact you’re here asking this question.
Good stuff, and I’d add one more trick from the old Zed Shaw books: if you want to learn something new, type it out yourself. Can you copy paste? Can you make the robot do it? Yes, but going through the motion helps embed it in your brain.
Once it’s deep in your memory, you can take all the shortcuts you want, but now it’s for speed instead of necessity.
Came here to type something similar and saw this comment. +1
Just repeat this until you understand a language's unique ways of implementing things, and understand why a language has those choices compared to others. I always pick one of these experiments to learn a new language with/out LLM support. 1. Ray tracing 2. Gameboy Emulator 3. Expression evaluation (JSONLogic or Regex)
These are super easy to implement in 100s of lines of code, however if you want to optimize or perfect the implementation, it takes forever and you need to know a language's nuances to get it better. Focus on performance tuning these implementations and see how far you can go.
I have found I'm always having to steer it in the right direction. I will think I've given it the right amount of instructions but it tends to do dumb things in ways I haven't anticipated.