Back to all articles

The Three Eras of Software: From Code to Neural Networks to LLM Programming

Published on June 20, 2025

AISoftware DevelopmentLLMNeural NetworksProgrammingFuture of Tech
The Three Eras of Software: From Code to Neural Networks to LLM Programming

The Three Eras of Software: From Code to Neural Networks to LLM Programming

In a compelling talk that has captured the attention of developers worldwide, former Tesla AI Director Andrej Karpathy presents a fascinating perspective on how software development is undergoing its most fundamental transformation in seven decades. Speaking to an audience of students about to enter the tech industry, Karpathy outlines three distinct eras of software development and explains why we're living through an unprecedented period of technological change.

For mobile app developers and tech entrepreneurs, understanding these shifts isn't just academic—it's essential for building the next generation of intelligent applications that will define the digital landscape.


The Map of Software: Understanding Our Digital Universe

Karpathy begins by visualizing software development through the lens of GitHub's code repository map—a sprawling digital universe representing all the instructions humans have written for computers. This map illustrates traditional "Software 1.0": the explicit code we write to tell computers exactly what to do, line by line, function by function.

But this familiar landscape is rapidly evolving. What we're witnessing isn't just incremental improvement—it's a fundamental reimagining of how we create and interact with software systems.


Software 1.0: The Foundation We Know

Traditional software development, what Karpathy terms "Software 1.0," represents the programming paradigm most developers are familiar with. This is the world of:

  • Explicit instructions: Every action the computer takes is directly programmed
  • Deterministic behavior: Given the same input, the output is predictable
  • Human-readable code: Logic flows that developers can trace and debug
  • Direct control: Programmers have complete authority over program behavior

This approach has powered decades of technological advancement, from operating systems to mobile apps to web services. It's the foundation upon which our digital world is built.


Software 2.0: The Neural Network Revolution

The emergence of neural networks introduced "Software 2.0"—a paradigm where instead of writing explicit instructions, developers create systems that learn patterns from data. In this world:

  • Weights replace code: Neural network parameters become the "program"
  • Data drives behavior: Instead of programming logic, we curate datasets
  • Optimization replaces writing: Algorithms automatically tune network parameters
  • Emergent capabilities: Systems develop abilities not explicitly programmed

Karpathy points to Hugging Face as the "GitHub of Software 2.0," where instead of code repositories, we find model repositories containing the weights and parameters that define AI systems' behavior.

This shift was already revolutionary, transforming fields from computer vision to natural language processing. But it was just the beginning.


Software 3.0: Programming in English

The most dramatic change has been the emergence of Large Language Models (LLMs), which Karpathy designates as "Software 3.0." This represents something unprecedented in computing history:

Programming computers in natural language.

With LLMs, prompts written in English become programs that control sophisticated AI systems. This isn't just a new tool—it's a completely different way of thinking about human-computer interaction.

The Remarkable Implications

The shift to natural language programming has profound implications:

  1. Universal accessibility: Anyone who can communicate in natural language can now "program"
  2. Reduced barriers to entry: No need for years of studying programming languages
  3. Rapid prototyping: Ideas can be tested and refined through conversation
  4. Contextual understanding: Systems can interpret intent, not just execute commands

LLMs as Operating Systems: A New Computing Paradigm

One of Karpathy's most insightful analogies compares LLMs to operating systems. Just as Windows, macOS, and Linux provide platforms for applications, LLMs are becoming platforms for AI-powered software:

The LLM-OS Architecture

  • LLM as CPU: The core processing unit for understanding and generation
  • Context window as RAM: Working memory for maintaining conversation state
  • Tools and APIs as peripherals: External capabilities the LLM can access
  • Prompts as programs: Instructions that control system behavior

The Time-Sharing Era

We're currently in what Karpathy calls the "1960s era" of LLM computing. Just as early computers were expensive and centralized, requiring time-sharing among multiple users, today's powerful LLMs are primarily cloud-based services that we access through APIs.

This creates interesting parallels:

  • Centralized processing: Most LLM inference happens in data centers
  • Network dependency: Applications require internet connectivity
  • Shared resources: Multiple users share the same computational infrastructure
  • Batch processing: Requests are often processed in groups for efficiency

