Don't be the out of touch Kung Fu master – John Carmack
Source Entity
Hacker News

John Carmack reflects on the evolution of programming skills, drawing parallels to the transition of martial arts from battlefield necessity to hobbyist pursuit. He warns developers against becoming obsolete by clinging to outdated, low-level technical methodologies in an AI-driven era.
The Evolution of Technical Mastery
John Carmack, a legendary figure in software engineering, recently offered a profound reflection on the nature of professional skill evolution. By drawing a direct comparison between the historical trajectory of martial arts—specifically Miyamoto Musashi’s Book of Five Rings—and the field of software development, Carmack highlights a critical transition point. Just as swordsmanship evolved from a lethal, pragmatic battlefield requirement into a formalized sport and historical curiosity, programming is undergoing a similar metamorphosis where once-essential low-level skills are becoming abstracted away by modern tooling and artificial intelligence.
From Battlefield to Hobbyist Curiosities
The historical context provided by Carmack regarding post-WW2 Japan serves as a sobering analogy for software engineers. During the occupation, martial arts were redefined to fit western frameworks—Judo as wrestling, Kendo as fencing—to ensure their survival in a changed reality. Similarly, the 'primitive' skills of the past, such as hand-assembling opcodes to hex, are now largely relegated to a niche group of enthusiasts. While these skills once represented the cutting edge of what was technologically possible, their utility in contemporary, high-level software architecture has shifted from foundational to artisanal.
The Risk of Becoming 'Out of Touch'
Carmack’s central warning is against becoming an 'out of touch Kung Fu master.' In the context of technology, this refers to engineers who tether their professional identity to obsolete methodologies. The danger lies in valuing the 'magic numbers' of legacy systems over the ability to adapt to new, abstract paradigms. As the industry moves toward AI-assisted coding, the value proposition of a developer who can only operate at the most granular level diminishes, potentially leaving them disconnected from the modern software ecosystem.
The Impact of Abstraction and AI
The rise of artificial intelligence in programming acts as the ultimate catalyst for this shift. Much like the transition of swordsmanship into a hobby, AI is transforming the act of writing code from a manual, labor-intensive craft into a higher-level exercise of intent and system design. Carmack’s observation suggests that while the 'magic' of low-level assembly will always hold a place in history, it is no longer the primary engine of progress. For the modern engineer, the challenge is to avoid the trap of nostalgia and embrace the new realities of the craft.
Future Trends in Software Engineering
Looking forward, the trend toward higher abstraction is likely to accelerate. Engineers who insist on working at the 'primitive level' run the risk of becoming historical curiosities themselves. The future of the field will be defined by those who can synthesize complex systems using advanced tools, rather than those who focus exclusively on the mechanics of the past. Carmack’s insight serves as both a history lesson and a strategic roadmap: to remain relevant, one must be willing to let go of the tools that defined their past to master the technology that defines the future.