Throughout the course of my learning in software engineering, I have come to realize that it is a little more than just building neat web applications and some nicely designed websites. The many things that I have learned in software engineering has given me a much better idea of what to expect, what to know, and what to understand in a computer programming field. Designing websites was just one small part of it, but there is a much, much bigger picture to it than just making a simple website. In this essay, I will talk about three major topics: the use of a development environment, design patterns, and ethics. I will conclude this essay talking briefly about my experiences while learning under a software engineering course.
I remember when I first started out on programming roughly two years ago, I worked with an online environment. I, for the life of me, cannot remember the name of it, but it served its purpose well; it was convenient, it was online, and I did not have to worry about Windows randomly setting me back several hours (this was when Windows 10 was in its infancy, mind you). Eventually, I had to switch over to using Geany. It, like the online environment I have been using, was not bad. The problem, however, is that it barely had any features to work with; it was essentially barebones and was not the best environment to work with. Throughout the semester, I have learned how to work with an IDE (integrated development environment) known as IntelliJ. There are, however, other IDE’s that one can work with; Eclipse and Putty are just a few to name. But why should we be using environments? The answer to that is simple, simplicity. Maybe the installation process is not that great, but installing an IDE helps simplify your life of programming in so many ways, from error spotting to syntax corrections to auto fills. These beautiful programs also provide the user with additional accessibility and, most of the time, a “marketplace” where you can download additional widgets and applications that the user may deem useful. Granted, it is not exactly a cake walk; these IDE’s DO NOT come with instructions on how to make programs; that is all dependent on the programming language that you use. It does, however, simplify your life and make it a lot easier. It certainly is a lot better than installing a virtual machine and using Geany!
I said earlier that software engineering is more than just making a simple website, and that still holds here. Which is why I wanted to hop into talking about something known as “design patterns”. A week or two ago, I wrote an essay about design patterns, comparing it to affordable beater cars that could be used in a clubman touring car championship. It is not just about the appearance; it is also about the functionality and effectiveness. After all, when making a website, application, etc., you want to find an effective way to implement code without completely breaking your program or cluttering it. That said, one technique alone cannot solve every single problem of yours; you need to determine which would be effective and for what instance. Throughout the semester, we learned a variety of efficient methods, whether it be making a website far more accessible (Meteor and React) or compacting functionality (underscore).
The last thing is more conceptual than it is programming application, ethics. When we think of ethics, we think of whether something is humane. During my studies, we had a debate regarding ethics and Facebook; was what they were doing for the better of the user or for political or monetary gain? It was a debate that lasted almost an hour and had a tie on just about every section of my class. Ultimately, we need to take into consideration on how we use our sites; it is not just the creation, but also management and what happens when our site grows large like Facebook or YouTube; are we following proper guidelines and rules? Are we violating privacy laws? Are we tracking data to help improve the site or for doing something more selfish and greedy?
Ultimately, programming is more than just writing several lines of code and having the screen print a simple message. It’s about finding the right working environment that suits you and you’re reasons for programming, about finding efficient solutions to problems, and most importantly trying to maintain a level of ethics when releasing a fully functional program.