I'm a second-year BSIT student with basic knowledge of HTML, CSS, Tailwind, and JavaScript. I've realized that I'm more interested in backend development than UI work, so I'd like to build a strong backend foundation first and return to frontend later.
My current roadmap is:
1. Programming fundamentals: problem-solving, data, control flow, functions, state, and errors
2. JavaScript in depth: closures, asynchronous programming, the event loop, promises, and async/await
3. HTTP fundamentals: methods, headers, status codes, CORS, and cookies
4. Node.js's built-in HTTP module, including building a server without Express
5. REST APIs with Express: routing, controllers, validation, error handling, and middleware
6. PostgreSQL and SQL: queries, joins, indexes, and transactions without relying on an ORM at first
7. Authentication and security: password hashing, sessions, JWTs, SQL injection, XSS, CSRF, and rate limiting
8. Testing: unit, integration, and API tests
9. Networking: DNS, TCP, TLS, HTTP internals, and WebSockets
10. Concurrency: the event loop, non-blocking I/O, and race conditions
11. Queues and background workers
12. WebSockets and real-time communication
13. Caching with Redis
14. Deployment: Docker, CI/CD, Linux basics, and VPS hosting
I also plan to study data structures, algorithms, and relevant math alongside the roadmap. Is this a sensible order? Should anything be rearranged or added, especially for someone interested in backend development and developer tooling? I'd also appreciate advice on staying consistent when the material becomes slow or tedious. I'm planning to build projects throughout the process, but I'm unsure whether avoiding frontend work for now is a disadvantage.
3 Answers
The best way to stay consistent is to choose a project you genuinely want to use rather than studying every subject in isolation. A command-line tool, documentation generator, task runner, or small service could give you a reason to learn APIs, databases, authentication, testing, and deployment. Keep the first version small, release imperfect iterations, and let each new feature introduce the next topic. It’s completely fine to postpone serious frontend work while you explore backend development; just keep enough frontend knowledge to interact with and demonstrate your services.
The roadmap covers most of the important backend topics, but don’t treat it as a checklist you have to finish before building anything. Start with a small project immediately and introduce the concepts as the project needs them. For example, begin with a simple HTTP API, then add PostgreSQL, authentication, validation, tests, and deployment one step at a time. Learning HTTP makes more sense when you use it in an API, and SQL sticks better when you have real data to work with.
You don’t need to focus heavily on frontend right now. Basic frontend knowledge is useful for testing and demonstrating your APIs, but backend developers don’t need to become UI specialists. A little HTML, JavaScript, and perhaps a simple client or API tool is enough at this stage.
The order is generally reasonable, although some of the later subjects can wait. Get comfortable with JavaScript, HTTP, Node, Express, SQL, authentication, testing, and basic deployment first. Networking internals, queues, Redis, advanced concurrency, and WebSockets are valuable, but they’re easier to understand once you’ve built and maintained a few ordinary APIs.
For developer tooling, add command-line skills, Git, Linux shell usage, file systems, processes, streams, and package management. Depending on the tools you want to create, learning another language such as Go or Python later could also be worthwhile. DSA is useful, but prioritize practical programming and shipping projects over spending months on algorithm exercises alone.

I’d also move deployment and testing earlier instead of saving them for the end. Even a small project should be tested and deployed, because that exposes configuration, logging, environment variables, and Linux issues much sooner.