When I first started college, I knew Computer Science was my major. However, as to what career I would pursue, I was still determining. I spent hours researching career paths, reading articles and forums, and watching YouTube videos. During this time, a Youtuber by the name of Python Programmer caught my eye with a video named “Don’t learn to program in 2022.” Obviously, I was interested in this title. It may have had to do with the rise of generative artificial intelligence. However, what was discussed has stuck with me to this day.
People shouldn’t learn to code; instead, they should learn to problem-solve. Anyone can write code, but not everyone can solve complex problems. It’s even more true now with AI. I could ask ChatGPT to write code for a solution I give it. My software engineering class didn’t teach me to code; it led me to problem-solve, ask smart questions, and work as a team.
One of the biggest shocks during my time in the classroom was the acceptance of generative AI. It almost felt like cheating, and to a point, it was. Copying and pasting the problem into ChatGPT was so fast and easy. Sometimes, I didn’t even know what it was doing! However, as the class progressed in difficulty, AI struggled as solutions became insufficient. Using ChatGPT, I have found that it uses basic design patterns but needs help applying them correctly. So, although it was great at writing code, AI sucks at problem-solving. Coding is only half the battle in software engineering, requiring innovative solutions to accomplish a goal.
In the realm of problem-solving, the skill of asking intelligent questions emerged as a critical component cultivated during my software engineering class. More than merely stating a problem to ChatGPT was needed; precision and clarity in articulating the issue became imperative. This process mimics real-world scenarios where collaborating with colleagues, clients, or team members demands the ability to elicit specific information, leading to more effective problem-solving. Solutions can only be as good as what is given.
The collaborative aspect of software engineering is another dimension that transcends coding proficiency. Working as a team in my software engineering class underscored the importance of diverse perspectives, varied skill sets, and effective communication. Problem-solving is not a solitary endeavor; it thrives on collective intelligence, collaboration, and the synergy of team members bringing unique insights to the table. I’m not perfect, and everyone else to boot. It became apparent during the development cycle of programs when it was clear I’m not much of an artist. Instead of relying on programmer art, a more artistically inclined member could realize our vision.
Looking back, seeing how far I have come in my abilities and confidence in them is amazing. It was only a couple of years ago since I wrote my first “Hello World” to the terminal in Java, and I’ve moved far past that. Software engineering is a powerful tool that opens the door to infinite possibilities. It has brought me to places I never thought I would be, such as the Hawaii Annual Coding Challenge. Software engineering is more than just some code on the screen; it’s about making ingenious solutions, asking the right questions, and working as a team. While code is undoubtedly a powerful tool, it is the spark of a good idea that has the potential to transcend lines of code and carve a path toward transformative solutions.