What should we try to develop while learning as a backend developer?

What do we need to learn for backend development, not language and not skills, but just concepts?

For example:

  1. authentication and authorization
  2. social login

Please don't give answer like database, rest api. These are just skills.

Comments (8)

Add a comment
Shreyansh Pandey's photo

What you mention as concepts and skills are - in your example - equivalent.

Authentication and Authorization are concepts, but so are databases and REST APIs. Designing a secure role-based auth system is a skill. Similarly, designing a REST API which confers with the JSON:API standard is a skill. You get the point.

With that said, I would highly recommend you to take a project and then apply these concepts (on the top of my head):

  • Role-based or tier-based authentication and authorization;
  • Data structures based on volatility vs. immutability;
  • Server-Side and client-side caching;
  • Message Queues and their more-applied form: delayed response mechanisms;
  • Payment systems (this is a tough one)
Anthony Young's photo

I would learn how to develop an API, you can't say its just a skill, you need to learn all the bits around it, like making sure an endpoint is private, making sure it's secure, making sure it doesn't bottleneck your app and crash your server etc. With this you can also add authentication, be it via social etc. File uploading on an API? CRUD? etc

Igor Rendulic's photo
  • Is interoperability needed or vendor lock-in OK? (PaaS, Vendor Pub/Sub vs Kafka, ...)
  • Do microservices come in handy and what scalability will the platform have
  • NoSQL vs SQL (scalability of the data)

Hard to tell. Decisions go case by case.

Dwight Badua's photo

With "concepts", I think you mean "features". Features highly depend on what software you are building. For learning how to build these features, you should try to develop some sort of a pet project - say a Hashnode website clone. List down all the features you see and develop one for yourself.

Show all replies
Shreyansh Pandey's photo

node, coffee and everything in between

Dwight Badua is right here. If you clone a service (such as Hashnode), you learn the concepts which are dependent on features; when you add "you" to a concept, you get a skill. For example, databases are a concept; designing a secure and reliable data structure along with the normalized forms is a skill.

Aldinei Bastos (Pinei)'s photo

Are you meaning "goals" instead "skills"?

Bhojendra Rauniyar's photo

I meant to try that all backenders do in the job.