The Two Sides of Software Development

As a programmer, it always amazes me when I think about how a single click of a button makes a huge difference in another person’s life. As developers, it gives us a huge sense of fulfillment to say that “Yes, we made that possible.” What’s even more fascinating is when I start to think about the “magic” behind that button. How was it possible that in just a matter of seconds the system was able to save the user the hassle of performing a task manually?

The front end and the back end are the two major components of a system and one cannot simply live without the other. Each side requires a different set of tools, languages, frameworks, etc. to learn and each side carries a different set of challenges, each side gives a developer different levels of fulfillment but at the end we all know that each side is just as important as the other.

The back end side of developing a system basically refers to the side that the user is unable to see; it is what happens behind the button that the user has just clicked. It is because of that fact that the user cannot see what’s going on behind that button that some would say that the back end side is less fun to work on; we all know that as developers, the back end side is just as or even more important than the front end side of the development.

Databases, services, server side processing are just a few things that we work on when we talk about back end development. From establishing a connection to the database, designing what tables to have and how they relate to each other, retrieving and storing the data to the database, processing the data that the user expects, passing the processed data to the front end side so that it would be shown to the user. That is just an overview of a scenario on how the back end side works. It certainly could make the front end side deceptively simple while it makes itself the more complex side of the development.

The front end side refers to the side of the system that the user can see and what the user interacts with. It is more fun to work with for some because they can see a virtual representation of the data that has been processed right away; moreover, designing and styling so that it would look better for the users to see is an enjoyable even if it is a frustrating task to execute at times.

The benefit of it being the one that users see is also the biggest disadvantage for the front end side of the development. The users care more about what they can see than what they do not see. The users would not know if you multiplied to 9 using continuous addition (3+3+3 instead of 3*3) they would barely care about that. What matters to them more is that when they entered 3*3 the result that they will see on their screen is 9. Once the result was not shown or was shown but not in the way the user wants it to be then that becomes a problem for the front end.

The front end side of the development is deceptively simple because for the most part the back end does the processing and the front end just waits for it before it shows it to the user. However, creating a layout, designing and arranging the elements in it, binding each element to an event, making the request to the server for the processing, getting the result and doing finishing touches for manipulation of the data and displaying it to the user is really not as easy as it sounds. Sometimes what seems to be like a simple request to change in the front end is takes a lot more effort than it looks like.

Here at You_Source, we know and we understand the importance of these two sides of developing a system; we understand that as developers it is possible for each of us has a preference on which side to work on; we still do not take it out of the equation that if needed, a back end developer would learn what is required so that he can contribute to the front end side of the development; the same goes for a front end developer learning the ways to contribute on the back end side.

As programmers, we always have a thirst for knowledge, when we see a new update on a technology that we use or we find a new technology that we can use to deliver better results, we always find time to learn about it. It does not matter if it is for the front end side or the back end side, we simply have the urge to know more so that we can continue to do what we do — that is to change the world and make it a better place through coding.