I'm a second-year BSIT student with basic HTML, CSS, Tailwind, and JavaScript skills, but frontend work isn't really what I enjoy. I'd like to focus on backend development first and return to frontend later after building a stronger foundation.
My planned roadmap is:
1. Programming fundamentals: problem-solving, data, control flow, functions, state, and error handling
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 too early
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 and algorithms, along with some math, throughout the process. Is this a reasonable order? What important topics should I add if I'm interested in backend development and developer tooling? Should I rearrange anything, and how can I stay consistent when the material becomes slow or tedious?
2 Answers
The roadmap covers most of the important areas, but don't treat it as a checklist where you finish one topic before touching the next. Build small projects as you go. After learning HTTP, make a simple API. After learning SQL, connect it to PostgreSQL. Add authentication, tests, caching, and deployment as the project grows. That will make the concepts stick much better than studying them in isolation.
I'd also introduce testing and basic deployment earlier instead of waiting until the end. Even a small project should have a few API tests, environment variables, logging, and a simple deployment. Those habits are much easier to build gradually.
You don't need to force yourself to focus on frontend if backend is what interests you. You should still understand enough HTML, JavaScript, and browser behavior to test APIs and understand how clients interact with your services, but you don't need to become a UI specialist first.
Your biggest missing piece is probably deciding what to build. Pick something small that you would genuinely use, such as a task API, file-processing service, command-line tool, or developer utility. Start with a basic version and improve it over time. For developer tooling, also pay attention to command-line interfaces, filesystem operations, processes, configuration files, logging, documentation, and publishing or packaging your tools.
My initial goal is mainly to gain real backend experience, so I'll start with a small project and expand it rather than trying to design one huge system from the beginning.

That makes sense. I was worried that building projects before finishing the whole roadmap would leave gaps, but using each project to apply the next topic sounds more practical.