
Ask HN: How to self learn algorithms and data structures? - todd_wanna_code
Inspired by this post here[0].<p>I am a self taught developer (actually, not a developer yet, just  trying my best to be one). I have attempted to get started with algorithms and data structures before but failed miserably then. My first attempt was with CLRS around a year back. The book turned out to be a bit too technical. I reasoned it maybe a little early for me to look into algorithms, after all I was only months into learning programming. Now I am geared up for a second try, and I am on the lookout for a new approach.<p>[0]: https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16562173
======
brudgers
Failing miserably is only miserably if you didn't learn anything. It's hard,
but you can take as many tries as you want.

Good luck.

------
locococo
I’d give taking a class in a community college a try, most should offer a
course similar to the one in the link.

[http://www.nvcc.edu/academic/coursecont/summaries/CSC202.htm](http://www.nvcc.edu/academic/coursecont/summaries/CSC202.htm)

------
samrohn778
[https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP...](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
This will get you started.

------
protonimitate
Been looking to self teach DS&A as well. There's a loooot to it.

Here's what I've gathered from browsing around:

\- MOOC - MIT OCW Introduction to algorithms (python)

\- MOOC - Princeton Algorithms I and II (on coursera) (java)

\- Book - CLRS - as you said, technical, but seems to be the standard text. I
am not currently using this one but planning on going back once I get a
fundamental understanding.

\- Book - Algorithms - by Robert Sedgewick and Kevin Wayne -- the text that
goes with the Princeton MOOC course. Also technical, doesn't seem as 'hard' as
CLRS. YMMV.

\- Book - Algorithm Design Manual -- by Steven Skiena - I am currently using
this book in conjunction with some other resources. In depth, technical, good
exercises, but the writing and layout are pretty easy to get through (coming
from someone with 0 college math experience). It is slow, as I have to keep
breaking away to refresh on topics I'm not familiar with, but is keeping me
interested. I believe Prof. Skiena also has lecture series available for free.

\- Book - Grokking Algorithms - by Aditya Y. Bhargava -- Very topical overview
of DS&A. Simple examples, plain English. I read this first as a 'base layer'
before going to the Skiena book. It will give you a nice brief intro about
DS&A, so at the very least you'll be familiar with the terms people use. Quick
read.

\- Book - Cracking the Code Interview -- might be an obvious suggestion. IME
it won't provide a good understanding of DS&A, but has good practice problems
and re-explains concepts in a way that makes sense (especially for
interviewing).

Personally I don't learn through youtube/videos/lectures so I am doing this:
\- Read Grokking Algorithms (do all exercises) \- Started the Algorithm Design
Manual (Skiena) at the same time as starting the MIT OCW. Reading the chapters
that relate to the course topics by week. Doing all the homeworks assigned,
etc. \- Reading CTCI chapters as re-fresher a few days to a week after
covering similar sections in the MIT OCW/Skiena text. Doing 3-5 chapter
exercises.

What I've found is that DS&A is practice, practice, practice. The concepts
themselves aren't too terrible to grasp. (For me) it is difficult to figure
out when and how to apply those concepts to problems.

I would highly suggest starting with one of the MOOCs and following along with
all the assigned work. It can be overwhelming but it seems like the most well-
rounded approach. Reading just the texts works for some people but I find it
easy to just read straight through and not check that I've absorbed anything.

