A look back at Software Engineering the past 16 weeks

14 May 2020

What is being an effective Software Engineer?

In the beginning of my semester in my Software Engineering class ICS 314 my professor posed this question towards all of us: What do you hope to gain from the class this semester? One of the ideas I thought of was “being an effective Software Engineer” and the response I got back from my professor was “What is being an effective Software Engineer?” When he asked that I was not too sure with what to respond with so I ended up just saying “a effective programmer who is fast at programming” at that I did not know and he said that’s not what it was and said that it was much more than that and it was “making decisions that would work best for the system.” The question I present myself today after 16 weeks do I feel like I’ve met that goal?

What did I gain?

In the past 16 weeks I’ve learned different software engineering concepts such as: Coding Standards, Ethical Software Engineering, and Agile Project Management. These concepts proved to be very helpful when it came to designing and creating systems even for the final project. Coding Standards and using ESLint was very helpful to make reading code easier and helping to make code more presentable than spaghetti code that is all around the place. I’ve even caught myself using Coding Standards in places other than for Web Development this semester I was working on another project where I caught myself making sure code was indented neatly and the code looked readable for another person to pick off from where I finished. Another concept that I feel that is useful is issue driven project management which was a type of Agile Project Management (Project management which is focused of ever evolving goal of the project) that I learned in the course which could be used outside of class in other projects. Issue Driven Project Management being a type of project management which is built on creating issues and closing issues. Where each issue would usually only take 3 days or less to complete. In GitHub when you’re using the project boards they are called Kanban Boards (I recommend using the automatic version) where when you create an issue it’s placed into the todo list then when you place it into the In-Progress column you can add yourself to the issue then when you finish it then you can close the issue which moves into the finished column. As time goes on you keep adding cards to the to-do column until the end of the milestone and each time you change milestones you take whatever you did not finish into the next milestone and then the cycle continues. Overall I feel like this can be applied to different projects like trying to learn a new language for example trying to be able to say a sentence in a language within a week you gotta learn different words and their meanings so you can keep going till you become fluent in that language. And finally the concept I felt like I learned a lot was in ethics in software engineering. As a software engineering student I never really thought of the affects my program could have after I finished programming it. An example I read was about a bank glitch causing a family to not have enough money to send their kid to their dream college. As software engineers we need to think about the affect of our program and we must be sure that our code does not harm rather make sure that the code improves and better lives.

Am I an effective software engineer?

To answer the question I’ve posed myself on whether I’m an effective software engineer is that I am not there yet there is a lot I have to learn. I feel like the past 16 weeks gave a quick glimpse into the career as a software engineer. A career which feels rewarding but also a responsibility. As a great man once said “Great power comes with great responsibility” that is exactly the case here. Coming in to the course I was unsure about software engineering I did not know what it was I enjoyed coding different things but I never really thought beyond that. The past 16 weeks opened my eyes to a whole new world. (ok I’ll stop with the movie references) Overall the past 16 weeks was slight glimpse into software engineering in which at the end got me wanting more. Next semester when I take ICS 414 I hope to gain more knowledge of Software Engineering and maybe even after when I am done with 414 to combine my knowledge of the two courses and create a project that will help people out with a problem that many of us face.