Must-Have Skills for Backend Developers

I will try to share where is the best to learn the particular tech.

1. Programming Language

  • Scripting: Python or Node.js.
  • Functional Language: Choose the language that on-demand on your area. You can start in Clojure or Erlang.
  • Other Language: Go - Go is an open-source programming language that makes it easy to build simple, reliable, and efficient software.

2. Practice what you learned

Exercise and make some command line or CRUD application with your picked language. Task: Simple website with login and CRUD pages with users and post table.

3. Learn Package Manager

Learn how to use a package manager for the language that you picked. e.g PHP has Composer, Node.js has NPM and Yarn, Python has Pip, Ruby has Gems, etc.

4. Coding Standard and Best Practices

Each of the languages has its standards and best practices of doing things, study them for your picked language. For example, PHP has PHP-FIG and PSRs, with Node.js there are many different driven by the community. For Javascript, there is Airbnb Javascript style guide.

5. Make and Distribute Some Package/Library.

One step at a time, back up your package or library to your private repository. If you are confident enough to share your codes to the public, make documentation on how to use it and push it to Github.

6. Learn about Testing

There are several different testing types, but for now, learn about how to write Unit and Integration test in the language you picked. Understand different testing terminologies such as mocks, stubs, etc.

  • PHP: PHPUnit - Learn some PHP unit testing here in Laracast.
  • Node.js: Mocha - Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Jest is a delightful JavaScript Testing Framework with a focus on simplicity.
  • All: Make sure to read about the best practices for security. Read the OWASP guidelines and understand different security issues and how to avoid them in the language of your choice.

7. Write Test for the Practical Steps Above

Go ahead and write unit tests for the practical task that you implemented in the steps before.

8. Practical Time

Create a simple application using everything that you have learned this far. It should have registration, login, and CRUD. Create a blog for example, where anyone can register and get a public profile page to create, update, and delete posts, and the public page will show the posts created by them.

9. Learn a Framework

Depending upon the project and the language you picked, you might or might not need a framework. There are several different options.

10. Learn Relational Databases

Choose MySQL first, then switch to MariaDB (Why MariaDB?) or PostgreSQL.

There are several options here. However, if you learn one, others should be fairly easy to pickup. Pick MySQL for now then learn how they are different and the usecases of MySQL, PostgreSQL, etc.

11. Learn a NoSQL Database

First understand what they are, how they are different from the relational database and why they are needed. There are several different options. Have a look at different options and see how they differ. If you have to pick one, pick MongoDB.

My suggestion is to learn MongoDB first, then make sure to look how it compares with other NoSQL.

12. Caching

Learn how to implement app-level caching using Redis or Memcached. Choose Redis first - I suggest you always try to implement Redis in your caching function.

ex: Cache slow datebase queries.

13. Creating RESTful API

Understand REST and learn how to make RESTful APIs and make sure to read the part about REST from the original paper of Roy Fielding.

14. Authentication/Authorization Methodologies

Learn about the differences and how to implement them.

15. Message Brokers

Learn about the message brokers, understand the “Why” and pick one. There are multiple options but I would go for RabbitMQ or Kafka. Learn how to use RabbitMQ for now, if you want to pick one.

16. Message Brokers

As the application grows, simple queries on your database aren’t going to cut it out and you will have to resort to a search engine. There are multiple options, each having it’s own differences.

17. Learn How to Use Docker

Docker Get Started. Docker is a must have skill that will help you and your development.

18. Knowledge of Web Servers

This two is a must learn web server technologies.

19. Learn how to use Web Sockets

Learn here at Get Started.

20. Learn GraphQL

While it is not required, feel free to have a look at it and see what it is all about and why they are calling it the new REST.

Look into Graph Database: Again not requred but you should have a little understanding of what they have to offer.

Bookmark this page so you can easily pick it up and read it again. :)