What it means to be a software engineer

16 Dec 2021

Before this class, the field of software engineering was something I thought was unobtainable. I didn’t understand how to work as a software engineer, previous classes have taught me programming languages, problem-solving, algorithms but I was working by myself. I didn’t even know what GitHub was, and now I can’t live without it. The most important thing I am going to take from this class is configuration management, the process of properly developing and maintaining a website. I also learned how to style a website, we started with basic CSS learned how to use User Interface Frameworks to easily use nice-looking pre-made CSS elements, mainly learning about Semantic UI. Finally, I combined both Configuration Management and UI Frameworks in the final project where we had to make a website and deploy it using Digital Ocean. Since I was working with a team on the final project, we used Issue Driven Project Management which is a style of Agile Project Management, in order to divide the workloads. These three things were the most useful things I learned in 314.

User Interface Frameworks

User Interface Frameworks are pre-made CSS classes that are used:

We used Semantic UI as our UI Framework this semester and even though I was using basic CSS for less than a month at the time, one week with Semantic UI and I couldn’t look back. Being able to write:

<Container></Container>

And have Semantic UI gives you a container with custom margins and padding to put your information in. Being able to create a button and have it also be a link by adding the link as a parameter is very useful as well. There are buttons, labels, grids, menus, dropdown menus, you have to play around with it in order to get the design you want, but it saves a lot of time.

Configuration Management

It might be appropriate to label this section as “My intro to GitHub” because learning how to use GitHub and Configuration Management went hand in hand. Configuration Management is the insurance that as a system gets updated and maintained it will stay stable. GitHub has procedures that when used correctly will tell you when the stability of your website is threatened. The way to use GitHub is to make a master/main branch and if you want to update the system you would make a new branch and make you update in that branch. When you merge the two branches GitHub will tell you if there are collision errors that would cause the system to crash if merged. Using GitHub not only made it easier for me to find errors, but it also insured that if used correctly on a team no one person can break the site.

Issue Drive Project Management

The main points of Issue Drive Project Management are:

When you start out as a team it’s hard to figure out how to start.

Should I do this part? Oh, I already did that part.

You end up wasting a lot of time, with GitHub issues you can state what issue you are working on, and everyone can see what issue you are working on.

This is self-explanatory, with only one big due date it’s easy to procrastinate and lose track of time, with milestones it’s easier to make good progress earlier.

Since everyone is working on their own separate issues, it’s important to have a meetup so everyone can share ideas and progress and create new issues for the next week of work.

Conclusion

In conclusion, ICS 314 has been the most useful class when it comes to experiencing what software engineering is like outside of college, I am sure that I will never forget most of the core concepts I have learned in this class, thank you to everybody for a great semester!