Programming Is Not Coding: How LLMs Are Transforming the Art of Creating Software
Hello HaWkers, a philosophical and practical debate is gaining momentum in developer communities: what is the difference between programming and coding? And more importantly, how are Large Language Models (LLMs) fundamentally changing this distinction?
This reflection emerged from a recent discussion in the Brazilian tech community and has profound implications for how we think about our profession and career.
The Fundamental Distinction
Before diving into the impact of LLMs, we need to establish a clear conceptual foundation.
What is Coding?
Coding is the mechanical act of writing code. It is the translation of an already thought-out solution into syntax that the computer understands.
Characteristics of coding:
- Writing lines of code
- Knowing language syntax
- Implementing known patterns
- Following defined specifications
- Mostly technical activity
Practical example:
Someone tells you: "Implement a function that sorts an array using quicksort". You already know the algorithm, now you need to translate it into code.
What is Programming?
Programming is the complete process of solving problems through software. It includes coding, but goes far beyond.
Characteristics of programming:
- Understanding the real problem
- Designing architectural solutions
- Making trade-off decisions
- Communicating with stakeholders
- Thinking about maintainability and scale
- Considering edge cases and errors
- Creative and analytical activity
Practical example:
Someone tells you: "Our users are complaining that the system is slow". You need to investigate, diagnose, propose solutions, evaluate impacts, and implement.
How LLMs Changed the Game
Language models like Claude, GPT-4, and Gemini are extraordinarily good at coding. And this has profound implications.
What LLMs Do Well
Tasks that LLMs perform with high competence:
Proven excellence:
- Writing code following patterns
- Translating known algorithms to code
- Implementing documented APIs and integrations
- Refactoring existing code
- Writing tests for existing code
- Converting code between languages
- Explaining complex code
Impressive speed:
- Code that would take 30 minutes: 30 seconds
- Boilerplate completely eliminated
- Documentation automatically generated
- Unit tests in seconds
What LLMs Still Do Not Do Well
Tasks where LLMs still need significant human supervision:
Current limitations:
- Understanding deep business context
- Making architectural decisions in complex systems
- Predicting long-term consequences
- Navigating organizational politics
- Understanding ambiguous requirements
- Innovating with truly new solutions
💡 Insight: LLMs are amplification tools, not replacement. They amplify the capability of those who already know how to program.
The New Role of the Developer
If coding is being automated, what remains for human developers?
Skills That Gain Value
In the new paradigm, certain skills become more valuable:
Systems thinking:
- Understanding how systems interact
- Predicting consequences of changes
- Identifying failure points
- Designing for scalability
Communication:
- Translating business requirements to technical
- Explaining technical limitations to non-technical
- Documenting decisions and rationale
- Collaborating effectively with AI
Judgment:
- Evaluating quality of generated code
- Identifying security issues
- Recognizing when solutions are inadequate
- Making decisions under uncertainty
Creativity:
- Proposing innovative solutions
- Questioning assumptions
- Finding improvement opportunities
- Adapting solutions to unique contexts
Skills That Lose Relevance
Some traditional skills are becoming less important:
In decline:
- Syntax memorization
- Knowing specific APIs by heart
- Typing speed
- Mastery of multiple languages at superficial level
- Implementation of well-documented patterns
The Impact on Career
This transformation has concrete implications for those who work or want to work with development.
For Junior Developers
The situation for those starting out is complex:
Challenges:
- Fewer opportunities to practice fundamentals
- Companies expecting immediate productivity
- Competition with AI tools
- Difficulty developing intuition without practice
Opportunities:
- Accelerate learning with AI assistance
- Focus on higher value-added skills
- Differentiate through soft skills
- Specialize in areas where AI is limited
Recommendation:
Do not use AI as a crutch to avoid learning. Use it as an accelerator to learn faster.
For Senior Developers
Experienced professionals have unique advantages:
Advantages:
- Accumulated context and intuition
- Ability to evaluate generated code
- Ability to formulate good prompts
- Deep understanding of architecture
Risks:
- Resistance to new tools
- Attachment to traditional methods
- Underestimating the speed of change
- Not developing new skills
For Technical Leaders
Tech leads and architects face significant changes:
New focus:
- Orchestrating AI usage in the team
- Defining quality standards for generated code
- Mentoring developers in new paradigm
- Ensuring security and compliance
The Philosophy Behind the Change
This transformation raises deeper questions about the nature of development work.
The Developer as Architect
A useful analogy is to think of the developer as a civil construction architect:
The architect:
- Designs the overall structure
- Defines materials and techniques
- Supervises execution
- Ensures result quality
The modern developer:
- Designs system architecture
- Defines technologies and standards
- Supervises AI-generated code
- Ensures quality and security
The Art of Asking the Right Questions
If AI can answer, the value is in asking:
Questioning skills:
- Identifying the real problem vs symptom
- Decomposing complex problems
- Anticipating consequences
- Questioning assumptions
Human Creativity
Some things remain exclusively human:
What AI cannot:
- Truly understand the why
- Have intuition based on lived experience
- Empathize with users
- Imagine what has never existed
- Take responsibility for decisions
Preparing for the Future
How to position yourself to thrive in this new paradigm?
Growth Mindset
Adopt a continuous learning mentality:
Recommended practices:
- Experiment with AI tools regularly
- Reflect on what works and what does not
- Share learnings with the community
- Be open to changing work methods
Investment in Fundamentals
Paradoxically, fundamentals become more important:
Why fundamentals matter:
- Allow evaluating generated code
- Enable effective debugging
- Enable architectural decision-making
- Are the foundation for formulating good prompts
Development of Soft Skills
Interpersonal skills gain prominence:
Skills to develop:
- Written and verbal communication
- Critical thinking
- Problem solving
- Effective collaboration
- Leadership and influence
If you want to dive deeper into how AI is impacting the development market, I recommend checking out another article: Stack Overflow Down 82%: The Real Impact of AI on Developers where you will discover concrete data about this transformation.

