Whenever we learn a new language, or a new sport, there are fundamentals that one should learn first. Likewise, programming has fundamentals that are recommended for beginners. Things such as coding standards and design patterns help guide these newcomers. Coding standards can be compared very similarly to writing a proper essay. Formatting your code effectively, as well as allowing others to easily read it. But also much like an essay, programmers have their own style and are not always restricted to standards. Through this class I was able to write basic code, learning different ways to code the same thing. Through practice I was able to find what I felt was the most efficient way to code. Design patterns are also a guide like standards but is solution oriented. Many of the practices first tested my personal coding style, and after watching the video showcases a more experienced software engineer’s way of doing it. Through Mr. Johnson’s explanations I could apply similar patterns to issues I had in my final project. The more I practice the more patterns for certain problems I will see. As time goes on my style and application of design patterns will increase.
Project management can be used in any multipersonal assignment. In this course, we learned the processes and application of Agile Project Management for our final project. In any group project the most important thing is communication. Alongside communication, planning and issue management are crucial to project success. Issue managements is determining which task a person needs to do, and what other task you can do when you have finished your earlier one. Making sure the process is as smooth as possible, where everyone can be working on something the same time without hindering others.
From my group project I was able to develop many leadership skills, managing group members, assigning tasks as well as guiding others to task completion. The most difficult part of my group project was a lack of communication, it was important for me to coordinate respectively. Giving simpler tasks for weaker programmers or completing issues that others could not were needed. Unfortunately groups don’t always go as planned, and it is essential to adapt. Even in different scenarios and assignments, early planning and management will help you stay on track despite obstacles you might come across.
Software engineering has made me a smarter and proficient programmer. Coding ethics, the effect our coding has, showcases the consequences of our actions and how it can affect other people. Group projects kept me conscience about others, as well as proper teamwork and communication. The constant changes in this class increased my versatility, jumping from applications like JSFiddle to IntelliJ, or from barebones html and css to react and meteor. Many of what I learned from this class not only taught me how to build an application, but how to build non related projects as well. I came out expanding my skill set; improving my programming ability as a whole.