The Inevitable Future of AI

17 Dec 2024

Introduction

The emergence of AI has increasingly transformed the approach of not only software engineering but learning as a whole. It introduced enticing tools such as ChatGPT, Copilot, and Grok. AI undoubtedly revolutionized the fields of education, offering immediate access to sorts of information and reliable methods to tackle problems. Today, these tools have become secondhand to students for the better and the worse. I myself promote the usage of AI and have used the aforementioned tools as a significant aid in my learning to progress in the field of software engineering.

Personal Experience with AI

1. Experience WODs

I have used AI, primarily ChatGPT, in all of the WODs specifically for errors. However, I tackle the prompt first by myself and when I do get stuck, I refer to the video instead of AI first. When there are unclear ideas or curiosity arises I also refer to AI to answer my questions. Depending on the complexity of the WOD, it becomes a common or uncommon occurrence because the videos provided in each of the WODs are helpful code-wise but the explanations for them are not covered in depth.

2. In-class Practice WODs

These WODs have always been merciful since it’s timed but have no effect on my grade. Whenever I work on them, I try not to revert to AI but always do as the timer comes near to an end, and when it isn’t solved, I’ll continue it some other time before the real in-class WODs. The main goal for me at least is to understand the prompt and be able to integrate the necessary concepts before reaching for AI.

3. In-class WODs

This is the real deal. I opted for AI whenever it came to these WODs. Since they are timed and graded as pass/no pass, I took no risk in completing them. Sometimes, AI proves to be unreliable when giving the right code, but that can also sometimes be bypassed with the correct prompting. However, this was always not the case. When it came to the HTML WODs. In one of the WODs, I had trouble setting the footer’s yellow color to stretch all the way down to the bottom of the screen, there was always a white portion instead. I couldn’t get ChatGPT to solve this issue and since I haven’t prepared for this specific WOD I took the no pass grading. AI is very helpful but a programmer needs a solid foundation on the concept to make it work.

4. Essays

When it came to the worldly essays, all ideas were mine and original. But if I needed to expand further on those ideas I would use AI to assist me in wording my thoughts better. I incorporate my own style of wording whenever I grab portions from ChatGPT.

5. Final Project

Using AI has been exceptional for the final project. I had massive guidance when it came to integrating the APIs which I found to be the greatest challenge. This sped up the website’s progress significantly and without its help, I would have been stuck making the right implementations for a much longer time. Apart from that, I referenced a lot of the coding from the previous WODs, specifically the digits WOD to create the database and such. Those annoying nonauto-fixable ESLint errors were also solved by AI.

6. Learning Concept/Tutorial

AI has been extremely useful in this case. From getting to download new applications like pgAdmin4 or learning new commands such as those in Prisma, ChatGPT was my go-to whenever I ran into a problem. Step by step, it showed me how to connect to a database, run command lines, and troubleshoot errors that would have taken time to search for from other sources like Stack Overflow.

7. Answering a question in class or in Discord

I’ve never resorted to AI when it came to answering questions in class or Discord. For the most part, these questions were addressed by other classmates or the instructors themselves.

8. Asking or answering a smart question

I’ve never used AI in this case. A lot of the problems asked were already addressed in other sources like Stack Overflow but I would think that AI is super useful in this case for when it considers other factors that have been covered and uncovered.

9. Coding Examples

There were situations where I asked ChatGPT for examples like a UI button, specifics of a navigation bar, etc. Then I would modify it based on my own preferences. Pretty fast and reliable.

10. Explaining Code

The same way I’ve learned from asking ChatGPT what certain errors or steps need to be taken to make the code work I would dumb it down to my own terms where only the necessary information is told. I remember having to explain how the .env file works for the final project.

11. Writing Code

A lot of my code is written by AI. It’s convenient, fast, and super reliable. Of course, that doesn’t mean I don’t read and just copy it straight off. But for majority of the time when I need something of bulk or a template I would rely on AI to do that for me and make my own changes afterwards.

12. Documenting Code

It depends. If the code generated by ChatGPT already contains helpful and solid comments, I would just keep it as so. For the rest, I make sure to add my own comments.

13. Quality Assurance

VSCode has an option that auto-fixes certain ESLint errors, and that’s usually the problem for the most part. However, for the more complex or specific errors I turn to ChatGPT to address them.

Impact on Learning and Understanding

It’s important to consider how AI can render a person’s ability to learn both stronger or weaker depending on how it is utilized. On one hand, AI can definitely expedite tasks and offer immediate feedback and knowledge. It can break down those difficult concepts into simpler, digestible pieces making them easier to understand. However, on the other hand, if this tool is not managed accordingly, it can hinder learning itself. I had this issue when ChatGPT was introduced and it was all I could rely on but now I’m mindful of its consequences.

Practical Applications

For the more monotonous and very time-consuming tasks, I let AI do the job. For example, things like templates for websites, formatting, boilerplate codes, etc. This way I can implement and work on the more complex and creative aspects of my projects. I believe it’s a great tool; it allows for more time and effort for the more important and attention-demanding tasks.

Challenges and Opportunities

AI struggles on the complicated side of things. I first realized this outside of coding where I had used it to solve and explain math problems. Though you can guide it to the correct answer, if you initially have it, and backtrack it to help you understand the process of getting there. In the aspect of coding, it often faces similar challenges. While AI can generate these solutions quickly, it’s not always the right one.

Future Considerations

I strongly believe in the upcoming world of advanced technology and its ability to redefine the way software engineering is approached. It will continue to evolve and create more opportunities for innovation. However, the rooted issue of self-directed learning will always exist so long as crutches like AI are relied upon too heavily. If one can leverage AI effectively, it will no doubt be a powerful tool that drastically accelerates progress.

Conclusion

AI has undeniably become a transformative tool in software engineering and learning. It offers immense potential to solve tasks faster and provide valuable insights, but recognizing its limitations is also essential. Although AI can enhance productivity and various solutions, it still requires human logic and judgment to provide the right context. The growth of AI is inevitable, and it is up to us to adapt accordingly.