This article summarises personal reflections and discussions with friends on how the advent of AI-generated coding has changed our work and which skills will become important.
The craft of writing code is often compared to art. From the famous book “The Art of Computer Programming” by Donald Knuth to the hacker-identity-building folklore equating good code with poetry. For the latter, we can easily see the parallels, which include conciseness, structure, and coherence. So far, thinking about this has been a fun intellectual exercise. Now, I believe it will become a more essential aspect of our craft.
Critiquing code
AI models have become excellent at writing code. Their output is usually correct, idiomatic, and consistent—exceeding in many cases what human developers write. AI agents have become an essential tool and technique for modern software engineers.
I find myself less reviewing and more critiquing code.
This means a shift from objective measures, such as correctness and code style, to more subjective and harder-to-articulate dimensions:
- Simplicity and elegance
- Rigidity versus flexibility
- Capturing the essence of an algorithm in the code structure
- Ease of grasping the intention
To do this efficiently and effectively, I find that I’m relying on intuition: knowing instinctively whether the code that I’m looking at “feels right”. It took a while to trust my gut here. In the end, I believe this boils down to taste. A word we often try to avoid in engineering.
It appears inevitable that the current trajectory of AI models and their coding tooling will enable many more people to produce a lot more code. This is precisely why taste matters: as the volume of code grows, taste is what keeps it manageable and ensures the resulting systems stay coherent, maintainable, and able to scale. As this development progresses, I believe we will start to differentiate between code that just works and code that is also tasteful. The expectation of a baseline of correctness is further supported by developments such as AI-driven formal verification.
In a crude analogy, coding tools remind me of the generative AI image models à la DALL-E. The early versions generally produced the “correct” output of, e.g., showing a penguin operating a computer. However, the results were often not pretty. Even today, the tools have not quite left the uncanny valley. I often feel the same when looking at AI-generated code: it is correct, yet something about it feels subtly off. Tastefulness simply resides on a different axis than correctness.
Developing taste
So, how to go about developing “taste” then? I think it might be interesting to look at how people study and work with art—a field more commonly associated with the notion of taste.
Mastering the craft
Art schools and programs make you do the thing: draw, create sculptures, paint with oil. Direct exposure to the craft forces us to internalize the possibilities, inherent challenges, and limits, which in turn inform our appreciation for those who master these skills.
Therefore, I believe that engineers will still need to learn to code well. Only practical experience and an understanding of its flow and structure allow us to build technical intuition. As the aptly named blog post “Keep the Robots Out of the Gym” argues, doing it as a conscious exercise (outside the day-to-day context) might be a good way forward.
Increasing exposure
Art takes inspiration—from different artists, techniques, and times. It lives in interaction with the surrounding world; and the wider the area of interest, the better the ability to discover patterns, novel approaches, and trends.
We can use the time freed up by AI to consciously wander and read more and read wider: up and down the tech stack from close to the hardware to highly abstracted business logic; across different language paradigms; and from projects and coders we trust. In that sense, blogs and GitHub can serve as a gallery or museum that exposes us to a wide variety of input. And unlike in the real world, we can download these “art” pieces and interact with them locally.
Reflecting
Consuming code is not sufficient by itself. It is important to take the next step and critically examine what we read and see. This step of reflection can focus on figuring out why the code is written in a certain way, what limitations result from its architecture, and how it compares to other code we have interacted with in this domain before.
Distilling our insights is most fun in a group with friends and coworkers. But it does not have to remain an interaction that merely looks at other people’s code. In this world, we are all actively producing new artefacts, and we should share with others what we think are elegant solutions and openly receive criticism as an important learning opportunity.
Conclusion
We’re shifting from a discipline that has long emphasised objective measures, such as correctness and style, toward more unwritten, experience-based education. AI will change our education and careers in many ways. While this article can only cover a single aspect, there are many related topics. For instance, this FT article highlights the importance of social skills (compared to pure technical skills), which I argue are correlated with the ability to critique and reflect effectively.
Thank you for reading this far. If you have comments, thoughts, or disagree, please reach out. Thanks also to everyone who provided feedback on earlier versions of this post. I am curious to see what our discipline will look like in the coming decades.
Now, let’s go out there, read some code, discuss it with friends, and enjoy devoting time to develop an eye for tasteful code.
Update, 17th June 2026
I had almost published this post when I came across this CACM article “Redefining the Software Engineering Profession for AI” by Russinovich and Hanselman. They also identify “taste” as an important dimension in the changing world that we as software engineers operate in.
Generative AI currently acts as seniority-biased technological change: It disproportionately amplifies engineers who already possess systems judgment, like taste for architecture, debugging under uncertainty, and operational intuition
Left unchecked, fewer EiCs [early-in-career engineers] will gain “systems taste,” architectural intuition […]