this took a lot of time to write. originally, this was an exchange in a reddit comment thread, but i felt it deserved its own post.
question: with the rise of ai tools like claude, is learning to code still a valuable use of time, and how can i stay competitive in this changing landscape?
"knowing infinite tools makes you an adept mechanic. knowing to solve actual problems, with constraints you are given makes you an actual engineer.
strive to be one."
some staff engineer with 20+ yoe (contributor to the windows 7 kernel) told me this.
what you need to learn is systems thinking: breaking things down into states, behaviours, and relationships.
what is the problem really asking?
can i scope it down to its absolute minimal form?
can i break the minimum version into smaller subtasks?
what data/input do i have in that subsystem, how will i manipulate it, and what output will come out?
how can i redirect that output to another subsystem?
everything else is just making these processes faster, more maintainable, or more compact.
let's say you understand the problem, you wrote a clear logic flow in your notebook, and now you need to make it run on a real machine. you can either:
1. use ai to convert pseudocode/logic to code.
2. code it manually.
one constraint: you are a freshman/sophomore in college.
case 1: heavy ai assistance
1. your logic gets converted to working code; ai fixes minor mistakes; you promise yourself you'll remember them.
2. this repeats daily; you solve more problems fast, but keep repeating small mistakes.
3. after a year, you may frame things "okay-ish" but struggle without ai help. small mistakes can become bigger ones.
if you're experienced, you don't need to promise yourself. you already know common patterns and what feels off. when learning, you don't even know what you don't know.
case 2: manual coding
1. you struggle, tweak, search, and trade time for depth.
2. result: better memory consolidation; better error intuition; better fluency.
yes, ai can explain what won't work. but will you remember it? the struggle of reading errors and debugging trains your brain so you don't panic and don't need to outsource all explanation.
imagine talking to a cashier in beijing: do you want to keep checking a dictionary, or be fluent in mandarin already? glued-together language works sometimes, but fluency expresses intent better.
you may say: "it's the 2030s, we have google translate." sure. but remember "stochastic parrot": ai predicts likely tokens; it does not truly understand intent.
struggle and success are two sides of the same coin. craftsmanship is born from struggle.
personal experience
i was working on a project where i could explain the architecture clearly on a whiteboard. then i revisited a file i had built with ai help and realized i had messed up badly. it was excessively verbose and added defensive checks for conditions already guaranteed earlier. it took me around 36 hours to reduce ~1800 lines into a much cleaner ~500-line implementation.
do it the hard way. let the knowledge get etched into your brain. remember what worked and what didn't. simplify hard. be a craftsman.
once you build the spidey-sense to detect flaws and avoid outsourcing your thinking, ai becomes your exoskeleton.
ai is like fire. it can accelerate your growth, or burn you if your guardrails are weak. prevention is better than cure.
a well-crafted code is like a poem.
devote yourself to a craft, any craft.
task for you: find out the stages of shuhari (守破離).
note: i am not a great programmer. i've mostly been experimenting since i was 10. i am lucky to have strong mentors and cracked programmers around me. maybe i romanticize struggle a bit, but the question remains: can you trust yourself enough to avoid slipping?
yes, ai has simulated verifiers now (as in cot), but that is not an excuse to skip verification.
takeaway: take control, control breeds clarity. clarity is the cure to anxiety.
i am open to rebuttals.