AI Is Table Stakes for Software Engineers: Part 1
Let's start out by stating a few facts about software engineering and AI:
- AI will not take your job
- People who understand AI will take your job
- Businesses are heavily investing in AI (including yours)
- We are at peak hype for AI right now
In Part 1 of this article, we'll look at each of these and add some context. Then in Part 2, I'll talk about some actionable things you can do to ensure that you not only retain, but increase your value as a software engineer.
Peak Hype
Because we're at peak AI hype does not mean that there's nothing to it. AI is real, here to stay, and will continue to be gradually embedded into software engineering workflows, regardless of specialization (front-end, ops, etc.).
The earlier you come to this realization, the better your chances of continued success in the industry.
It's important to be able to understand what AI can do and can't do, and that its capabilities will advance with time, and quickly. This will help you evaluate hype vs. reality.
Another aspect of hype is related to the nature of how startups get funded with VC money. Founders need to sell an idea, and that idea needs to come with a strategy for how that idea will generate a return on investment. The bigger the promise, the more enticing the idea generally becomes. Founders are also competing for money with other founders who want to sell their idea, too. This incentivizes hype.
We're also in the midst of a gold rush for valuable IP, which means that VCs are also incentivized to take bigger risks, which in turn, incentivizes hype. It's a vicious cycle.
Existing Business Needs to Stay Ahead of the Game
It's safe to assume that just about every business is looking to enhance their internal productivity and product value with AI. Of the past three companies I've worked with, one was a pure AI startup, and the other two were spending a significant amount of time and money on new AI capabilities.
This isn't going to change. In fact, it's only going to accelerate.
Business leaders know that their existing strategies will not carry them very far into the future and that they must adapt to the new reality. To not do so would be to drown in a sea of competitors who will adapt, leaving those who don't in the doldrums to experience a slow death.
That said, adopting new strategies is a very difficult thing -- inertia makes course changes painful, and companies (including individual stakeholders within) have much invested in processes that have worked for them so far. This is where your experience can come in -- they will need help.
Don't Let Yourself Become Irrelevant
You're likely already aware that continuous learning is an invaluable and necessary aspect of your work as a software engineer. To be clear, I don't mean chasing the next framework, language, etc. -- those don't really matter as much as everyone wants you to think.
What's important is that you always maintain a strong grasp of the fundamentals of software engineering. This is more than just Data Structures and Algorithms (DSA). Those are important, but they're just the beginning of your career. Just as important, you need to understand the world in which you perform your work (business), how to communicate with others in that world, and possess the tools necessary to do your work well.
AI is the new tool. To not understand it is to let yourself become irrelevant.
Does this mean you won't be able to find work? No, not at all. It does mean that you'll be severely limiting your opportunities in the future. The more literate you are on the subject, the better off you'll be. We'll get into what it means to be literate later.
People will Replace You
By now, it should be clear that understanding the fundamentals of AI is important. Your job will change, and therefore so too will the requirements for it.
If you cannot meet those new requirements, then someone else who took the time will beat you for the job.
This sounds calamitous (even to me), but let's explore what it really means for individuals with different levels of experience.
Entry Level
If you're new to software engineering, data science, and ML, no one expects you to have an advanced understanding of such concepts. Even those coming out of college with those specialties aren't going to have much more than a slight head-start compared to someone with a strong desire to succeed. Learn, learn steadily, and force yourself to do the hard things at the edge of your experience. Incorporate AI topics in your learning. Repeat this consistently.
Understand this: building things in the real world and dealing with all the difficulties and constraints that come with that is where you'll achieve the most gains.
Higher Seniority
This is where the real competition is. You know your industry and have a pretty good general idea for what works and what's important. You should be studying and building in your own time -- don't wait for your employer to help you; you're just a number (no matter what they tell you) and will just expect you to keep yourself up-to-date with what they want. You can ask for recompense after the fact, but don't count on it. Do advertise that you're learning and share what you learn -- it's good self-promotion.
Comparing Experienced Academics and Software Engineers
I bring up this comparison for a couple reasons. AI is a difficult and complicated subject, and those coming from an engineering role may think that hill insurmountable. I want to tell them that it isn't. The second reason is that engineers have an extremely powerful advantage that they may not be aware of.
At first, newcomers to AI will likely find it impossible to grasp the massive amount of scientific terms and acronyms consisting of words that seem to carry nebulous meanings. There are lots of references to formulae with famous historical people's names in them, written in an unfamiliar notation.
Yes, that's how it is, but you don't have to be a genius to understand them. Getting started is by no means easy, but it's not impossible. You can learn what you need as you go, just like you did when you were learning about your engineering expertise.
Now, here's the part where your engineering background gives you a huge advantage.
Academia doesn't teach people how things work in the real world. The real world is very messy. Businesses don't care about all the theories you know, just like they don't give a crap about how clean your code is. They care that you're delivering value, and about how fast you're delivering value -- that's it. Software engineers have had this drilled into them so hard that it's basically a PTSD symptom at this point.
That said, before anyone thinks I'm suggesting that people skip college: go to college if you can, and do it as cheaply as you can; a head start is a head start. I personally spent a lot of time at a community college, exploring a wide variety of interests -- I would never trade this away. What I mean is that no college should not preclude you from pursuing a career in software engineering.
Part 2 - How to Actually Learn This Stuff
In part 2, I'll cover an actionable plan you can use, or at least start from, to help you build the skills you need to be stay competitive as a software engineer.
My intention is to provide a reasonable and measured approach, with a clear, but flexible roadmap that anyone can follow to get where they want to be.
It is, after all, the path I took. Hopefully I can save someone some time by pointing out all the hurdles I had to overcome along the way.