What is BackEnd Development and How to be one
What is Backend Development
Backend Development is the term for behind-the-scenes activities that happens when you do anything on a website or web application. It is mostly referred to the server-side of an application and everything that communicates between the database and the frontend.
You can also say that it’s the server side of development that focuses primarily on how the site works.
Who is a Backend Developer
A Backend Developer is a skilled software developer responsible for or skilled enough to understand, plan, develop and test the server-side/business logic of an application. In conjunction with other team members, he is responsible for deciding the best and suitable tools and technologies for the project at hand.
Backend Development Tools and Technologies
Servers:
A computer that listens for incoming requests from the front end. Example of web servers are Apache Nginx, IIS servers, Tomcat.
Types of Servers: Static, Dynamic
A static web server or stack consists of a computer (hardware) with an HTTP server (software). We call it “static” because the server sends its hosted files as it is to your browser”. It response/server static content.
A dynamic web server consists of a static web server plus extra software, most commonly an application server and a database. We call it “dynamic” because the application server updates the hosted files before sending them to your browser visa the HTTP server.
In a simple term, Dynamic Server responses/serves dynamic contents.
Communication protocol (HTTP)
It comprises of the formal description of rules and formats of a digital messages.
Others
Load balancing
Message queues
Databases
Databases are frequently used on the Backend of an application. These provides data persistence. These databases provide an interface to save data in a persistent way to memory.
Types of database
MYSQL
MongoDB
Things to learn in databases as a Backend developer
Schemas
Normalization
Indexes
Stored procedure and triggers
Wide knowledge of SQL, DDL & DML
Views
Strong database optimization skills
Operating Systems
When it comes to operating systems, I think every software developer should have a strong knowledge of their operating system.
An operating system is a collection of software that manages computer hardware and provides services for programmes.
Types of Operating Systems
Linux
Windows
Mac OS
Every developer should have a basic knowledge of these OS concepts.
Things to learn in Operating Systems
Memory management
Cloud computing
Processes & process management
Inter process communication
Threads and concurrency
Input and output management
Scheduling
Distributed file system
Virtualization
Take a look at the 10 operating systems concept software developers need to remember by James Le.
Software Stack
There are great list of server-side programming languages and frameworks(Spring, Express) to choose from in building the business/server logic of any application.
The list below shows a recommended list of common topics a Backend developer should master in any programming language of choice.
Session management
Authentication & Authorization
Caching Mechanisms
APIs & Web Services
Software architectures (MVC)
Software design patterns
Algorithms and data structures
Structured logging
Debugging, profiling and tracing
Deployment
Software testing
Frameworks and Package Managers
Things to consider as a Backend Developer
Scalability
Security
Robustness
Readability
Performance Oriented
Maintainability
Roles of a Backend Developer
Understands the goals of the software and comes up with effective solutions.
Compile and analyze data, processes and codes to troubleshoot problems and identify areas of improvement.
Collaborating with the frontend developers and other teams to establish objectives and design models (architecture).
Manipulating data and ensure authorized access to it at all times.
Developing, managing and working with external API resources across all devices securely.
Organizing the logic of the system using and implementing proper algorithms.
P.S. This is a blog just to keep me motivated and to track my progress in public. A big shout out to Solomon Eseme for the amazing content. Do checkout his channel for more Backend content.