The Software Engineering Experience

15 Dec 2020

Building Blocks

Over the course of semester, I picked up a plethora of skills from a Computer Science class I was enrolled in. Little did I know that I would not only be developing web applications, but also transferable skills that would prove to be beneficial in other aspects of my work. I gained a lot of experience in many subjects, ranging from development environments to ethics in software engineering. Out of these multiple fundamental concepts, I found two of them to be particularly interesting: agile project management and functional programming. Although they aren’t entirely similar, both are essential for successful web development. Agile project management deals with the methods and practices used to work toward a solution that the consumer is satisfied with. While doing a project, I implemented issue driven project management, which is just working on specific problems that eventually build up and accomplish the big picture. On the other hand, functional programming is a model for programming where the users code with self-contained functions. This proves to be useful in web development since it allows the users to practically run these functions in parallel and not have to worry about debugging as much since the problem will be within the scope of the function.

Beyond the classroom

Agile project management doesn’t only have to be for web applications. This idea can be applied to almost any project and will be almost always advantageous. Whenever you do work, whether its a large project or just a smaller assignment, you always follow a process. My process before, would be to analyze the problem and formulate an idea of the result that needs to be produced. From there I would normally just start working and following any criteria or rubric I was given. Although this has been proven to be successful over the years, there are more effective to go about this. Sometimes work can be overwhelming and it can be difficult to figure where’s the best way to start. But by splitting it up into smaller tasks that accomplish specific issues under the overall problem, the long term goal will seem more achievable as each task you complete takes you closer to the final objective. As for functional programming, web development is just one of its many applications. Functional programming can be used in any code: databases, operating systems, image processing, etc. In databases, functions are used regularly to pull/input information from/to tables or sort values. Almost all programming can incorporate functional programming to some extent. Functions make it easier for the user to consistently do the same process in computer engineering. Anyway you look at it, the fundamentals of web development can be applied to a wide range of work outside of computer science.