What is back-end development?
There are generally two parts of any web application: the front-end or client- side and the back-end or server-side. The front-end part of the application includes the pages you see and interact with within your browser. The front-end developers develop those pages. But, how exactly are those web pages displayed on the browsers used by the user? What happens when a user inputs something into those pages?
When a user enters a URL, opens a webpage, interacts with animations, clicks a link or submits a form, their browser connects to a web server, which is just another computer that runs a software that helps in delivering
resources like web pages and images. When a web server receives a request for a resource, it needs to respond with that particular resource. Programming web servers to respond with the correct resources is the major domain of back-end developers. Before a web page or other resources are delivered to a browser, a web application written by back-end developers fills that page with the data that is pulled from a database, which in turn is a separate program that stores and retrieves data. Back-end developers must be acquainted with the programming language that is used to build the web application and the database where the data is stored. Overall, a front-end developer designs web pages, and a back-end developer serves those web pages customized with user data.
The path to becoming a good back-end developer
The journey of a back-end developer is quite complex. He/ she has to face a lot of decision-making moments. There is a variety of tools, frameworks, and software that are available for backend development, and different companies prefer almost all of them equally according to their requirements.
Let us dive deeper into the basic types of frameworks or tools that are essential for any back end developer. Many steps occur while responding to a request from a browser, each requiring a different type of software. The combination of technologies used by a particular web server is known
as its "tech stack". A tech stack has different layers or different kinds of important tools.
For each layer of the tech stack, you'll find there arc many choices between software and frameworks. There's no way to learn them all before you get your first development job, but you'll find that different web server frame works and databases work in almost the same way. If you learn a popular language or framework from each layer, you'll find that there are plenty of companies ready to hire and train you in their particular tech stack. Let's look at each layer of a typical tech stack:
1. Web server software:
When a browser connects to the server, the web server software accepts the request. It acts as a mediator that enables the exchange of important information between the browser and the server. Examples of popular web server software include Apache, NGINX, and Microsoft IIS (Internet Information Services). IIS is mostly suited for web applications developed particularly for Microsoft's operating system, Windows. Whereas Apache is very solid for heavy functionality and NGINX is also powerful, but is primarily built for high traffic sites. NGINX needs dedicated software to process PHP commands while Apache uses its own tools.
2. Web framework:
The web service software then passes the request off to a web framework. Web frameworks are libraries for programming languages that help back- and developers handle web requests. These libraries save developers from writing basic and repetitive codes from scratch. There are different programming languages out there, each with multiple frameworks to choose from. They all work similarly, so after you have learned one language and framework, you will find it easier to learn the others. We are listing out the most popular languages and their corresponding frameworks here:
a. JavaScript: It is a language which was originally developed to run inside web browsers to make web pages more interactive. More recently, server software has been released that allows developers to write JavaScript code for back-end as well. Popular JavaScript web frameworks include Node.JS and Express.
b. Java: This language should not be confused with JavaScript. Java language was designed from the ground up to be run on the server-side. Java is as easy to pick up as JavaScript, but the resulting programs are fast enough to handle requests from thousands of users at once. On top of it, Java runs on Bytecode, which helps in cross-platform functionality. Popular Java web frameworks include Spring and Java Server faces.
c. Python: It is a highly flexible programming language that is easy to learn and use. Apart from back-end development, Python is also very popular for data analysis, web scraping, etc. Popular Python web frameworks include Django and Flask.
d. C#: Microsoft originally developed it as an alternative to Java. If you are going to be working in the Microsoft ecosystem, you will have to learn Popular web frameworks include ASP.NET MVC and ASP.NET CORE.
3. Object Relational Mapping (ORM):
The web framework then coordinates the rest of the process of handling the request. The code written by the back-end developer uses ORM to connect to a database and retrieve data that will be used in the finished web page. Programming languages and web frameworks represent data as objects, and the ORM library is responsible for converting database records to objects. Most databases use a separate language called Structured Query Language (SQL) to retrieve the data. The ORM library writes most of the SQL queries to retrieve the needed da [a, automatically. Sometimes, a query is so complex that the ORM library can't handle it. Back-end developers need to know SQL so that they can write their own queries in these situations. Once the data has been retrieved, the back-end developer needs to insert it in the pages that were designed by the front-end developers. Web pages are written using Hypertext Markup Language (HTML), and a back-end developer needs to know enough HTML to be able to update the page.
4. Application Program Interface (API): If you are maintaining an API, the server might send a response that is meant for use by a program other than the browser. The most common formats for API responses are JavaScript Object Notation (JSON) and Extensible Markup Language (XML). A back-end developer needs to be able to convert the data to JSON or XML for the server to respond.
Once the code has been written to carry out all these steps for a request, the back-end developer's work is done. The web framework will automatically deliver the completed response to the web server, and the web server will respond to the users' browser. If the back-end developer has written the code carefully and cleanly by avoiding slower, inefficient operations, then this whole request and response process usually takes less than a second. Successful back-end developers rely on other tools besides their programming language and the web framework.
Additional tools
I. Cloud hosting:
You'll need computers to run your finished web app. Gone are the days when most companies ran giant servers and computers in their buildings. Nowadays, most apps are hosted on cloud hosting platforms, which can deploy copies of your app to as many or as few servers as you need. Popular cloud hosting platforms include Amazon Web Services, Heroku, and Google Cloud Platform. Heroku is a cheaper version used by most beginners with a decent pricing range. Amazon Web Services is expensive, but provides excellent uptime and speed.
2. Database software:
You'll need to be familiar with the database software itself so you can create the tables and columns that will hold user data. Fortunately, most databases work similarly, and the ORM library handles most of he work of managing the database. Popular database software are MySQL, SQL Server, and PostgreSQL.
3. Version control system:
You'll to have one version of' your code running on your web server and another version on your computer while you work on new features. The version control software can help you manage the different versions of your code. It keeps a record of all the changes that you make in your code
so that you can track and extract any version of your code or even specific snippets in case of any errors or restorations. Popular version control software include Git and Subversion. Git is a popular version control system that is distributed in nature. On the other hand, Subversion is centralized.
4. Documentation:
Interacting with other teams on a project can be a difficult and tiresome process sometimes. Communicating with others should be as easy and efficient as possible. Most of the developers prefer dynamic platforms where they can embed code and images, collaborate live, and have cloud support. Some of the popular platforms for this are Notion, Github, etc.
How to start?
All data managed by back-end developers needs to be presented in HTML web pages. So, even if you are certain, that your goal is to be a back-end developer, it's a good idea to learn the basics of a front-end development first. Front-end developers need to know HTML to give pages structure and cascading style sheets to let you add colors and other styling elements to the pages, and JavaScript programming to make pages interactive.
You can start learning whatever programming language interests you. You might choose a language because it's preferred by companies you want to work for. Java is heavily used at Google and Amazon. You might also pick a language because it has a tool or framework that you like. Python has a lot of great data analysis libraries, so if you are interested in web development and data analysis, Python is a great choice. There are lots of similarities between different programming languages. Once you have learned one language, you'll be able to switch to any other language easily. For people who are coding for the first time, it might be a bit difficult for them, as they will have to get acquainted with basic programming theory.
It is highly recommended that developers, at any stage, should interact and engage with the huge community out there. There are multiple platforms to do so. Reddit has various popular subreddits where developers share experiences and tips every day. One should also communicate with fellow back-end developers on other social networking platforms like Twitter, Instagram, etc. There are certain websites like www.codeproject.com, which host numerous developers who share their experiences and codes regularly. Apart from this, developers can also join newsletters on platforms like Substack, Medium, etc. or Telegram/ Slack channels. Building a personal brand is very important. A developer must maintain a good portfolio, whether as a personal website or hosted on platforms like Github. It is also favorable to regularly write blog posts regarding your experiences, new tricks, thought process, etc.
Additional Learning Resources
Algorithmic toolbox, Coursera: This course covers basic programming techniques and theory that will help you to build efficient programs and apps. However, these skills are not directly used in the domain of back-end development, the tricks and theory are often used to assist the developers who make programs that undergo difficult tasks. Server-side development with NodeJS, Express, and MongoDB,
Coursera: Focused on NodeJS, this course gives a complete package of back-end supported by MongoDB. It will help you launch your first project as a back-end developer. You can gel more efficient or move into other platforms as well. Introduction to back-end, Udacity: This course helps you learn the basics of back-end development, including taking input, managing data, etc. Starling right from the basics, this course will be a booster for people who know just the basics of coding and theory. W3School: It is one of the most popular websites used by beginners 10 learn HTML. With interactive codes and precisely curated tutorial series, W3School remains one of the top choices for beginners. MySQL, Learning with A basic yet complete package of MySQL for beginners. A very enthusiastic instructor that helps you get started with SQL, covering basic commands, data types, and environment. The short notes provided in this tutorial are very handy during emergencies and interviews.
Top channels to get regular updates on back-end development
1. MySQL community - Join us on Slack!
2. Codenewbie Slack Community
3. Feds on Slack community
4. DevChat - The friendly Slack community for developers
Top books
1. Beginning Node.js: This book by Basarat Ali Syed covers all the Node. JS concepts from setting up the environment to creating frameworks, connecting data, etc.
2. PHP & MySQL: The MissingManua1 Book. This book majorly focusses on PHP and its connectivity with MySQL.




0 Comments