On getting good at programming in the age of LLMs
This is for programming beginners trying to get good.
Do you just want working programs or do you want to get better at the craft? If you just want programs, the most effective way is to ask Large Language Models (LLMs) to generate programs for you. This is good. However, if you want to get better at programming for the love of it, you’re gonna have to walk the road, filled with bugs and fixes.
How do we get better at something? Most of us learn by trial and error. We learn better by reflecting on our own choices and actions. First, let me tell you about chess and how new players are trying to get better at it. Coaches tell students not to use chess engines to analyze their games. It’s because you learn best when you try to figure out the whole thing. If you use chess engines, you may not think hard and deeply about the possibilities and variations. You lose a lot of learning opportunities if the answers are served on a silver platter. Chess engines will rob you of those precious learning moments. Another thing is computer chess is not exactly similar to human chess. Chess engine recommendations may be counter-intuitive sometimes. When you go out there, you need to face a human who plays and thinks like a human. We, humans, are not perfect. Sometimes there is beauty in imperfections as much as in perfections.
Let’s get back to getting better at programming. I would like to tell you if you want to become good at it, I would urge you to stay away from LLMs while you are working out how to write a program to solve problems. Of course, programming is not chess and LLMs are very different from chess engines. The common theme is they both will rob you of core learning opportunities. I am not gonna tell you how to use LLMs. Based on my limited experience, LLMs are not good at writing programs as much as chess engines are good at chess. But this may change in the future and when it does happen, my entire perspective will shift. Maybe writing a good algorithm in English would suffice in the future and you may be recognized as a good programmer. But, not today!
I don’t know if super-intelligent AI will replace us all or not. I don’t know whether getting good at programming will be worth it or not. I am just stating the fact that it’s always possible to become good at something you love. There may be super AI programmers who are better at programming than most humans. I would like to remind you that there will be a place for great human programmers somewhere and it’s always possible to become great.
Even if super intelligent, all-knowing AI exists, great human scientists, great human artists, and great human thinkers will still be made. The probability of greatness would not change much as it was many many years ago.