Getting Started with Backend Development

Mohammed Ajmal Siddiqui
codeburst
Published in
6 min readJan 15, 2018

--

Update (19 Sep, 2020)

I finally have my own website! I’ve moved all my articles over to ajmalsiddiqui.me/blog and in the process of doing so, I realised that I have grown tremendously since I wrote these articles. Hence I’ll be updating the articles to reflect what I’ve learned, fix any mistakes, and improve quality as much as I can. But all these updates will primarily be on my website, so please read this article there. Ciao!

This article does not dive into code. It is an introduction to what backend is, the prerequisite knowledge you’ll need as a backend developer and some of the languages and frameworks you can learn. If you’re looking for coding tutorials, please consider other resources.

What is backend development?

An app or a web service can have two broad parts: the frontend and the backend. The roles of these parts can be guessed from their names. The frontend is the part that you can “see”. It is the part that lets you interact with the app or service. The colours, animations, layout, and all the other cool stuff that adds to your experience of using the app or website is the frontend. The frontend is generally called the User Interface (UI).

The backend is the part that you can’t “see”. It is the internal working of the application or website. This includes stuff like the server, the database, etc.

Consider this blog. You’re reading an article on the blog. The fonts, colours, designs, etc constitute the frontend of this page. However, the webpage and the content of this article were served by a server and fetched from a database. This is the backend part of the application.

What does a Backend Developer Do?

Some of the things taken care of by backend developers include:

  • Writing server-side code
  • Writing code to interact with a database
  • Ensuring that the server-side code is secure and free of vulnerabilities
  • Ensuring that the server-side code is optimised enough to handle large volumes of traffic
  • Deploying the code online so that other people can use your service

Backend developers may work with other kinds of developers on a single project since the skill set required to complete an app or a web service is not limited to backend development.

Prerequisite Knowledge

Before you delve into frameworks, languages and technologies used by backend developers, there are certain things you should be comfortable with.

First and foremost, understand what a server is and what the different kinds of servers are. Thanks to movies and popular culture, people are intimidated by the idea of a server. But it isn’t that complex at all. You’ll know once you start learning.

Second, learn about what a database is and the different kinds of databases out there.

Third, gain a fundamental understanding of what HTTP is. The communication between the server and the client (i.e. the “user” of the application — your web browser for example) happens by means of certain rules (a “protocol”) and you should have an understanding of how this protocol works.

Fourth, you should know what an Application Programming Interface (API) is. Further, understand the difference between REST APIs and SOAP APIs.

Where should you learn about all these? I recommend you start with a Google search. Read a few articles or watch videos relating to each topic. Different people have different ways of learning that work for them. Figure out what works for you.

It is important to point out that many believe you shouldn’t jump straight into backend development without having some experience with web frontend development first. This isn’t a hard and fast rule, but I personally recommend it too. Learn some HTML, CSS and JavaScript before you dive headfirst into backend. If you’re looking to start web frontend, this article might be a good place to start.

At this point, you should have a fair understanding of what you’ll be doing as a backend developer. Once your fundamentals are clear, you’re ready to start writing actual code.

Technologies and Languages

Here’s the bit you’ve been waiting for — choosing a language/framework to learn for backend development.

The classic set of backend technologies (the “technology stack”) is called LAMP. It is an acronym that stands for Linux (operating system), Apache (server), MySQL (database), PHP (server-side language).

However, modern backend technologies are quickly replacing LAMP and other more traditional ones due to their power and simplicity, and due to their incredible community support. Lets talk about a few of these backend “frameworks” written in two incredibly popular languages: Python and JavaScript.

Flask is a popular backend framework written in Python. However, the most well known and popular backend framework in Python is Django. I’ve seen many start with Flask and move over to Django once they gain some experience.

The language that I personally use (and recommend) for backend is JavaScript. The corresponding framework for the same is perhaps a buzzword in the web development community — NodeJS. NodeJS sparked a revolution by bringing a client-side language, JavaScript, to the server.

NodeJS is a JavaScript server-side framework built on the Chrome V8 engine and written in C++. It is extremely powerful and has seen a huge rise in popularity in recent times.

One reason why I recommend NodeJS over other frameworks is that since JavaScript is also used on the client-side, you have a single language over the entire application (assuming you’re building a web app). This basically gives you more bang for your buck — you have one language less to learn. This is especially true if you’re moving into backend after gaining experience with web frontend.

Next step: learn about a database. If you’re going for NodeJS, a natural choice is MongoDB — one of the most popular NoSQL databases in the world.

Once you’ve decided upon which framework and database you want to use, there are a few more things you should be comfortable with as a developer in general and a backend developer in particular:

  • Git and GitHub for version control
  • Using database-as-a-service platforms (e.g. Mlab for MongoDB)
  • Using server-as-a-service platforms(e.g. Heroku, Digital Ocean, Amazon Web Services)

Getting Your Hands Dirty

Now that you have a rough idea of what you want to do, start learning. There are many popular blogs, vlogs, tutorial series, video series, courses, etc. that you can go for. Again, different people have different ways to learn, so find what works best for you.

One thing which applies to everyone is this: learn by doing. Do mini-projects. Make stuff. Unless you actually write code, you will not be able to grab the essence of what you’re learning. Most people make the mistake of learning a lot of theory but not doing much practical work.

Another great tip is to look at code written by other people. It exposes you to other techniques and solutions to the same problems that you are solving (or will have to solve) as a developer. GitHub is a great place to get started.

Next Steps

So you’ve learned the basics of backend development and you’ve worked on a couple of projects. What now? Your options are limitless.

Perhaps the most natural course of action is to learn frontend as well and become a full-stack developer — a legendary developer who can make an entire app/website on his own since they are comfortable with both frontend and backend. Full-stack development is a highly valued skill in todays world. Check this article out to get an idea of the roadmap to becoming a full stack developer.

Once you’ve done this, consider learning frameworks like Ionic that let you build cross-platform apps using HTML, CSS and JavaScript. In simple words, the code you write will translate into an app for your phone. Incredible, isn’t it?

My framework of choice for building full stack cross platform applications in JavaScript is MeteorJS. This is definitely something you should consider working with if you intend to pursue web and cross-platform app development further.

Concluding Words

That concludes this article. I hope you have gained some insight into what it means to be a backend developer and how to go about becoming one. All the best.

You can find me on GitHub and talk to me on Twitter!

Happy Coding!

--

--

Full-stack JavaScript developer and coding enthusiast. I love learning new technologies and sharing my knowledge. Find me on ajmalsiddiqui.me