February 21, 2012

...Learn TDD with Codemanship

SC2012 - Resources on Data Structures & Algorithms

A few people have asked about books and resources about data structures and algorithms aimed at programmers.

There's a wealth of material out there on the subject, some of it better than others. Some will offer a good theoretical overview, others are aimed at people like me who ultimately need to see a bit of code to get my head around it.

When I'm studying this sort of thing, it's sometimes good to hook up with other people who can learn it with me. If you're thinking of running a session at Software Craftsmanship 2012, you might want to pair up with somebody else who's going to make it a bit more social and a bit less work for one person. (And remember, you only need to learn one algorithm to run a session.)

Here are a few you might find useful:

Books on Data Structures & Algorithms

Data Structures & Algorithms in Java

Data Structures & Algorithms in C++

Algorithms In A Nutshell

Data Structures & Algorithms using C#

Data Structures & Algorithms using Python

Data Structures & Algorithms Made Easy

Notes On Data Structures & Algorithms In Ruby

(TIP: If you know Java or C++, you're spoiled for choice in this area. Many books available.)

Web Resources

Data Structures & Algorithms Java Applets

data Structures & Algorithms in JavaScript (code on GitHub)

Animations for Data Structures & Algorithms


User risersheriff has posted some good videos on algorithms

Xoax.net's channel features lots of explanations of algorithms

MIT's Open Courseware has a series on algorithms

The Big Bang Theory - Friendship Algorithm (free drinks to anyone who runs a session on this one!)

I know that "data structures and algorithms" has a slightly daunting sound to it, but don't forget that you are creating data structures and algorithms all the time. The "people who bought X also bought Y" algorithm may seem daunting to someone who's an expert in DSP algorithms. I often find that once I get stuck into learning an algorithm, when it's explained clearly and I can see an example in code, it's just, well, more code.

Posted 3 weeks, 6 days ago on February 21, 2012