Hacker News new | ask | show | jobs
by smt88 533 days ago
If remembering unimportant syntax differences between languages (e.g. "===" in TypeScript and "==" in everything else) makes you a good programmer, then yes. Or if remembering how to assign variables in stored procedures in MySQL makes you a good programmer, also yes.

But overall my ability to design, debug, and maintain code hasn't been dulled by having some of these minutiae stripped away. It actually frees up time and mental effort, so it's easier for me to spend time doing more important things.

I'm not a huge CoPilot advocate and worry a lot about the quality of code that a less-experienced dev is going to produce by leaning on it too much, but having written millions of lines of code by hand, it doesn't make me feel like I'm losing anything valuable.

1 comments

Obviously I didn't mean to imply that your merits as a programmer should be judged by your ability to recall specific syntax, like the equality operator in some language.

I'm wondering about the long term effects of not paying attention to such details. Do you miss out on picking up patterns used by a certain library, framework, language or whatever, that you could have used to write your own code better?

Sometimes there are little details that increase risk if you don't pay attention to them.

Like can't you use either "==" or "===" in Typescript but the first one can sometimes do a type coercion that can occasionally have unexpected effects? If I remember right it is a warning but not an error, a programmer who is clearing up warnings will stay out of trouble but if you weren't clearing warnings it would make a difference if you had a "==" or "===".

One thing that makes you a better dev as opposed to a worse dev is your habits, especially when it is something obscure where the compiler and IDE don't have your back.

Hopefully there's a senior/staff engineer where you're at that actually knows the difference and is able to (find time to) comment on PRs where the wrong one is used. It's one of those "background radiation" things that you develop after working in a language for long enough.
TypeScript on the strictest settings + aggressive ESLint rules is incredibly strict and a fantastic target for AI code. It's a good practice to have the CI/CD server reject code that fails ESLint anyway.