The Psychology of LLMs: Understanding Our AI Collaborators

Karpathy offers a unique perspective on LLM capabilities and limitations by describing them as "people spirits"—stochastic simulations of human-like intelligence with both superhuman abilities and cognitive deficits.

Superhuman Capabilities

LLMs demonstrate remarkable abilities that exceed human performance in specific domains:

  • Encyclopedic knowledge: Access to vast amounts of information
  • Pattern recognition: Ability to identify complex relationships in data
  • Language fluency: Generation of coherent, contextually appropriate text
  • Multi-domain expertise: Knowledge spanning diverse fields and disciplines

Cognitive Limitations

However, LLMs also exhibit significant limitations that developers must understand:

  • Hallucination: Generation of plausible but incorrect information
  • Inconsistent reasoning: Superhuman performance in some areas, basic errors in others
  • Context dependency: Limited working memory that resets between sessions
  • Security vulnerabilities: Susceptibility to prompt injection and manipulation

Understanding these characteristics is crucial for building reliable LLM-powered applications.


The Rise of Partial Autonomy Applications

Rather than pursuing fully autonomous AI agents, Karpathy advocates for "partial autonomy" applications that combine human oversight with AI capabilities. This approach offers several advantages:

Key Characteristics of Successful LLM Apps

  1. Context management: Applications handle the complexity of maintaining conversation state
  2. Multi-model orchestration: Systems coordinate between different AI models for optimal performance
  3. Application-specific GUI: Custom interfaces that make AI interactions intuitive and efficient
  4. Autonomy slider: Users can adjust the level of AI independence based on task complexity

Examples in Action

Cursor IDE: Transforms coding by providing AI assistance at multiple levels—from autocomplete to full file generation, while maintaining developer control and oversight.

Perplexity: Enhances search by orchestrating multiple information sources and providing cited, verifiable results with varying levels of research depth.

These applications succeed because they keep humans in the loop while leveraging AI's strengths.


The Human-AI Collaboration Loop

A critical insight from Karpathy's talk is the importance of optimizing the human-AI collaboration cycle. In most LLM applications:

  • AI handles generation: Creating content, code, or solutions
  • Humans handle verification: Reviewing, editing, and approving AI output

The speed and efficiency of this loop determine the application's success.

Optimization Strategies

  1. Visual interfaces: GUIs that leverage human visual processing for rapid content review
  2. Incremental changes: Small, reviewable modifications rather than massive overhauls
  3. Clear feedback mechanisms: Systems that make AI decision-making transparent
  4. Easy correction tools: Simple ways to modify or reject AI suggestions

Vibe Coding: Programming for Everyone

One of the most democratizing aspects of the LLM era is what Karpathy terms "vibe coding"—the ability for anyone to create functional software through natural language interaction with AI systems.

The New Reality

  • Barrier elimination: No need for extensive programming language study
  • Rapid prototyping: Ideas can be tested within hours, not weeks
  • Creative exploration: Non-programmers can build custom solutions
  • Learning acceleration: AI serves as an intelligent tutor and coding assistant

Real-World Impact

Karpathy shares examples of building iOS apps and web services without deep platform expertise, demonstrating how LLMs can bridge the gap between idea and implementation.

However, he also notes that while the coding becomes easier, the operational aspects—deployment, authentication, scaling—remain challenging and require traditional software engineering skills.


Building for Agents: The Infrastructure Challenge

As AI systems become more capable, there's a growing need to design digital infrastructure that can be consumed by both humans and AI agents.

Agent-Friendly Design Principles

  1. Structured documentation: Markdown-formatted docs that LLMs can easily parse
  2. API-first approaches: Programmatic interfaces that agents can use directly
  3. Clear action specifications: Replacing "click here" with executable commands
  4. Semantic markup: Information structured for machine understanding

Examples of Progress

  • LLM.txt files: Simple markdown files that explain domain purpose to AI systems
  • API documentation: Services like Stripe and Vercel providing LLM-optimized documentation
  • Tool protocols: Standards like the Model Context Protocol for AI-to-service communication

The Future of Software Development

Karpathy's vision for the future involves a gradual shift along the "autonomy slider"—from human-controlled tools to increasingly autonomous AI systems. This transition will likely span the next decade and will require:

