What is a junior engineer now?
The model can write my assignments. So what am I learning?
I'm a student. I'm supposed to be learning to write code. The model can write most of the code in my assignments — faster than me, and usually cleaner.
So what am I learning?
The job was never typing
Nobody paid a junior engineer to type. They paid for someone who would, in a few years, know which code was wrong before running it.
Typing was just how you got there. You wrote enough bad code that you learned what bad code smells like.
The model skips the typing. I think it skips learning the smell too, unless you're careful. And I don't think most students are being careful.
Reading is the new writing
The skill that matters now is reading code you didn't write and knowing whether it's right.
That's harder than writing. When you write, you know what you meant. When you read, you have to rebuild it from the outside.
It's also the skill school tests least. Assignments grade the output. Almost none ask whether you can find the bug in someone else's code.
School is still grading the part the machine does best.
The rules I'm trying to keep
- Write the first version of anything new by hand, then ask the model to review it. Not the other way round.
- Anything the model writes, I explain back to myself line by line before I keep it. If I can't, it doesn't go in.
- When something breaks, find the bug before asking. Then ask, and compare.
This is slower. I'm doing it on purpose. I'll tell you in six months if it was stupid.
The compiler argument
The best argument against all of this is the compiler. Nobody reads the assembly their compiler writes. Maybe in two years nobody reads the code their model writes either, and checking it is as old-fashioned as checking assembly.
The difference is that a compiler does the same thing every time, and when it's wrong, that's a bug someone fixes for everyone. A model gives you neither guarantee. Yet.
Until it does, somebody has to know. I'd like it to be me.