I'm a third-year AI/ML student who has mostly learned independently alongside a demanding college schedule, so I can't realistically restart every subject from the beginning. I've covered arrays, hash maps and sets, linked lists, trees, graphs, heaps, Dijkstra's algorithm, and I'm currently learning tries. I'm comfortable with Python, Flask, HTML/CSS/Bootstrap, and basic DBMS and SQL concepts. I also recently built a task manager API with FastAPI, and I'm considering a FastAPI project using WebSockets and PostgreSQL to learn real-time backend development.
My main challenge is deciding how to use my limited study time. I don't want to restart DSA completely, but I also don't want weaknesses in my fundamentals to hurt me during interviews.
Should I keep learning new DSA topics while periodically revising older ones, or pause and review everything first? How can I schedule DSA revision around college? What's a good way to use AI for learning without becoming dependent on generated solutions? If I were preparing for internships over the next few months, how should I divide my time between DSA, core CS subjects, backend development, and ML/DL? I'd especially appreciate advice from students who have balanced college with self-study.
2 Answers
Since your stated focus is AI/ML, make sure you’re also building the math foundation behind it—especially linear algebra, probability, statistics, and eventually calculus. DSA is still useful for general technical interviews, but its priority depends on the internships you’re targeting. If you’re aiming for ML-heavy roles, math and core ML concepts may matter more than spending a large amount of time on web development.
You mentioned that you’re still at the beginner stage with ML, so strengthening Python and mathematics while learning basic algorithms is sensible. Projects are useful, but try not to let backend work crowd out the fundamentals that your target roles actually require.
You don’t need to stop and restart DSA from the beginning. Keep moving forward, but add regular review sessions. For example, spend 30–45 minutes a few times a week re-solving problems from older topics, especially the ones where you needed hints or made mistakes. That is usually more useful than rereading every concept.
Give DSA a fixed slot, such as 45 minutes three or four times a week. Consistency matters more than occasional marathon sessions. For internship preparation, I’d give DSA the largest share, backend development the next largest, and ML/DL whatever time remains. Your coursework can also count toward the ML portion.
The FastAPI, WebSockets, and PostgreSQL project sounds worthwhile because it can teach connection management, concurrency, state, and real-world backend design while giving you something concrete to discuss in interviews.
For AI, try problems yourself before asking for help. Ask for a hint or an explanation of the relevant idea rather than requesting a complete solution. If you do look at a solution, close it and reimplement the approach from memory later. If you can’t, you probably need another pass.
That clears up my concern about restarting DSA. I’ll keep learning new topics, review consistently, and use AI mainly for hints and explanations instead of complete solutions.

I’m currently still learning the basics of ML, including supervised, unsupervised, and reinforcement learning, and haven’t gone deeply into the algorithms or mathematics yet. I’m working on Python, DSA, and math fundamentals while building projects so I can move into deeper ML topics later.