As of writing this essay I have basically completed ICS 314, learning all the content taught, with only the final exam left. Throughout the course, I have learned many different things such as Open Source Software Development, Coding Standards, Agile Project Management, and much more. While all of these topics can be seen as the building blocks to creating a web application, it was much more than just that to me. Each of these topics were new to me and helped me move forward as a software engineer. Even the topics which I was familiar with, such as the JavaScript module due to my previous experience in Java, I was tasked with using Underscore and JSFiddle which I had never used before. Essentially, the topics, whether familiar or not, provided me with extremely useful resources and information that can be applied to many aspects of software engineering.
To expand on this, I would like to take my example of learning JavaScript. It was a module where we used Javascript to write simple code using the basics of coding i.e if and statements, while and for loops, etc. As I mentioned, I had already learned Java, a language very similar to JavaScript, and so the coding was not much of a challenge at all. However, while learning JavaScript, we used JSFiddle, Underscore, and Github, all of which are important resources that I can use in the future. However, I not only gained a new resource, but a valuable lesson about software engineering.
Prior to the course, I mainly used in-built libraries for code, Stack Overflow for help, and an IDE for coding, which greatly limited my coding skills. Of course, I could probably code what in the Underscore library and find an open source software developer but it would definitely take much longer to do and be a lot less efficient. As such, the valuable lesson I learned was how many useful resources there are, and that I should actively look for these to help enhance my coding skills.
Another topic that I learned a lot from was Coding Standards. Through the modules associated with this topic, I was able to learn about ESLint, a code style checker. While I had always been aware of my code’s cleanliness, it was not to the extent to which I made sure it was the exact same for each and every piece of code I wrote. It would be to the extent in which If I or another person were to look at it, they would be able to understand it. However, by learning about coding standards, I was able to take this to the next level. If I, and other coders used the same code checker, it would be extremely easy to understand each other’s code. In addition, by keeping it orderly, it would be easy to find errors in the code. Finally, while I was setting up ESLint, I saw the many other code checkers available, teaching me the same lesson I learned previously.
A final topic that especially stood out to me was Agile Project Management. This would be helpful in many future situations and was very new to me. Learning about issues and tasks in Github was an eye opener to how easily you can collaborate on projects. Learning about how to put a description of an issue and how to manage them is a skill I am sure will be helpful in my future coding. One reason it stood out to me was because I always knew that there was a way to collaborate on projects, but I was never sure how exactly to do it. Now that I have learned all about it, I can much more confidently start coding with others.