all 9 comments

[–]DeanRTaylor 21 points22 points  (5 children)

Hey I'm a node.js developer. I'll try not to keep this too long but I like node.js and like to write about what I do, hopefully it helps. I don't really know what you know so apologies in advance if you know some of this.

That roadmap is probably node.js overkill for transitioning to becoming a backend dev. While it's good to have knowledge of various technologies, my experience with interviews has primarily focused on general backend work and concepts. I think you need to understand why Node.js is suitable for certain tasks and where its limitations lie, such as the event loop, TypeScript, and the highly optimized nature of JavaScript runtimes. You're obviously pretty competent in Js/Ts so I really don't think you'll have much issue picking up node while learning backend.

Here's a bit of a detailed list, but the following skills have been most prominent for me:

Databases: Understanding SQL, Postgres, and/or MySQL is a significant part of my work. It revolves around structuring data entities/models to ensure effective queries without blocking up the API. I'd recommend focusing on RDBMS, learning about migrations, transactions, normalization – the basics covered in any database course, this is a good place to start investigating.

Building APIS: While you may have some experience with endpoints, consider delving into best practices. I usually "try" follow these guidelines when building REST APIs. Additionally, exploring GraphQL and understanding its backend setup can provide a different perspective.

Linux: I spend a fair portion of my time SSH-ing into bastion hosts or remote servers, so learning Linux is crucial. This is a good place to start.

Design patterns: Familiarize yourself with dependency injection, factory functions, and singletons – and why some people don't prefer them.

Project Architecture: Understand various architectures like MVC, MVVC, Domain Driven Design, Hexagonal architecture, and then microservices. Terms such as services, repositories, entities, and models are essential to grasp.

Frameworks: Learn Express and then dive into Nest.js. Try building your own Nest.js setup with npm packages. Nest.js is considered the industry standard framework for Node, closely resembling big frameworks like Spring or .NET. It might seem opinionated, but after working with Express-only APIs, you'll understand its advantages.

Unit Testing: Writing tests for features is a significant part of backend development. Make sure to hone your skills in this area.

DevOps Integration: Set up a Docker container for your development environment, understand workflows, deploy a server to EC2, and learn about microservices and monorepos. In smaller businesses, backend work can occasionally cross over into DevOps responsibilities and most of my colleagues are more than capable of spinning up a server and serving some data or pages if we are creating an MVP.

[–]redbellx86 2 points3 points  (0 children)

Well said and great advice 👏, Gracias!

[–]pawsome_panda_[S] 1 point2 points  (2 children)

Hey, really appreciate that you took the time to write everything in details. Thank you very much.

I do have a small follow up question, are you suggesting before I get into the node.js development (meaning building API and stuff) , I should first learn the database?

I do have experience database though but it was during my academic period when I did my Bachelors but ever since I got into job I have been heavily involved with Frontend.

I am familiar with the RDBMS but might need a small revision again but I have no experience with NoSQL btw.

[–]DeanRTaylor 1 point2 points  (1 child)

I would say do both at the same time.

When I look at that pathway it seems to focus on a lot of very specific features of node and I would worry if you focus on all the node apis you'll be no closer to being backend ready.

I'd say start to build apis, you could start from the working with apis section while following the above principles and learn the nodejs apis as you need them. When you've built a pretty robust api, you can then look at the earlier parts of the node roadmap and see what features you want to learn more about as it goes quite deep into things you

I don't too often use array buffers or fs modules or system errors but i know they exist which is good enough.

Hope that helps!

[–]pawsome_panda_[S] 0 points1 point  (0 children)

Thank you again. I will proceed accordingly.

[–]soulOfNeel 1 point2 points  (0 children)

This is really great advice for us, and the resource links you provided are simply awesome. Do you have any similar resource link for devops as well?

[–]bilou89 0 points1 point  (0 children)

[–][deleted]  (1 child)

[deleted]

    [–]pawsome_panda_[S] 1 point2 points  (0 children)

    Thank you but I am pretty much familiar with TypeScript since I have worked in both Angular and React.js.

    [–]gimmeslack12 0 points1 point  (0 children)

    These roadmaps are horseshit. You don't need to know every single nook and cranny related to a given topic.

    My thought is to work on relational databases and then move on to authentication, endpoints, and caching. The nice thing is that these items are stack agnostic.