Building Creativity in Software

21 Jan 2021

An Observation

One of the observations that I have noticed between my early youth and today is that we as a society have increasingly become more reliant on technology and the software that runs alongside it. Everyone needs a computer with a web browser and everyone needs a smartphone with messaging capabilities. There has come a point where people cannot go throughout the day unless they tap into these pieces of software. A simple web browser and a text messaging app are just scratching the surface of the type of software that we have become more reliant on. We rely on cloud storage to easily store and share files, and we rely on video conferencing for distance working and learning. As time goes on, more and more software will get added to the list of essential software tools needed to get through the day. With this realization, what better way to make a difference in the world than to develop these new tools?

The Connection

This is one of the motivations as to why the field of computer science and software engineering sparks great interest for me. Computer technology has always been something that has piqued my curiosity, and while this description would be more apt for computer engineering, what interests me more is the creative possibilities that can be made with said technology. With software engineering, there are many paths where one’s creativity and ingenuity can be flexed. Applications are being developed to add convenience to a person’s life. Video Games are being created to go beyond the boundaries of graphics and creative game design. Websites are being designed to be attractive as it is functional. If app development, video game design, and web express the ability of creation, then those are fields I want to be a part of as there is no greater satisfaction than presenting something from the ground up.

The Reality

While the prospects of software engineering and its related fields may be grand, the path of such endeavors requires skills to hone and ideas to learn. While a creative idea for an application may spark, I will most likely need a solid grasp of how to transform it into a product. In other words, I hope to gain insight into the design process on large-scale projects. This may include understanding UI design and beta testing with potential users. Most likely, in a large-scale project, people will be working with teams to which modern developers rely on git and Github to effectively share code in order to test new features. Of course, the development of these programs is built using certain languages and frameworks to which I can expand my current knowledge of Java, C, C++, Python, and Javascript in order to implement new ideas in different ways. Software engineering is one that may contain more skill sets and experiences that I may have yet to discover, but whatever they are, I am sure they would contribute greatly to my ability to be a developer.

The Payoff

The realities of software engineering are one that looks rough and arduous, and stepping into the field, the feelings ring true. However, satisfying projects aren’t easily made in a single day. One must hone their craft in order to build something great. Even if the field may still be intimidating, another way I see it is that investing and acknowledging the challenges is an investment that yields the pay off of creating a product people will want to use. That is the goal I want to achieve. Who knows, eventually one of those products may become something that is a part of people’s lives.