Software Is Changing. Be Like Tony Stark in the Age of AI.
Software 3.0 is changing how we build software (again). Andrej, in his latest talk, gave an analogy about Ironman suits vs Ironman Robots. Here are my thoughts.
Andrej Karpathy gave one of the most brilliant talks on the state of AI and how it is changing software at AI Startup School. The talk explains technical details with ease using simple analogies from the real world and movies.
It's refreshing for me to watch this talk, compared to all the other talks and demo videos I've been seeing online from CEOs, YouTubers, and influencers who highlight how everything is cool, shiny, and works like a charm (not to forget, all thumbnails saying AI will replace software engineers). They focus more on engagement and less on the technical details and real-world use cases.
My Takeaway from the Talks
If you have not watched it, then I highly recommend watch it first. There is a lot to unpack. But, to get the gist of it, below are my key takeaways.
The fundamentals of software are still the same as they were 70 years ago. The way we build software is different now.
AI is Software 3.0, the transition from Software 1.0 and Software 2.0 will take some time. We need to have knowledge of all three. We still write code in COBOL and Java 1.0.
AI is the new electricity. It is becoming a utility which is charged based on demand and usage (e.g. pricing based tokens usage).
English is the new hot programming language. Improve your communication skills.
LLM solves consumer problems. Hence, the government and cooperation are lagging behind because it doesn't have any military advantage as it did in the 1950s.
LLM OS will become more common, sitting between the main OS and the users.
Think of LLMs as people's spirits with flaws. LLMs are super intelligent who can remember the entire Wikipedia but struggle with basic math. Understand these flaws and use them carefully.
LLM has uncertain security vulnerabilities with the potential for data leaks and prompt injection.
Partial Autonomy (Ironman Suit driven by Tony) is far better than full autonomy (Fully automated Ironman robots). We need humans in the feedback loop. Cursor is one of the best examples of this.
Vibe coding is good for trivial tasks, but not good for getting major work done.
My biggest takeaway as an individual developer is the analogy of Iron Man suits vs Iron Man robots. I use the word "individual" here because all of the AI development is great, but the question is how can I, as an individual, be a better software engineer and leverage these tools to ship fast and quality software?
There is a scene in the first Avengers movie between Captain America and Iron Man.
This scene shows that Iron Man is more than his suit because he is the one who built it and controls it. The same goes same for a software engineer who uses AI tools.
It does not matter how smart an AI tool becomes, it's important who uses it. Now, the question is, how to become the Tony Stark of the software industry?
Actually, the new skill set required are mostly the same as it was 50 years ago, but now it has become 10x more important.As Andrej mentioned at the beginning of the talk, "Software fundamentals have not changed in the last 70 years." However, it's fascinating to see how many developers do not focus on this.
How to be a Tony Stark of Software.
The list is a short version of the talk I gave at Flutter Ahmedabad's 50th event on "Guide to be a better Flutter Developer, in AI times"
1. English is the new programming language.
Make sure you are very fluent in English. If you are not a native English speaker like me, then read a ton of technical books, which will help you a lot.
Reading will improve your vocabulary. For example, you can use 4-5 different words to explain one thing in 4-5 different ways, based on the sentence context.
2. Improve writing for clear and precise explanations.
LLMs are mostly trained on text, and they understand text very well. You need to explain the task step-by-step.
Writing clear instructions will become an essential skill. That's why, you need to improve your writing, especially technical writing.
This skill is one of the hardest to achieve. I've seen it time and time again that most junior developers often shy away from it.
Writing is like weightlifting for the brain. It's hard and takes time to become good at it.
3. Documentation and Testing
This is something every developer has hated for years, but now it has become very important. Because documentation works as navigation system for LLMs, and testing set guard rails to prevent LLMs from breaking any behavior. (No Vibe Coder is hurt in this post 😂 )
4. Use multiple frameworks and programming languages.
Don't be just a backend or frontend engineer. Or just write code in JavaScript. Try every other framework and programming languages every now and then. Once you get the hang of it, you will understand that the fundamentals are the same for all of them.
If you don't know a new framework or language, use AI to help you out by asking....
I use X framework to do this job. How can I do the same in Y framework in the best way possible?
Having multidisciplinary skills will allow you to choose the right tool for the right job.
5. Product Engineer > Software Engineer
Understand the product and business end-to-end, because writing code is just one part of the job. Understanding the customer is an essential skill. Ask how our solution helped customers to solve their problem.
I've met many developers who have said, "I do get paid for what my manager asks me to do," but never question why they are doing it and how it benefits the customer.
👋🏻 So yeah!! That’s it, Folks for now
I am currently open for consultation part-time/full-time, specialized in mobile development with Android and Flutter. So if you are looking for someone to:
Build product architecture from scratch
Train existing developers to level up
Fix major bottlenecks in legacy codebase
Improve code quality
And most importantly, ship things faster
then reach out to me at info@burhanrashid52.com.