Use a roadmap as a map, not a checklist you have to finish before making anything. Pick one programming language and get comfortable writing small programs, using a debugger, and explaining what your code does.
Then work through a structured algorithms course, including data structures and complexity. The Princeton Algorithms course is one option. For systems topics, pick one subject at a time rather than trying to study operating systems, networking, and databases all at once. Operating System Concepts and Computer Networking: A Top-Down Approach are books to consider when you get to those areas.
A routine could be a few study sessions on the course material, followed by exercises and a small program that uses the ideas. You can revisit older topics when you notice a gap. You do not need to memorize every detail forever.
9k+foldingrule_36:
Would you do interview practice alongside the algorithms course?