When it comes to artificial intelligence, you're either completely for the idea of a robotic sidekick that will help you out with your day to day operations while cracking witty jokes, or you're completely against the thought that something is out to get your job.
And realistically, both of those options are a possibility currently where we stand right now. There are fantastic A.I. tools currently in development catered towards helping out developers with their work, such as GitHub Co-Pilot and Amazon's CodeWhisper.
These are not designed to take your job and more so to help you out with every keyword that you type. And we're all for these in the development world. I don't personally use these in my day to day work, but I know others that do.
And on the other end of things, there is a slight possibility that some developers (particularly newer ones) will have a harder time landing jobs as newer no-code A.I. solutions hit the market in the coming years and companies begin the adoption process.
And this darker reality is starting to happen already as tech layoffs increase in frequency and as AI gets more integrated into society.
But regardless of where you lie on that spectrum, there are still plenty of things that you can do right now in order to get the most benefit from the coming A.I. future with the least amount of damage. Here's a few of those that I personally recommend, starting with probably the most obvious one:
1. Leverage ChatGPT
Notice how I didn't say "completely dive into" ChatGPT and have it write all of your code, because that's not at all my intent, and I don't personally follow that model myself. I do use ChatGPT on occasion, but it's mainly to shortcut me having to read poorly written documentation online for various libraries that I use.
I recently spent time working with various Google Cloud API's and needed to get something up and running within a few hours to see if it was worth pursuing. Well, low and behold it didn't take ChatGPT more than a few seconds to spit out a very basic 'Hello World' application for me to try out.
And no, it didn't just run out of the box with no error messages. It definitely left a few things out and it still required me, the operator, to have to go set up the API correctly to get a valid token and set proper permissions, etc.
I still had to verify my email, setup 2FA, login and click on a dozen different buttons in order to get to my desired location. And ChatGPT got this part wrong, as the webpage it was referencing has changed since it was last able to crawl it and it pointed me in the wrong direction. Fair enough. We all know that time is its main limitation right now.
But in the end, I was able to get a proof-of-concept script up and running in less than 15 minutes. Full integration took much longer (of course), but just knowing whether the idea was feasible was definitely a big win in my book.
And I think this is where ChatGPT (at least for developers) really shines, because a big part of the job is reading documentation and trying to figure out what some developer had in mind when they wrote it 7 years ago. And you can't just email the developers and ask what they meant.
But you can ask ChatGPT, and more often than not, it can kind of give you the right answer. Or at least a good enough answer so that you can get to a solution in a relatively short amount of time.
For the most part, 99% of the code that I write is still my own and not bot driven. Most corporate codebases are not small by any means and they have years upon years of notes and subtle nuance that only the people who worked on it can decipher. That part of being a programmer isn't going away anytime soon.
But learning how to find solutions to your coding questions in a quicker manner is where ChatGPT really shines.
2. Don't forget the fundamentals
It's easy to get side-tracked with all the fancy bells and whistles that new A.I. libraries and bots bring to the table, but for the most part, you still need to know the fundamentals like the back of your hand.
And by fundamentals, I mean all of the following:
- Data Structures
- Core programming concepts
- Hardware principles
- OOP / Inheritance / Polymorphism
Essentially, the fundamentals of a Computer Science degree. I personally have a CS degree that took 5 years to earn and the amount of classes and concepts that I needed to learn was daunting. And while I don't technically use most of those concepts in my day to day work, I'd be lying if I said that it didn't help me daily in my work in some way.
It's going to be tough to ask ChatGPT for a multi-inherited payment class with polymorphic functions when you have no idea what those words mean.
Anybody can fire up a text-editor and type "Write the HTML for an about page". The idea behind isn't overly complicated.
But not everyone will be able to take a 20 year old database and migrate it over to a new environment cleaning and sanitizing along the way. And that's not really something that a chatbot can do right now.
3. Work with data
Artificial intelligence likes data. Like alot of data. And that data can come in a wide-variety of forms, such as complex relational databases, API's, Excel sheets and even CSV's.
And ideally, a good programmer should be able to read, write, update and delete from any one of those sources quickly and effectively using a variety of tools.
This usually means that your SQL skills will need to be up to par in order to gather the correct datasets and filter data appropriately. But more often than not, this data needs to be manipulated in some way, meaning you will need to learn to transform it. One of the most popular languages to do so is Python, though technically you can use any programming language in order to process files and data.
Python however makes data reading and writing incredibly easy with its simpler syntax and support for data manipulation libraries.
So while you might have an A.I. engine at the ready fired up to process your companies sales and conversion data, you might still need to spend a few days making sure that this data is correct and bot-friendly.
I personally know a few developers who specialize in machine learning and AI work professionally, and they often tell me that the majority of their day is spent in basic data querying and preparation.
4. Think long-term
Having long-term career and success in the coding world is still a difficult and very hands on thing that requires years and years of experience. There's no prompt that you can come up with that will build Amazon.com for you.
I currently work as the CTO of a startup and me and my team still have to write actual code daily. We can totally ask ChatGPT for a while-loop to calculate the monthly payouts for our users, but odds are it would have no idea what we're talking about as it doesn't have access to our database and we don't plan on giving it access anytime soon.
And that's because A.I. currently only knows what it knows. It wasn't in your last morning stand-up where the specifications where changed to something completely different than the week before.
It doesn't know what your investors are thinking, or what the ideal KPI's are for the team for that month or what the company culture looks like. At least not yet. Those are possibilities in the future, for sure, but in the moment while you sit behind your meeting with your team, AI is asleep on the cloud.
There is a good chance though, that you still have one to decades before you have to worry about any of that. And it would be a waste of time to worry about that right now.
5. Stay up to date on A.I. tools
For me personally, it's pretty surprising just how fast developers are spitting out new tools based around A.I., mainly GPT-4. Aside from the various IDE plugins that suggest code snippets for you, there are plenty of other services out there currently that generate images, manipulate audio, create wireframes and even write out business plans for you.
And the companies of the future are going to look different than the way they do today. In the future, you might work side-by-side with a virtual designer that will generate real-time wireframes based on both your codebase and market trends.
Or more than likely, you yourself will need to work on tools that do this for others. As A.I. progresses further into the future it is valid to think that it will start to take over for most of a developers current day to day tasks, but that will leave the field of A.I. wide open for anyone looking to implement these tools.
The news and media (usually not programmer's) sells the idea that A.I. robots are here for your jobs and that in the near future companies will replace you with an input box. And that makes for a decent movie plot, but real life is a bit more complex, and some would say boring.
Most people miss the fact that the faster technology progresses, the faster the demand for higher skill progresses as well.
There was a time when teaching basic for-loops and hex number conversions made sense in a university setting. And there will be a time soon when teaching fundamental quantum computing principles will be a common practice as well.
I for one, embrace this more advanced future with open arms and I hope that any developers worried about their future careers do as well.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.