The Art of Programming

The content of this small essay is inspired by Dave Farley’s presentation “Vibe Coding Is The WORST IDEA Of 2025.”

I recommend listening to what he says about AI vibe coding and why he truly lives up to the name of his company, Continuous Delivery Ltd. I have also analyzed this fundamental distinction between programming and coding in this essay.

Programming is not limited to the tools we use

Programming IS NOT Coding, programming is an art. Programming is fundamentally about problem-solving and creative thinking, not just writing code. Just as we don’t appraise a plumber by his wrench or a neurosurgeon by his scalpel, we shouldn’t appraise a programmer solely by the programming languages and coding style. A painter isn’t just someone who applies paint to canvas; he is an artist who envisions, composes, and creates.

Similarly, programming is the art of:

  • Breaking down complex problems into manageable pieces
  • Designing elegant solutions
  • Creating systems that work efficiently and reliably
  • Thinking logically and creatively about how to achieve goals

The code itself is simply the medium through which programmers express their ideas; like paint for an artist, or blades for a surgeon, or plaster for a sculptor, or music instruments for a composer, or the pen and paper for the writer. The real skill lies in the thinking, planning, and problem-solving that happens before, during and quite often after the coding process.

This perspective emphasizes that programming is a creative and intellectual discipline that goes far beyond syntax and technical mechanics. Coding is just the tool; the way you choose to implement the program. Programming is much more: the experience of system architecture, communication between components and services, backend/frontend, and of course debugging, which only makes sense when you deeply understand what you’ve built and can isolate where the error lies.

I wonder: if “Vibe coders” have no idea about data structures, algorithms, databases, or programming paradigms, topics we learned in computer science, how will they understand what AI is doing ? Without real project experience, how will they recognize issues in security, performance (storage capacity and speed) ? I believe instead of using AI as a tool, AI will be using them as tools.

Continuous Delivery in Complex Software Systems

Therefore one crucial aspect of what you produce as a programmer is quality. For small projects, it may not matter much, but as a project grows and clients want more features, the way you design and implement becomes critical. In 99% of these cases, developers end up rewriting the whole project from scratch, changing frameworks, languages, databases, etc., because over time it’s not worth patching a mess. The costs of these projects skyrocket. Therefore, you may start pondering whether it’s worth spending significant time on the architecture and on the design before you start implementation.

And then of course when you as a developer dare to think that your job is finished, that is where everything starts and I am referring to testing and finally deploying the software built. The process looks to me like a newborn child that comes out of the womb of his mother. A very fragile creation exposed to the real conditions of the world.

Finally someone will have to maintain and even expand that project. What if the original programmers of the project are not employed anymore ? Is there some good documentation ? How is the new team going to understand the code and how it meets functional specifications ? In his talk, Farley refers to this as Continuous Integration – Continuous Delivery in complex software systems.

Consider another analogy here: car mechanics. They don’t build the car, but good mechanics, especially for older cars without many automated systems, know exactly how to dismantle anything, check every part, find the fault, and fix it. Likewise, a good software engineer, even if he didn’t write the code, should be able to quickly locate and fix a bug. Will this be possible in an AI-generated project, where the code is unnecessarily complex instead of being designed efficiently ?

Purposeful Creation

Since the dawn of time, humans have built tools (machines) to serve a purpose and make work easier, faster, and more productive. Over time, the purpose has been lost, instead of tools serving us, we serve the technology.

AI today may resemble human logic, but it’s only a model of it. Is a model of the Earth the Earth itself ? Man was created in the image of God, a truly divine model, but is man a God on earth ? Today we can built AI robots that look like us, do we want them to be like us ? Perhaps we think ourselves as little Gods, but we are fools to believe that we were created to think and act like machines.