Software Development
Software development was my introduction to the computer science field, with an introductory course in high school setting me down the path of computers and technology. This was one of the few courses that I genuinely enjoyed, and I found myself considering a career in the field due to my enjoyment of programming. Courses in college reinforced this desire by introducing me to more complicated software projects and better programming techniques.
History
My journey with software development can be split into three main categories: high school, early college, and late college. In high school, the focus was more on basic concepts of programming, using languages like Processing, which are more visual in nature to allow students to easily understand what they are doing. At this time, I wanted a more robust and complicated language to work with, as I thought that learning a harder language first would make understanding languages that are more simplistic easier in the future, and I sought to teach myself C++ in my free time. This resulted in me having a basic grasp of programming as I entered college.
Once I was in college, the courses formalized my understanding of many of the concepts I had
previously encountered using languages like Python and
C++. I was also introduced to the concept of data structures,
but this did not sink in until later in my college experience. Later in college, I was introduced
to algorithms and given more advanced projects that required real-world applications of the technical
skills I had acquired from my past education. These projects helped me to fully grasp the concepts that
I had been practicing for the past several years and introduced me to many new tools that I still use.
Learn more »
Coursework
While courses early in my education were important and taught foundational information, the courses that had the most impact came towards the end of my college education. These courses were taught in a team-driven approach, where teams of four to five students would be grouped together to complete semester-long projects. These courses focused less on the actual programming languages themselves and focused more on the development of a software project. Previous courses had taught how to use tools like programming languages, but later courses taught how to make something with the tools, like a simple web application. This shift in direction was interesting, and it provided an environment to demonstrate all the technical skills that had been practiced in previous courses.
The first of these courses was CS 314, Software Engineering. In this course, the main focus
was getting students used to common practices employed in software development roles, such as agile development,
clean coding, and version control systems. It was also my first introduction to working with a team on a
substantial project, so teamwork skills were developed. CS 415, Software Testing, came next.
This course had a similar structure to CS 314, but with an emphasis on testing. Many of the previous courses
I had taken needed little to no testing of the software in order to be successful, so learning how to properly
test code was a valuable skill to practice. Finally, CS 414, Object Oriented Design built on the
previous two courses while drawing attention to how to plan and design software prior to its production. In many
courses, simply jumping into the code was sufficient to complete the projects that were given, so taking a step back
from coding to work on how to design good software was a unique experience.
Learn more »