Jan 15, 2021 By Team YoungWonks *
What is back end development? If you are interested in coding, you may have come across this term. So what is it then? Where is it used and why is it so important? We shall address these questions and more in this blog.
Our previous blog talked about front-end development, so this one will be about back-end development.
First, let us revise what we know about the basic differences between front-end development, back-end development and full stack development. Front-end and back-end are both very common terms in software engineering. They denote the distinctly different concerns between the presentation layer (front end), and the data access layer (back end) of a piece of software, or the physical infrastructure or hardware. So a front end developer handles the parts / aspects of an app or website that users get to see and interact with. You can check out our blog on front-end development here: https://www.youngwonks.com/blog/Introduction-to-Front-end-development.
Meanwhile, a full-stack developer does both, so it’s someone who deals with the whole design process from start to finish. But a back-end developer is the one working behind-the-scenes, on the infrastructure and databases.
What is back-end development?
Let us now look at this in greater detail. Back-end web development, also called server-side development, alludes to the behind-the-scenes activities that take place when an action is performed on a website. This action could be logging in to one’s account or purchasing a watch from an online store. So a backend developer trains his/ her sights on databases, scripting and the architecture of websites. The code written by such a back-end developer helps in passing on the database information to the browser.
Now there are some websites and web applications that only need front end development. For instance, a single page info website. However, anything functional generally needs back-end development. So all that you see on the page - and by that we are referring to anything happening on the user’s computer - is a result of front-end development. Anything that provides data from a server comes under back-end development. So when in use, an app’s front-end (the page) has requests sent to the back-end (i.e. server) which then sends across information in plain format. The front end then renders it with styling, whereas the backend is the code on the server, and its job is to communicate with the database.
So in the client–server model, the client is the front end and the server is considered the back end, even in scenarios where some presentation work is actually done on the server itself.
Back-end developers thus work in tandem with front-end developers; they make web applications functional by offering server-side logic. They do so using server-side scripting languages such as Ruby or PHP. Back-end developers also optimize the application for speed and efficiency. Often they build a data storage solution with a database, which in turn is a major component for all web applications since that is where the information - think users, comments, posts, etc. - is stored. Common databases include MySQL, MongoDB, and PostgreSQL.
Let us look at an example: Say you are reading an article on the blog. Here the fonts, colors, designs, etc represent the frontend of this page. But bear in mind that the content of the article is being rendered from a server and fetched from a database. This is the backend part of the application.
Goals in back-end development
Now that we know back-end development is, let us look at the key goals that a back-end developer works towards and the challenges faced by them. The following are the main back-end development goals:
The main tasks of back-end development are all data-centric. So there’s accessing the data that users ask for through the web browser or app, combining and transforming it, and returning the data.
Accessing the data requested by users
A user surfing the website or using an app can ask for data at any time of day or night. This means that the back-end should be functional at all times and be able to perform its duties on-demand. Hence, a back-end developer mainly works with data. Such a developer needs to understand the importance of developing the back-end as per the latest security practices. This is even more crucial when the data in question is medical, personal or financial data.
Combining and transforming the data
The data asked for on a website or an app can come from several sources called databases. The task of the back-end is going through the said databases which store an enormous amount of data and finding the information needed within databases. The back-end also deals with combining the requested information in a way that is useful.
Returning the data
Once the back-end has collected and combined all the info asked for, this data needs to be sent to the user. Users obviously cannot read the information in code that has been written for the back-end. This is where an API (Application Programming Interface) comes in. An API is basically a computing interface that defines interactions between several software intermediaries. So this API essentially works as a translator at the back-end even as it converts the code into simple language for the end user. So a big part of back-end development is creating APIs. This way when you deploy apps to offer a service in a mobile or web format, the API in your server end enables you to actually do that.
For any digital product - website or app - to perform well, there is a need for co-ordination between web designers, front-end developers, and back-end developers. This paves the way for the best designs, development solutions and technologies ensuring that the final product looks great and can be used easily.
Tools used for back-end development
The main tools used by a backend developer are web development languages, databases and caches, servers and APIs.
Web development languages: A backend developer needs to know at least one server-side programming language. This includes Java, Python, Ruby, . Net, PHP, C++, and so on. Let us take a quick look at these.
Easily the most popular programming language that is used by leading companies and startups across the world. This multi-purpose language is used in Data Science, Artificial Intelligence, Machine Learning, Web development, Internet of Things (IoT) and more.
Also hugely popular today given that around 90 percent of Fortune 500 companies are said to use it. It continues to be used to make Android mobile apps, large backend environments and game engines.
With its large standard library, enough compatibility to allow implementation on all major platforms and native plug-in API in C, Ruby is quite popular today. This interpreted, high-level, general-purpose programming language is dynamically typed and it also uses garbage collection.
Often referred to as the foundation which several other programming languages have been built on, C++ is used to create applications that run locally on machines such as your computer.
A general-purpose scripting language particularly ideal for web development, PHP or PHP: Hypertext Preprocessor is a leading server-side programming language. It is widely used for making dynamic and interactive web pages.
For more information about some of these coding languages, check out our blog about leading coding languages for kids in 2021: https://www.youngwonks.com/blog/Top-10-Programming-Languages-for-Kids-in-2019
Databases and caches: Given their goals, back-end developers need to have thorough knowledge about various Database Management System (DBMS) technologies; the leading names being MySQL, MongoDB, Oracle, SQLServer, Redis. Knowledge about caching mechanisms such as varnish, Memcached and Redis is also very useful.
Servers: Experience of working with servers such as Apache, Nginx, Microsoft Internet Information Services (IIS) is certainly quite valuable for a back-end developer. A strong grasp over Linux goes a long way too, especially when it comes to administering servers.
API (REST & SOAP): Back-end and full stack developers stand to benefit considerably from the knowledge of web services or APIs. Another key factor is experience in building and utilising REST (Representational State Transfer, a software architectural style defining a set of constraints to be used for creating web services) and SOAP (Simple Object Access Protocol, a messaging protocol for interchanging data in a decentralized and distributed environment) services.
Web development frameworks: It is also preferred for a back-end developer to have experience of working with frameworks such as Django for Python, Laravel for PHP. Angular.js, Flask and Ruby on Rails are some of the other leading web development frameworks today. In fact, you can read all about the major frameworks today here: https://www.youngwonks.com/blog/Top-10-web-development-frameworks-for-2019.
Other tools that a back-end developer may have to rely upon include knowledge about security concerns, experience in dealing with differences between multiple delivery platforms like mobile vs. desktop, having more than a basic idea about front-end languages such as HTML and CSS and knowing how to manage sessions in a distributed server environment.
Such a back-end developer usually works in groups with engineers and UX architects or with a back-end team. In the case of the latter, the back-end developer gets to work along with software engineers even as they move towards a specific goal, say REST API development or quality assurance (QA).
Roles and responsibilities of back-end developers
Now let us look at all that a back-end developer does using the tools mentioned above. For starters, he/ she needs to:
• Understand the key objectives of the website and come up with effective solutions
• Store data well and ensure that it is smoothly delivered to the user who is supposed to have access to it
• Develop a payment processing system where data is accepted, securely stored and correct charges are made
• Manage API resources that work across devices
• Help build and manage frameworks or the architecture to make it easier to program against.
• Organize the logic of the system that runs across various devices
• Help with data science analyses
• Help implement algorithms
• Help solve system-related problems
Skills needed to become a back-end developer
A back-end developer should have the following:
• Preferably a degree in Computer Science or similar field
• Proficiency in coding languages such as Java, Python, Ruby, .Net is a must
• Proficient knowledge of the framework that is used by the company
• Ability to manage a hosting environment, including databases and scaling applications to handle load changes
• Knowledge of accessibility and security compliance
• Experience with version control, such as Git
• Excellent problem-solving skills
• Good communication skills
Other skills that come in handy are knowledge of mobile web development or cloud app development, proficiency in the use of version control / source code management tools, knowledge of CMS and CRM platforms (Salesforce & Adobe AEM/CQ), experience in writing re-usable unit test documents, experience in performance tuning, query plan / explain plan analysis, indexing, table partitioning and knowledge of database technologies.
*Contributors: Written by Vidya Prabhu; Lead image by: Leonel Cruz