<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Engineering on kenji.blog</title><link>http://kenji.blog/en/categories/software-engineering/</link><description>Recent content in Software Engineering on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 15:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/en/categories/software-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>How Should Programmers Survive in the AI Era?</title><link>http://kenji.blog/en/p/how-programmers-survive-in-ai-era/</link><pubDate>Fri, 11 Sep 2026 15:00:00 +0900</pubDate><guid>http://kenji.blog/en/p/how-programmers-survive-in-ai-era/</guid><description>&lt;img src="http://kenji.blog/p/how-programmers-survive-in-ai-era/img/eyecatch.jpg" alt="Featured image of post How Should Programmers Survive in the AI Era?" />&lt;h1 id="how-should-programmers-survive-in-the-ai-era-the-end-of-coding-and-the-dawn-of-a-new-engineering">How Should Programmers Survive in the AI Era? The End of Coding and the Dawn of a New Engineering
&lt;/h1>&lt;p>As of 2026, the field of software development is undergoing a period of unprecedented and dramatic change. Until just a few years ago, the concept of &amp;ldquo;AI writing code&amp;rdquo; was limited to the role of an &amp;ldquo;auxiliary tool&amp;rdquo; for programmers, such as generating boilerplate code or auto-completing functions at best. However, due to the astonishing evolution of Large Language Models (LLMs), the situation has been fundamentally overturned. Modern AI is not just a &amp;ldquo;smart typewriter,&amp;rdquo; but has transformed into an &amp;ldquo;autonomous junior engineer&amp;rdquo; capable of autonomously assembling an entire system in an instant, from front-end to back-end logic, database schema design, and even building CI/CD pipelines, given a requirements definition document.&lt;/p>
&lt;p>In such an era, how should we &amp;ldquo;programmers&amp;rdquo; or &amp;ldquo;software engineers&amp;rdquo; survive? As the economic value of the act of &amp;ldquo;writing code&amp;rdquo; itself rapidly deflates, a &amp;ldquo;coder&amp;rdquo; who merely knows the syntax of a specific programming language and is familiar with the APIs of a specific framework is rapidly being weeded out from the market.&lt;/p>
&lt;p>In this article, we will examine the survival strategy for programmers in the AI era in extreme detail from technical, mathematical, and philosophical perspectives. This is not merely a career theory, but a redefinition of the academic discipline of software engineering itself.&lt;/p>
&lt;hr>
&lt;h2 id="1-the-history-of-abstraction-and-the-redefinition-of-programming">1. The History of Abstraction and the Redefinition of &amp;ldquo;Programming&amp;rdquo;
&lt;/h2>&lt;p>Looking back at the history of software engineering, it is clear that it has always been a history of &amp;ldquo;Abstraction.&amp;rdquo; We have constantly built layers to describe more complex systems in languages closer to human understanding.&lt;/p>
&lt;p>Early computer scientists used punch cards to directly manipulate the physical switches of hardware, giving instructions to computers in machine language (a sequence of 0s and 1s). Later, assembly languages emerged, allowing humans to operate hardware using mnemonics that were easier to understand. As time progressed, high-level languages like C and Fortran appeared, successfully encapsulating complex hardware details such as memory management and CPU registers. With the subsequent emergence of modern languages like Java, Python, Ruby, and TypeScript, programmers could focus more on &amp;ldquo;What&amp;rdquo; they wanted the computer to do, rather than &amp;ldquo;How&amp;rdquo; to make the computer operate.&lt;/p>
&lt;p>The advent of AI (LLMs) is the latest and greatest paradigm shift in this history of abstraction. If the evolution of programming languages was the &amp;ldquo;hiding of hardware,&amp;rdquo; the evolution of LLMs is the &amp;ldquo;hiding of syntax.&amp;rdquo;&lt;/p>
&lt;div class="mermaid">graph TD
A["Machine Code / Punch Cards (1940s)"] --> B["Assembly Language (1950s)"]
B --> C["Compiled High-Level Languages (1970s)"]
C --> D["Managed / Scripting Languages (1990s)"]
D --> E["Natural Language via LLMs (2020s)"]
E --> F["Autonomous AI Agents (2026-)"]
style E fill:#f9f,stroke:#333,stroke-width:2px
style F fill:#fbb,stroke:#333,stroke-width:2px&lt;/div>
&lt;p>The era where developers operated pointers while worrying about memory leaks, or wrote hundreds of lines of boilerplate code to parse JSON, is over. Using natural language (such as English or Japanese), the language with the highest level of abstraction for humanity, to define systems has become the standard of &amp;ldquo;programming&amp;rdquo; in 2026.&lt;/p>
&lt;hr>
&lt;h2 id="2-a-mathematical-model-of-productivity-riding-the-wave-of-exponential-growth">2. A Mathematical Model of Productivity: Riding the Wave of Exponential Growth
&lt;/h2>&lt;p>Let&amp;rsquo;s quantitatively evaluate the productivity improvement brought about by AI using a mathematical model.
Individual productivity in traditional software development, $P_{traditional}$, could be modeled as a linear combination of an individual&amp;rsquo;s skill level $S$, domain experience $E$, and tool efficiency $T$.&lt;/p>
$$ P_{traditional} = c_1 \cdot S + c_2 \cdot E + c_3 \cdot T $$
&lt;p>However, in modern development utilizing AI, the capability of AI, $A(t)$, acts as a &amp;ldquo;powerful multiplier (Leverage)&amp;rdquo; that amplifies human capabilities. Because AI capabilities grow exponentially over time $t$ (an AI version of Moore&amp;rsquo;s Law), productivity in the AI era, $P_{AI}(t)$, can be expressed by the following equation:&lt;/p>
$$ P_{AI}(t) = \alpha \cdot S_{core} \cdot e^{\beta \cdot A(t)} $$
&lt;p>Here, each variable means the following:&lt;/p>
&lt;ul>
&lt;li>$\alpha$: The baseline human productivity coefficient&lt;/li>
&lt;li>$S_{core}$: &amp;ldquo;Core human skills&amp;rdquo; that cannot be replaced by AI (architecture design, understanding business requirements, ethical judgment, etc.)&lt;/li>
&lt;li>$A(t)$: The absolute capability of the AI model at time $t$ (number of parameters, context window, reasoning ability)&lt;/li>
&lt;li>$\beta$: A coefficient indicating how effectively AI tools can be utilized (the quality of prompt engineering and the refinement of collaborative workflows with AI)&lt;/li>
&lt;/ul>
&lt;p>The important insight derived from this formula is that &lt;strong>in a world where $A(t)$ increases exponentially, traditional skills such as mere typing speed or memorization of a specific language have extremely little impact on overall productivity.&lt;/strong> Instead, the coefficient $\beta$ to multiply the exponential growth of AI, and $S_{core}$, which is the domain that AI cannot cover, become the dominant factors determining an engineer&amp;rsquo;s market value.&lt;/p>
&lt;hr>
&lt;h2 id="3-probability-of-automation">3. Probability of Automation
&lt;/h2>&lt;p>So, what kind of tasks will be automated, and what tasks will remain in human hands?
The probability that a certain task $T$ will be completely automated by AI, $P_{auto}(T)$, can be formulated as follows:&lt;/p>
$$ P_{auto}(T) = 1 - \exp\left(-\lambda \cdot \frac{\text{Predictability}(T)}{\text{Complexity}(T) \times \text{Context Dependency}(T)}\right) $$
&lt;ul>
&lt;li>$\text{Predictability}(T)$: The predictability of the task (how much of a pattern exists in past data)&lt;/li>
&lt;li>$\text{Complexity}(T)$: The complexity of the task&lt;/li>
&lt;li>$\text{Context Dependency}(T)$: The strength of &amp;ldquo;implicit context (domain-specific knowledge or human relationships)&amp;rdquo; that the task depends on&lt;/li>
&lt;li>$\lambda$: The rate of technological advancement of AI&lt;/li>
&lt;/ul>
&lt;p>Tasks with high predictability and low context dependency, such as writing API routing logic or creating a simple CRUD screen, will have $P_{auto} \approx 1$ and be almost completely automated. On the other hand, tasks with extremely high context dependency, such as &amp;ldquo;how to safely integrate a new microservice with an existing legacy system&amp;rdquo; or &amp;ldquo;how to design an authentication flow that satisfies the legal department&amp;rsquo;s requirements without compromising the user experience,&amp;rdquo; are difficult to automate.&lt;/p>
&lt;hr>
&lt;h2 id="4-return-from-syntax-to-architecture-structure">4. Return from Syntax to Architecture (Structure)
&lt;/h2>&lt;p>Clearly separating what AI is good at and what humans are good at is an absolute condition for survival.&lt;/p>
&lt;div class="mermaid">graph LR
Sub1["AI's Domains of Excellence"]
Sub2["Human's Domains of Excellence"]
A["Code Generation from Spec"] --> Sub1
B["Syntax Error &amp; Bug Fixing"] --> Sub1
C["Boilerplate / Test Generation"] --> Sub1
D["Log Analysis &amp; Pattern Matching"] --> Sub1
E["System Architecture Design"] --> Sub2
F["Resolving Ambiguous Requirements"] --> Sub2
G["Cross-team Negotiation"] --> Sub2
H["Ethical Judgement / Responsibility"] --> Sub2&lt;/div>
&lt;p>AI surpasses humans in &amp;ldquo;local optimization.&amp;rdquo; There is no way humans can compete with the speed and accuracy of writing a single function, a single class, or a single module. However, AI is extremely vulnerable to &amp;ldquo;global optimization&amp;rdquo; and &amp;ldquo;Missing Context.&amp;rdquo;&lt;/p>
&lt;p>Future programmers must change their roles from &amp;ldquo;workers who write code&amp;rdquo; to &amp;ldquo;architects who orchestrate the countless components generated by AI.&amp;rdquo; Having a bird&amp;rsquo;s-eye view of the entire system, where to draw microservice boundaries, how to resolve the trade-off between availability and consistency in the CAP theorem according to the business context, and how to control technical debt. These are highly intellectual tasks that can only be done by humans who understand the big picture and business goals.&lt;/p>
&lt;hr>
&lt;h2 id="5-requirements-engineering-is-the-true-prompt-engineering">5. Requirements Engineering is the &amp;ldquo;True Prompt Engineering&amp;rdquo;
&lt;/h2>&lt;p>The term &amp;ldquo;prompt engineering,&amp;rdquo; which we hear a lot lately, is often misunderstood as a &amp;ldquo;hack to trick AI into getting the desired output.&amp;rdquo; However, the essence of prompt engineering in software development is undeniably &lt;strong>&amp;ldquo;advanced Requirements Engineering.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>In order to give instructions to AI in natural language and have it output the intended software, the following elements must be strictly verbalized:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Purpose (Why)&lt;/strong>: Why is this feature needed? What is the business value?&lt;/li>
&lt;li>&lt;strong>Constraints&lt;/strong>: Performance requirements (latency, throughput), security requirements, cost constraints.&lt;/li>
&lt;li>&lt;strong>Edge Cases&lt;/strong>: Fallback processing when the user provides unexpected input.&lt;/li>
&lt;li>&lt;strong>Interfaces&lt;/strong>: Integration specifications with existing systems.&lt;/li>
&lt;/ol>
&lt;p>Vague instructions (prompts) can only produce vague and fragile systems. The ability to deeply interview &amp;ldquo;what the customer really wanted,&amp;rdquo; sort out conflicting requirements, and create a logically sound specification document (prompt). This is the ultimate &amp;ldquo;coding skill&amp;rdquo; in the AI era. Programmers will spend more time facing Notion or Markdown files instead of code editors, elaborately describing what a system should look like in text.&lt;/p>
&lt;hr>
&lt;h2 id="6-the-overwhelming-advantage-of-domain-knowledge">6. The Overwhelming Advantage of Domain Knowledge
&lt;/h2>&lt;p>Because AI has trained on open-source code and public documents from around the world, it is well-versed in general web technologies and algorithms. However, there is data that AI cannot access. That is &amp;ldquo;your company&amp;rsquo;s unique business rules&amp;rdquo; and &amp;ldquo;domain knowledge deeply rooted in a specific industry (medical, financial, manufacturing, etc.).&amp;rdquo;&lt;/p>
&lt;p>For example, suppose you are developing an electronic medical record system at a medical startup. AI knows &amp;ldquo;how to create a tabular UI in React&amp;rdquo; and the &amp;ldquo;general data structure of HL7 FHIR.&amp;rdquo; However, it has not learned the tacit knowledge of &amp;ldquo;in what order doctors at a specific department of Hospital A view patient data, and what kind of UI can minimize the risk of medical errors.&amp;rdquo;&lt;/p>
&lt;p>In a world where technology itself becomes commoditized (general-purpose), the true value of an engineer is born at the intersection of &amp;ldquo;technology&amp;rdquo; and &amp;ldquo;business domain.&amp;rdquo; Rather than competing on technical skills alone, the market will be driven by those who possess deep expertise in a specific domain—such as medical, financial, logistics, or entertainment—and can solve the challenges of that domain using the powerful tool of AI.&lt;/p>
&lt;hr>
&lt;h2 id="7-the-trolley-problem-of-software-development-who-takes-responsibility">7. The &amp;ldquo;Trolley Problem&amp;rdquo; of Software Development: Who Takes Responsibility?
&lt;/h2>&lt;p>As reliance on AI increases, we face serious philosophical and ethical issues. This is the problem of &amp;ldquo;where responsibility lies&amp;rdquo; in software engineering.&lt;/p>
&lt;p>If the code autonomously generated by AI causes a serious bug in a production environment, resulting in hundreds of millions of yen in losses for a company, or causes a malfunction in a life-critical medical system, who will take the responsibility? The company that developed the AI model? Or the engineer who input the prompt? You cannot &amp;ldquo;fire&amp;rdquo; or &amp;ldquo;arrest&amp;rdquo; AI.&lt;/p>
&lt;p>The role of &amp;ldquo;human&amp;rdquo; as the entity that assumes &amp;ldquo;Accountability (legal and ethical responsibility)&amp;rdquo; for the impact a system has on society will never disappear, no matter how much technology advances. Rather, as the code generation process becomes more black-boxed, humans will bear a heavier responsibility as the &amp;ldquo;Approver&amp;rdquo; and &amp;ldquo;Supervisor&amp;rdquo; of the system.&lt;/p>
&lt;p>Auditing whether the architecture or code proposed by AI meets security standards, whether there are ethical issues (e.g., whether it contains bias), and whether it complies with regulations, and then giving the final GO sign. This act of &amp;ldquo;taking responsibility&amp;rdquo; itself will become an important part of an engineer&amp;rsquo;s job.&lt;/p>
&lt;hr>
&lt;h2 id="8-ai-pair-programming-and-cognitive-load-management">8. AI Pair Programming and Cognitive Load Management
&lt;/h2>&lt;p>When working alongside AI, the nature of human &amp;ldquo;Cognitive Load&amp;rdquo; is also changing. The cognitive load of writing code from scratch is completely different from the cognitive load of &amp;ldquo;reading and reviewing&amp;rdquo; hundreds of lines of unknown code generated by AI.&lt;/p>
&lt;p>According to cognitive load theory in psychology, human working memory is quickly depleted when processing complex information that does not match existing schemas (knowledge structures in the brain). While the code generated by AI sometimes contains advanced optimizations that humans might not think of, it can also contain &amp;ldquo;hallucinations&amp;rdquo; that ignore the context.&lt;/p>
&lt;p>To prevent this, it is necessary to systematize the review process for AI.&lt;/p>
&lt;div class="mermaid">sequenceDiagram
participant H as "Human Engineer (Architect)"
participant A as "AI Agent"
participant S as "CI/CD &amp; Testing"
H->>A: "Define strict requirements &amp; constraints"
A->>H: "Propose Architecture &amp; Initial Code"
Note over H,A: Review Phase: High Cognitive Load
H->>A: "Critique design choices, ask for refactoring"
A->>S: "Generate Final Code &amp; Push"
S-->>H: "Automated Test Results &amp; Static Analysis"
H->>H: "Final Approval &amp; Responsibility Assumption"&lt;/div>
&lt;p>More than the skill of &amp;ldquo;writing,&amp;rdquo; humans need to push their skills of &amp;ldquo;Code Reading &amp;amp; Auditing (reading quickly and instantly spotting logical flaws)&amp;rdquo; to the limit. The importance of Test-Driven Development (TDD) has increased even further in the AI era. Before letting AI write code, the mainstream approach will be for a human or another AI to write strict test code, and then have AI modify the code until it passes those tests.&lt;/p>
&lt;hr>
&lt;h2 id="9-concrete-survival-strategy-what-you-should-learn-starting-tomorrow">9. Concrete Survival Strategy: What You Should Learn Starting Tomorrow
&lt;/h2>&lt;p>Based on the analysis so far, here is a concrete action plan for programmers to survive in the AI era.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Thoroughly Relearn the &amp;ldquo;Fundamentals&amp;rdquo; of Technology&lt;/strong>: You can leave the usage of frameworks to AI. However, a deep understanding of how OS works, network protocols (TCP/IP, HTTP/3), internal database structures (B-Tree, transaction isolation levels), and data structures and algorithms is absolutely necessary. To judge whether AI&amp;rsquo;s output is correct, a solid foundation in computer science is indispensable.&lt;/li>
&lt;li>&lt;strong>Master Cloud Architecture and Distributed Systems&lt;/strong>: Focus on how to combine cloud resources like AWS, GCP, and Azure to build scalable systems, rather than individual pieces of code. Understand the concept of IaC (Infrastructure as Code) such as Terraform, and cultivate the ability to design an entire system as code.&lt;/li>
&lt;li>&lt;strong>Become an Expert in a Business Domain&lt;/strong>: Deeply study the business models, legal regulations, and behavioral psychology of the users in the industry you belong to. Go beyond the boundaries of an engineer and acquire a perspective closer to that of a Product Manager (PM).&lt;/li>
&lt;li>&lt;strong>Polish Communication and Facilitation Skills&lt;/strong>: The process of resolving the &amp;ldquo;ambiguity&amp;rdquo; between humans and building consensus cannot be replaced by AI. Soft skills to communicate with stakeholders and discover real issues will become the most valuable skills.&lt;/li>
&lt;li>&lt;strong>Use AI to the Fullest as a &amp;ldquo;Colleague&amp;rdquo;&lt;/strong>: Do not fear the evolution of AI tools, but utilize them as your most powerful weapons. Use the latest LLMs and AI coding agents on a daily basis to accumulate the &amp;ldquo;tacit knowledge&amp;rdquo; of where AI fails and how to tweak prompts to draw out the best performance.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="conclusion-do-not-fear-ride-the-wave">Conclusion: Do Not Fear, Ride the Wave
&lt;/h2>&lt;p>The automation of programming by AI does not mean the &amp;ldquo;death&amp;rdquo; of the programmer profession. Rather, it is a &lt;strong>&amp;ldquo;Renaissance&amp;rdquo;&lt;/strong> that liberates us from the &amp;ldquo;non-essential labor&amp;rdquo; in software development, such as fixing typos, troubleshooting environment setups, and writing boring boilerplate.&lt;/p>
&lt;p>Historically, when automated looms appeared, and when spreadsheet software (Excel) appeared, pessimism about jobs disappearing was rampant. However, the reality is that the dramatic increase in productivity created new demands, and more advanced jobs were born. The same thing will happen in the software world. By making it possible to &amp;ldquo;build systems cheaply,&amp;rdquo; software will penetrate into every area that had not been IT-enabled before due to cost constraints, and the problems (What) that engineers should solve will expand infinitely.&lt;/p>
&lt;p>We programmers are now given the chance to evolve from craftsmen who write code to &amp;ldquo;orchestra conductors&amp;rdquo; who direct the mighty intelligence of AI. Instead of staying on the shore out of fear of the technological wave, let&amp;rsquo;s ride that wave early and set sail on a journey to create larger, more valuable systems. The AI era is the era when &amp;ldquo;engineering&amp;rdquo; in the truest sense begins.&lt;/p></description></item></channel></rss>