Technical Evolution

  • Improved reliability: More consistent and predictable AI behavior
  • Better integration: Seamless coordination between AI systems and traditional software
  • Enhanced security: Robust protection against AI-specific vulnerabilities
  • Standardized interfaces: Common protocols for AI-to-AI and AI-to-human communication

Social Adaptation

  • New skill sets: Developers learning to work effectively with AI collaborators
  • Changing roles: Evolution from code writers to AI orchestrators and supervisors
  • Educational transformation: Programming education that includes AI collaboration
  • Ethical frameworks: Guidelines for responsible AI development and deployment

Implications for Mobile App Development

For mobile app developers, these changes present both opportunities and challenges:

Opportunities

  1. Enhanced user experiences: Natural language interfaces that make apps more intuitive
  2. Rapid feature development: AI-assisted coding that accelerates development cycles
  3. Personalized functionality: Apps that adapt to individual user needs and preferences
  4. Cross-platform capabilities: AI tools that can target multiple platforms simultaneously

Challenges

  1. Performance optimization: Balancing AI capabilities with mobile device constraints
  2. Privacy considerations: Handling sensitive data in AI-powered applications
  3. Offline functionality: Ensuring apps work without constant cloud connectivity
  4. User expectation management: Setting appropriate expectations for AI capabilities

The Iron Man Suit Analogy: Augmentation vs. Automation

Karpathy concludes with a powerful analogy comparing current AI development to Tony Stark's Iron Man suit. Rather than building fully autonomous robots that replace humans, we should focus on creating augmentation tools that enhance human capabilities.

This philosophy suggests that the most successful AI applications will be those that:

  • Amplify human strengths: Making people more productive and creative
  • Compensate for limitations: Handling routine tasks to free humans for higher-level work
  • Maintain human agency: Keeping people in control of important decisions
  • Enable gradual autonomy: Allowing users to increase AI independence as comfort and trust grow

Preparing for the AI-Powered Future

As we stand at this inflection point in software development, several key principles emerge for developers and organizations:

For Individual Developers

  1. Embrace all three paradigms: Become fluent in traditional coding, neural networks, and LLM programming
  2. Focus on human-AI collaboration: Develop skills in prompt engineering and AI supervision
  3. Build incrementally: Start with partial autonomy and gradually increase AI involvement
  4. Prioritize user experience: Design interfaces that make AI interactions intuitive and efficient

For Organizations

  1. Invest in AI literacy: Ensure teams understand both capabilities and limitations of AI systems
  2. Design for agents: Create infrastructure that can serve both human users and AI systems
  3. Plan for gradual transition: Implement AI features incrementally rather than attempting wholesale replacement
  4. Maintain human oversight: Keep humans in the loop for critical decisions and quality assurance

Conclusion: An Extraordinary Time to Build

Andrej Karpathy's insights reveal that we're living through one of the most significant technological transitions in computing history. The convergence of three distinct programming paradigms—traditional code, neural networks, and natural language programming—creates unprecedented opportunities for innovation.

For mobile app developers and tech entrepreneurs, this represents both a challenge and an extraordinary opportunity. The fundamental nature of software development is changing, requiring new skills, new approaches, and new ways of thinking about human-computer interaction.

The key to success in this new era lies not in choosing between human and artificial intelligence, but in learning to orchestrate both effectively. By understanding the strengths and limitations of each approach, developers can create applications that leverage the best of all three software paradigms.

As Karpathy emphasizes, we're not just witnessing the evolution of software—we're participating in its reinvention. The next decade will be defined by how well we learn to collaborate with our AI partners while maintaining the human creativity and judgment that make great software possible.

The future belongs to those who can fluently navigate all three eras of software development, creating applications that are not just intelligent, but intelligently designed for the humans who use them.


Watch the full talk: Andrej Karpathy: Software Is Changing (Again)

This blog post is based on Andrej Karpathy's presentation about the evolution of software development in the AI era. The insights and examples discussed reflect his expertise as former Director of AI at Tesla and his current work in AI research and development.

Share this article

Let's turn your app idea into revenue

Schedule a 30-minute strategy call. Walk away with a clear roadmap, ballpark budget, and the next three steps to grow your iOS or Android product.

Illustration of mobile app growth