Building a Solid Logical Foundation in Software Development: Learning to Navigate AI Support, Coding Creativity, and Industry Trends
It’s commonly said in the industry that software engineers must be continuous learners for life to be successful. When first starting out, balancing efficient time management skills and in-depth analysis for problem-solving often pushes a software developer to learn where to cut corners and where to invest their time. In a struggling economy where software developers struggle to find consistent employment that goes beyond the two-to-four-year contract, nuanced details become hot topics among developers struggling to always put their best foot forward. The programming language you choose to write in or adherence to the current industry trend routinely becomes a measure of a developer’s experience and credibility. As an industry, we should embrace all available tools to move past our former limitations; however, generative AI and adherence to industry trends should never replace the act of building a true logical understanding of code. With one simple question, Google Bard weighs in on this important question by analyzing if software developers should write their own sorting algorithms or if AI should generate their algorithms and software engineers should spend their time learning more complex topics. Google Bard provided a list of pros and cons instead of giving a definitive answer yes or no.
In favor of writing your own sorting algorithms, Google Bard said that sorting algorithms often must be customized to an application’s functionality (2023). In my opinion, when trying to learn how the code operates, AI can not replace a software developer who understands the logic behind the code. I know this is a hot topic right now, but I see value in taking the time to learn how code operates. I agree with Google Bard that the majority of code must be customized to a unique functionality and writing your own sorting algorithms teaches you how to problem solve. It’s not just about the code. There are lessons in taking the longer route, even if you might get made fun of for being an overachiever.
In favor of generating your sorting algorithms, Google Bard said that learning to write code requires a large time sacrifice, and if you do not have time to write the code, you might use AI instead to generate your sorting algorithms (2023). As with any tool, I believe a software engineer must learn balance because as I gain exposure to more complex code in professional environments, I see software engineers cannot rely on Google or AI to problem solve and cutting corners and ditching textbooks often produces poorly written code that forgoes logic for speed. Software developers frequently use code snippets and examples on Google to learn to write new portions of code. This week, we were provided several code snippets to get us started. While I agree that software engineers already use code snippets on GitHub or GeeksforGeeks when learning to code, I see immense value in deeply analyzing code, even at the early learning levels. In a professional capacity, the foundation you build dictates your growth. A software developer’s growth at a university is less about the actual code and more about the process of learning to problem-solve. In my opinion, in-depth analysis takes the cake, every single time. At Maryville University, I first started using the O’Riley platform instead of predominantly relying on Google to learn to write code. Using the O’Riley platform instead of Google significantly improved my programming skills and college experience. I see a substantial difference in my learning from O’Riley’s platform, and I believe AI works the same way. A software engineer learns by viewing code over and over until they understand it. While we must walk before we can run, true learning requires in-depth analysis.
It’s a common belief that programmers should invest in following industry trends more often than just “finding what works”. Stackexchange and Medium.com identified the quicksort algorithm as one of the most popular sorting algorithms used in a professional capacity. The discussion from Stackexchange even recognized that Microsoft uses the quicksort algorithm for the Array.Sort() method (2017). The user btilly mentioned that while quicksort might be the popular choice and might work for short lists, merge sort provides a better option for large lists (2013). It suggests that while industry trends can be helpful to get us started, software engineers should consider their specific implementation when assessing sorting algorithms.
In a quicksort algorithm, a pivot value is selected at random and used to place smaller values and larger values from the unsorted array on each side of the pivot value. The position of the pivot value in the array is then used to isolate smaller unsorted segments of the array to be sorted in finer granularity. A low index and a high index is used to track the range of IDs that are to be sorted. This recursively repeats until the position of the pivot value returned can no longer be used to isolate smaller unsorted segments of the array.
Learning to become a software engineer requires a student to learn to successfully allocate their time to protect their mental health and learn to balance a lifestyle that always pushes their creativity and logical development to the mark. Too often, I have seen unsupported software engineers lose hope and give up because they were nitpicked during the early learning phase. Software engineers should be given some leniency to balance their personal lives with their intellectual growth. As leaders, we must cultivate coding creativity and push developers into a new intellectual vantage point instead of limiting their tools and confining their value to only as good as industry trends. Software engineers communicate with the world in a unique way, and they give their best work when they feel supported.
Reference:
Google Bard. (2023). Should I write my own sorting algorithms?. https://bard.google.com
Medium.com. (2016, March 8). Quicksort — The Best Sorting Algorithm?. https://medium.com/human-in-a-machine-world/quicksort-the-best-sorting-algorithm-6ab461b5a9d0
Stackexchange. (2017, May 23). What are the most popular sorting algorithms in practice?. https://softwareengineering.stackexchange.com/questions/189555/what-are-the-most-popular-sorting-algorithms-in-practice
Comments
Post a Comment