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.

Write your answer…

5 answers

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)

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

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

Reply to this…

  • 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.

Reply to this…

Are you meaning "goals" instead "skills"?

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

Reply to this…

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

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.

Reply to this…

The Author Card

Bhojendra Rauniyar's photo

Bhojendra Rauniyar

Software Engineer

Appreciations

130

Location

Kathmandu, Nepal

Joined

Sep 6, 2016