I enjoy solving algorithmic problems and want to understand the subject more deeply. I do not have a computer science degree, so I'm wondering whether it's realistic to become genuinely skilled in algorithms through self-study. Would practicing problems on coding platforms be enough, or should I spend more time learning algorithm theory and data structures first?
3 Answers
Use both theory and practice. Theory explains why an approach works, its time and space complexity, and when it should be used; exercises help you recognize and implement those ideas. A good progression would be fundamentals, recursion, sorting and searching, common data structures, graphs, dynamic programming, and complexity analysis. Don’t rush through hundreds of problems—after each one, review the solution and ask what general technique it demonstrates.
Programming and algorithms overlap, but they’re different skills. First become comfortable writing basic programs with variables, conditions, loops, functions, arrays, and eventually pointers or references. Then study data structures and algorithms while implementing them yourself. C or Rust can be useful if you want to understand memory and low-level behavior, although the most important thing is choosing a language you can work with consistently.
A degree isn’t a prerequisite. Students usually learn algorithms before earning the degree, so you can follow a similar path independently. Work through a solid algorithms and data structures textbook or course chapter by chapter, and solve exercises as you go. The theory will make coding-platform problems feel less like pattern memorization and more like applying ideas you understand.

That makes sense. I’ll try combining a structured textbook with practice instead of relying only on problem-solving sites.