In this article, we will discuss extensively what Back-end Development is all about, back-end development tools and technologies, we will go further to talk about the things to consider as a Backend developer, we will move down to roles of a Backend Developer.
Outline
- What is Backend Development
- Who is a Backend Developer
- Backend Development tools and technologies
- Roles of a Backend developer
Prerequisites
- Basic knowledge of computers
- Basic knowledge of programming essentials
- Basic knowledge of software development
If you love videos, watch the live stream here
What is Backend Development
Backend Development is the term for the 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/browser.
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
By now you should guess right, who a Backend developer is, is based on what Backend development is all about.
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 clients (frontend). Example of web servers are Apache Nginx, IIS servers, Tomcat.
A list of few things a Backend developer should learn under servers.
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
- SQlite
- MongoDB
- PostgreDB
- etc
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
You can read more here..
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
- E.t.c
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 to choose from in building the business/server logic of any application.
Check out the top 5 Backend framework.
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
I will be releasing each of these topics in series in our official Youtube channel every Saturday, click to subscribe so you don’t miss it.
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.
Conclusion
Thanks for reading my Introduction to Backend Development. Everything I have listed above is from my personal experience.
If you love watching videos, here you go:
If you have been following this publication for a while now, you will notice that this publication is as a result of a Backend Developers Community using this medium to share, educate and train its members in all aspects of Backend Development.
Recently, our Backend Development Community launched a weekly Live Stream dedicated to discussions around Backend Development.
Subscribe to the official Youtube Channel
If you enjoy this post make sure you give 50 claps and Follow our publication to get more updates.
If you are interested in Backend development (or you’re an internet enthusiast) both (Mobile | Web | Desktop) subscribe to our Youtube channel, we will be posting a collection of helpful tutorials and guides like this one for artisans.