By Oscar Corea,
Software Engineer at BairesDev
When I began my software development journey in 2014, learning was quite different from what we see and know today. Although there were some developer platforms like Stack Overflow, GitHub, or SourceForge, there weren’t as many resources available online as there are today, and questions posted in forums remained unresolved for days on end.
The journey was even more challenging for developers like my father, who began his career in the 90s. He has told me about his days coding in Cobol and Pascal, when learning was predominantly book-based and courses were held on-site only. Online academies didn’t exist, and sites like Udemy, YouTube, or Stack Overflow were still far from being on the map—gaining expertise required a lot of self-study and discipline.
When he bumped into a problem, my father couldn’t just “google it” to know how others solved the same issue and get the answer within seconds, like we can today. Instead, he had to talk to a more experienced colleague, hoping they would have an answer, and this research could take several days. Modern resources, including artificial intelligence (AI) tools, have drastically changed how we approach software development, making it much faster and more efficient.
Things were quite different from my father’s experience when I started as a developer. Websites like Stack Overflow began to gain popularity, and developers worldwide were helping each other out. The way developers learned about new topics was evolving, and having more resources available made the journey a little easier. Over time, YouTube also became a great source of information, with developers posting helpful video tutorials on specialized channels.
Learning about software development evolved from reading books or going to on-site courses to watching a tutorial on YouTube or enrolling in an on-demand course on platforms like Udemy. AI would come to take learning to a whole new level.
The rise of AI
The first AI that became popular regarding software development was GitHub Copilot. Here’s how GitHub defines it:
“GitHub Copilot is an AI pair programmer that helps you write code faster and with less work. It draws context from comments and code to suggest individual lines and whole functions instantly.”
GitHub Copilot was launched in October 2021. It uses Codex from OpenAI to translate natural language to code. It was trained with data for both natural language and billions of source code publicly available.
AI has progressed not only in software development but also in many other fields like image processing, speech recognition, data analysis, autonomous vehicles, and robotics, and the list grows with every passing day. The one tool that really caught everyone’s attention was ChatGPT from OpenAI because of its versatility and user-friendly interface. Everyone can use it, as it was trained on vast internet data, not just code.
My first interaction with this AI was very casual, with GPT-3 in January 2023. I just asked some questions about my country to get an idea of how much “it” knows—questions like best tourist spots, traditional dishes, and famous local people—and it answered all my questions accurately in just a matter of seconds. It made me think that it was the end of traditional search engines.
Some days later, I asked it to create a very basic tic-tac-toe game using HTML, Javascript, and CSS. The CSS it generated wasn’t the most attractive design I have seen, but it worked. On the other hand, the game itself wasn’t working. I asked twice to fix it, and it couldn’t. I was curious about it, so I started debugging the code. I found and fixed the problem myself, but I wanted GPT-3 to fix it. So, after knowing what the issue was, I explained it just like I would in a normal conversation with a coworker, and it seemed like it “understood” and fixed it.
Practical Uses of AI in Software Development
Today, AI can be used in all the software development stages, from inception to deployment, and even further with chatbots to interact with customers.
Focusing on coding, GitHub Copilot and GPT-4 are the most effective tools available today. I have used them in different situations:
- Writing regular expressions
- Assistance in understanding what a portion of code does
- Creating short pure functions
- Optimizing existing code, which is very useful for complex compound Boolean expressions.
- Chatting with it to create a database structure, just for reference, because it could get confused easily with a complex database
- Writing unit tests
- Learning how to use a library/framework with practical examples
- Getting ideas on potential reasons for any error
Challenges of AI in Software Development
While AI has undeniably brought a lot of benefits to software development, it also has its own challenges. As it doesn’t fully understand the code, depending too much on it to generate code may lead to complex bugs and security vulnerabilities, and it may not take into account future scalability or adaptability. It may also make mistakes and come up with a “fact” that is not completely true.
It may have some legal and ethical implications because it’s unclear who owns the content created, as it is generated from a lot of resources on the internet. For these reasons, even though AI offers many benefits, some companies have banned the use of AI by their developers, and simultaneously, other companies are leveraging the benefits.
The Real Role of AI in Software Development
AI has evolved a lot in recent years, and now it is everywhere. It acts as an ally for developers in the Software Development field. I usually think of it as a highly knowledgeable “friend” who is always available to help us find a solution to any problem or give a hand to decode a complex piece of code.
AIs, such as GitHub Copilot, provide developers with relevant real-time code suggestions, significantly reducing the time and effort required to write new lines of code, but those code snippets are just ideas. It doesn’t know the whole context of an application, and we should be cautious not to mindlessly implement them, as it could introduce new bugs or security loopholes.
GitHub published the results of a survey of more than 2,000 developers in 2022 to understand the impact that Copilot had on developers’ productivity and happiness. When using Copilot, 88% felt more productive, 74% were more satisfied at work, and 96% said they were faster with repetitive tasks. Based on my experience using it, these stats are pretty accurate. Copilot is a great tool to save time and helps reduce syntax errors and refactor not-complex code.
On the other hand, AIs such as ChatGPT are designed to assist with a broader range of tasks, not just coding. I personally often use it as a tool for learning new concepts or libraries in conjunction with official documentation.
In conclusion, AI supplements our work as Software Developers, but it doesn’t replace the value of human insight, creativity, and problem-solving prowess. Instead, it complements these qualities, allowing us to focus on the fun stuff rather than the repetitive tasks, increasing satisfaction and productivity, and making coding more efficient.
Looking ahead, I believe we’re just getting started with AI in coding. We’re likely to see even more tools that will offer more real-time help, catch mistakes early, take into account the context of the whole application, and even completely delegate some tasks to it. But the real game-changer will be when these tools really understand what we’re trying to do. It’s an exciting time to be a developer!
If you enjoyed this, be sure to check out our other AI articles.
- A Guide to Inserting AI Into Your Workflow
- The Ethics of AI: A Challenge for the Next Decade?
- AI Myths and Job Security: Will Robots Take Our Jobs?
- AI and Machine Learning Software Testing Tools in Continuous Delivery
- The Hurdles of Implementing AI and Robotics in the Healthcare Industry
As a Software Engineer at BairesDev, Oscar brings ideas to life, transforming challenges into robust software solutions. He’s passionate about new technologies and their power to revolutionize our digital world.