My thoughts on AI.
AI is a powerful tool that we should use to improve as engineers.
A resisting purist.
I have a bachelor's and a Master's degree in Computer Science. I studied them 2011 and 2017 respectively, and in both programs I was at some point offered an AI or ML topic to research. I rejected them along with classes that had something to do with Neural networks, ML, NLP, etc. I've always been more interested in Discrete Math and Computational Geometry topics such as geometric graphs, thrackles and other geometric structures that can be interpreted in the computer. Both my thesis developed in these programs had something to do with graphs.
Then I started working professionally, my first corporate job involved working with Point of Sale terminals and C, C++ in the backend and HTML with CSS for the front-end. In 2019, before the COVID pandemic if you'd ask me if I had heard about GenAI I'd tell you something about DeepDream which was the only thing I knew about GenAI at the time, and maybe something about Will Smith eating spaghetti. Again, I didn't care nor wanted to.
Suddenly, just 4-5 years later, the GenAI explosion. I started seeing AI here and there but mostly as a leisure product to generate pictures; I remember reading about people getting sued because they used GenAI to write a book just like GRRM and things like that made me think GenAI was doomed and that the hype would last maybe one year, like a good meme but I was wrong.
A tsunami wave right on my nose
That's how I first perceived the realization of GenAI's powerful capabilities in the modern software engineering world.
I don't remember my first programming-related prompt, nor the first generated code I saw but I do remember it being sloppy, with some errors trying to reference other classes or objects but I thought:
Holy crap! This thing just generated a whole project structure. Now I just need to do some code cleaning.
As a junior engineer at the moment I felt so curious about how did it know what I wanted to express with my words, who trained this neural network, how much time was invested on it. I did feel excited about the feeling of writing code merely to make it work properly. It might not give you production ready code but it was good enough to kickstart you and that felt awesome for me.
Interacting more and more with the model made me realize that a big wave was coming and that I could kept being a purist and stick to writing my own code at my own pace or get on a surf board and ride the way, learning along the way how I can work together with the generative AI to make my code better.
Decisions
So as I said before, I had to take a stand and decided to go along with the wave, see where it takes me. If the hype died, well I would've learnt something new but if it didn't I could leverage from it.
I decided to take a certification to start with, I already had some AWS certifications so when it became available I took the AI Practitioner certification from AWS; I also downloaded Fooocus which is a midjourney framework you can setup in your own PC for free and generate really high quality imagery.
I'm now on my way to get the Github Copilot certification because in my work we're embracing AI to help us develop our software faster and Copilot is really good at defining tasks, separating responsabilities with Chatmodes and understanding what I say, specially when I provide a lengthy context.
Conclusion
I really think AI is a powerful tool we shoud use to improve our engineering skills; I read somewhere a pessimist comment critizing the extended use of AI in many Sillicon Valley companies saying that as engineers "we're just pressing an AI button" and I thought, we're not just pressing a button. Four our project we're actually thinkng of better ways to prompt the problem to the model, how can we reduce the error rate and the human intervention after the code is generated? How can we pre-process the business requirements in order to feed it to the model so that it understands what we want? How can we extract technical requirements from a BRD? And I could keep going talking about what we as AI-enhanced engineers require to do to make our work better through the use of new tools such as GenAI.
Carpe diem. Learn everything you can, you never know what the next big tech will be. (Or maybe you could ask ChatGPT about it)