Software Engineering
ChatGPT was used as a reference for writing this essay.
One popular branch of the field of computer science is called software engineering, or the systematic and collaborative development of software systems and applications. This contrasts with other computer science roles such as programming, which is more focused on the output of a specific language, or several languages. A key difference between these two levels of software development is the complexity of the applications. Software engineering involves using tools like Vercel for proper deployment and issue-based project management. Issue-based project management is a useful tool for dividing tasks, and while you’re working with design frameworks and tools like React, Bootstrap, and Next.js, tools like Vercel empower you to properly publish a working application.
Personally, I struggled bridging the gap between regular programming and software engineering. I was still maintaining up until the point of learning React, but by the time we got to Next.js, I was failing to complete most assignments. This clearly affected my ability to succeed in my first-ever experience working with a team to the level of software engineering. I believe artificial intelligence’s role in this class was a major factor in my success at the beginning of the class and also my struggles at the end of the class. ChatGPT was able to easily complete simple programming tasks, and I even enjoyed tackling mockup HTML pages and CSS files with ChatGPT. So that goes beyond the level of writing a basic program. But when working with more complex design frameworks and trying to balance multiple file types and make sure they are all working in sync, ChatGPT finds it hard to keep up. I did not get very far in the use of other team-based tools such as Vercel; however, I did learn quite a bit about GitHub and when to clone a repo.
Another interesting extension of this topic is the idea that if software engineering systems are expanded to include the use of hardware systems, both physical and digital components, this could be tied to the profession of systems engineering. I also wanted to point out that software engineer is a common job description because work fitting that description is in high demand for businesses, both public and private. Software engineering requires development that encompasses both front-end and back-end development. Both ends of development were involved in the completion of our final group project, with front-end being the website itself and its display and part of its function, while most of the functionality was developed on the back end.
My struggles with the field of computer science, beginning with the levels of software engineering, were enough to indicate to me that I no longer have interest in pursuing a degree in this major. Regardless, I learned a lot this semester, thank you very much for teaching this class.