Code can be best described as an intricate puzzle. Each puzzle piece is a separate function required to create the full picture, and some pieces fit together to make smaller images inside of the big picture. Software engineering is mainly the creation of the smaller puzzle pieces, while web development is more about putting together the big picture. When I started this class I didn’t see the smaller pieces. I was used to working with code in a very rudimentary way, putting existing functions to use, not creating anything unique. I understood basic coding standards and ideas, and I had even worked on somewhat complex projects using machine learning algorithms, taking a lot of data and using very complex premade programs and making them work on my data. Those projects required a deep understanding of making functions and code work together but didn’t teach much about the creation of functions and programs. This all changed when we began to work with Meteor, software used to better run and develop websites. For background, this class began with a few quick lessons on the basic code of websites, the sort of code that was used on old websites that couldn’t look too pretty but functioned nonetheless. Once we had demonstrated a decent understanding of that, we began to work on creating websites that were much more complex, which allowed for much better functionality, but it also required us to create systems. There are premade “layouts” for most features you would want for websites nowadays, usually “open-source”, a faster way to say community-built and shared. The problem with these layouts is as much as you may have a similar goal, it’s rarely the same, and so you have to use the layouts provided as blueprints, a general plan on what you want to do, but much of the code is your idea. A great example of this comes from the group project we ended the semester with. My group was tasked with making a website that kept track of all clubs at our university while also allowing users to join clubs to keep track of clubs they would be interested in. This took a combination of three different systems combined. We could separate users into club owners easily, basically giving special permissions, but we also had to find a way to connect all users to a list of clubs, so that owners can see all who are interested and users can see all the clubs they are interested in. We made the clubs an offshoot of the club owners, and the interested users are a subset of the club. In this system, users are both a part of clubs as well as viewing them separately. We couldn’t just use the basic user profiles provided by the template, we had to add a function to connect it to the separate list of clubs, and also be able to properly show both groups. Instead of simply finding the right puzzle piece, we created a new one that better fit the image we were trying to create.