Last year I reread and still love Ursula Le Guin’s books in The Earthsea Cycle. In the land of Earthsea, wizards are not all-powerful beings, but are humans able to manipulate nature around them by speaking words of power – the true names of things and creatures. I have been working with coding assistants and generative AI on a regular basis and feel that developers have the potential to become something akin to a wizard in the new world of technology aided by AI. Like every town in Earthsea needs a wizard that can speak the language of magic, developers that know how to speak the language of AI will be invaluable. Every town doesn’t need an army of wizards, but a single skilled wizard can replace the work of 100 townsfolk. That’s right, the 100x wizard.
While LLM’s are seemingly magical, developer wizards still need to know the right incantations needed to produce the intended result. We aren’t going to be supplanted by non-technical “prompt engineers”, though, because understanding both the question and the answer are necessary. I have been impressed with what can be generated with the right prompt, but reviewing each answer to confirm it understood the question and provides a correct answer is still likely to be necessary until we have another generational leap with AI. I have been delighted by how often the answer can be spot on, but not infrequently the answer will be off a little and require a minor correction, occasionally it will be nonsense. While the AI tools around us are unquestionably improving, the outputs still need to be reviewed by a human.
In this new world, the most crucial skill is not just writing code, but reading it. “The Programmer’s Brain,” by Felienne Hermans, provides excellent insight into how our brains work as we read and write code. I recommend reading the book yourself, but there is a key concept that you can adopt right away. When reading code, your brain processes the information using short-term memory or long-term memory – the more of what you read that maps to something in your long-term memory, the more lines of code you will be able to process in your head at once. The better you know the libraries, methods, and APIs you are working with, the easier you can understand a section of code and build a mental model using your long-term memory combined with the new code that is unique to the lines you are reviewing. If you are someone that doesn’t bother to learn and memorize library methods, reconsider! The more you commit to memory the easier it will be to read sections of code referencing that information. A wizard must travel light and leave the spell books at home.
The split of your time between reading and writing code is going to shift dramatically. Today, you might spend 90% of your time writing code and 10% reading code, depending on your role. That could very well flip with the advances we are seeing with code generation. It won’t be long before we are not just generating functions or unit tests, but entire pull requests and features will be generated from a written prompt. The role of a developer will evolve – I have been doing this long enough to know that writing code isn’t the only skill we have. Being able to model a complex system in our heads, designing features that balance flexibility, performance, and user experience while building efficiently is a mystic art not everyone is able to do. For some the loss of hand crafting code will be difficult to accept, but the potential performance improvements will make it impossible to insist on using a hammer and nail in a world of magic.
Perhaps like Frodo and Gandalf, you wish that this had not happened in our time. The pace of change can be frightening, and our profession is evolving whether we like it or not. I encourage you to embrace it and evolve yourself as well! Take comfort in the wise words of Gandalf – “All we have to decide is what to do with the time that is given us.”