Backend through the lens of a front-end developer:
Apart from considering BACKEND development a little daunting since forever I have known the term, I have chosen to become a frontend-developer assuming you know, life will be easy ;) Front-end development is just the ‘presentation’ or formally defined as ‘client-side programming’ dealing with what one can see and interact with, while backend is responsible for behind-the-scenes activities while performing an action on a website (formally called the ‘server-side programming’). After becoming quite proficient in HTML, CSS, JS, and React I decided to give a try at the backend development only to realize that both of them go hand in hand, just like two heads of a coin.
With the evolving tech landscape, software requirements, and the demand for usability and design, it is worth mentioning that there has been a significant increment in the complexity of the front-end to match the complexity and problem-solving capacity of backend coupled with the vast amount of importance associated with the latter.
You may observe quite often that the websites that are accomplished using HTML based scripts are Static that is, they are fixed and display the same content for all users causing them to lack interactivity which ultimately gives rise to the reason for the existence of backend; which on the other hand facilitates the creation dynamic web pages that can display different content and provide user interaction, by making use of advanced programming (aka. server-side scripting) and databases in addition to HTML. Almost all the web pages we come across on the internet are highly functional and dynamic contrary to the aforementioned category of Static websites.
Frontend is a necessary part of a web application which is intended to be accessed directly by the user’s browser which in turn is an application running on the user’s device, responsible for sending out HTTP requests, receiving the responses, and processing the received data to finally using it for rendering a viewable page; while backend, on the other hand, is the part of the web app which receives the requests, prepares the data accordingly and transmits it back to the user’s browser and surprisingly it never runs on the user’s machine instead, it runs on a Server where it’s stored wherein the server is a highly-powerful computer that provides resources which the backend requires e.g. file storage space, processing power, security and encryption, databases and other web services.
When you break it down, back-end development is really just handling requests over servers that talk to databases and return data.
Backend is required for various purposes such as Hosting, Central Data Access, Privacy and Security, Integration, and Cost distribution. All activities such as writing APIs, creating libraries, and working with system components without user interfaces are accomplished by backend.
Now let’s delve right into the journey of becoming a backend developer.
To start off, backend development predominantly demands the knowledge of a few core concepts of Operating Systems and Data Structures.
Pick any language of your interest (Java, Python, Ruby, PHP, NodeJS, etc.) and learn it. You may practice the basics through various platforms like W3schools, Codeacademy, Hackerrank, etc.
Following step1, any backend developer must have a sound knowledge of DBMS (Database Management Systems) as it plays a crucial role since it’s responsible for storing the content and it’s quite literally the brain of any website. Some commonly used DBMS software are MySQL, MongoDB, Oracle.
Understanding web services or APIs (Application Programming Interfaces) is the next step on the ladder where one can comprehend and use the GET, POST, PUT, DELETE methods for communication between client and server programs and should be able to manage the hosting environment as well as scaling applications to handle load changes. Furthermore, one can create restful APIs and implement their own APIs. This is particularly helpful when linking the web-app to an already existing app or a program created or being used by the developer.
To become a good backend developer, it’s also necessary for one to be able to understand or know the basics of front-end technologies like HTML, CSS and a few concepts of forms, and various input mechanisms, differences between ID and CLASS attributes, and how the selectors work. There is absolutely no necessity to become a “master” at the front-end languages but at a minimum, a backend developer should know how to build a BASIC static page!