It seems like AI is causing quite a stir in the software world. Companies are realizing that for a lot of basic tasks, they can just throw generative AI at it instead of hiring people. This is causing hiring to slow down in the software industry, making it especially hard for people coming right out of college to be in this industry.
I don’t think that software engineering is dead. I think that it is changing.
My uncle has been a doctor his whole life, but he started out very computer-obsessed. He showed me a book of code that he wrote in highschool – a massive book with printed code that was a grading system for his school. It was about the size of one of those big dictionaries you see in the libraries, all for one program. He tells me about how gigabytes now were megabytes then, floppy disks were pretty much the standard. All to say that, even computing a couple of years ago has made a massive leap in just one generation.
Enter, AI. A technology that redefines how we work. I have heard comparisons thrown around to the Industrial Revolution – and while I initially thought that was a little silly, I kind of see it now. Efficiency as we know it has been maximized through a means that we don’t quite understand. Just like there were people in factories replaced by machines, I think we’ll see the same thing with us today.
So the fear of AI taking all of our jobs, am I just being complacent with it? No, not really. I think that generative AI has a strong potential to render a lot of jobs we have now as obsolete. However, I don’t think that means humans are necessarily “replaced” as workers altogether. I think there’s a massive difference between a tool that replaces some parts of industries, and the robot uprising. And trust me, we are not in the robot uprising.
English is the next programming language
From books of printed assembly code, to higher level programming languages running on cloud servers, we’ve certainly seen a huge evolution in not just computing, but the process in which we engineer systems.
Now, I believe the newest and most powerful programming language is English.
As a software engineer, I’ve been very deep into coding for, a while now. As someone who never thought I’d be interested in code growing up, I realized that, coding is just a means of telling a computer what to do. Literally, that’s it. All developers do is tell computers to do things. Sorry, hate to break it to you!
This means a few things. The first is that telling a computer what to do is hard. I realized this very early on in college. I kept failing auto graders left and right, frustrated out of my mind. How could software be so capable but be so stupid? Most of my errors were because I forgot a semicolon, or that I used the || OR instead of the bitwise | OR (almost cost me 40% on one of my projects not joking).
We throughout history have constantly been trying to improve this by introducing higher level programming languages. These are like Python, Javascript, etc – and basically tell the computer, “hey, you already know how to allocate memory and do all the boring stuff we don’t need to repeat 100 times, so I’m going to say like 1 word and you do all that, ok?” This makes it super easy to make a highly complex program, because you don’t actually have to know how a computer works to make a computer program. I don’t need to worry about how the compiler is processing my code, I only need to know how to engineer the high-level language that I write in.
What I have learned from seeing these AI tools try to code is, to put it simply, they are bad. I don’t care if you can whip up an MVP with prompts, if you don’t know to engineer a system, it will be very bad. I talk about this in a previous article, but engineers are actually still needed to… engineer things! And why is that, exactly?
Engineering is literally just materializing a solution for a complex problem. How do we go faster than a horse? Maybe something with an engine would work, says the non-engineer. Okay… how we make that? Well… we’d have to understand physics, and how the car would be able to hold the engine, and get the wheels… and, how even do we fuel this thing? Engineering usually always introduces a cascade of problems that also needs to be solving. This is why coding is so hard. It’s not just coding an app that does things, it’s making sure that the app doesn’t break when doing things that you didn’t intend it to do! And, that happens a lot!
So, with all that said – if we now look at LLMs, I see them as, not the solution to eliminate engineering as a skill, but a tool for engineers to engineer faster. Just like high level programming languages eliminate the need to know assembly, prompting an AI to start a project eliminates a ton of writing boilerplate code, looking at documentation, a lot of the boring stuff that I hate doing. Notably, you still have to know how to engineer a system.
Learn prompt engineering
I would highly recommend for anyone new in the field to read this excellent paper Google made on prompt engineering. It covers a lot of the technical aspects of how to make your results exponentially better with just a little adjustment.
As AI gets better and better, I don’t think we should worry more and more about our jobs getting replaced, rather, learn these new tools. Perfect the art of prompt engineering, and you’ll be able to scale brilliantly with the “AI uprising” as a software engineer.
We aren’t going anywhere, we’ll just have to learn how to code in English.
Leave a comment