In the past I've worked with a number of people who are solid programmers but do not have a traditional computer science background. With no exposure to data structures and algorithms, sub-optimal decisions can be made.
To help with this, I've taken to having 1-on-1 sessions to review the fundamentals of data structures and algorithms. After doing this a few times I put together some slides to help guide the sessions, which can be seen here:
These are not intended for self-study - and there isn't enough depth to them to work without someone experienced to work through them. They are intended to guide a session with an experienced computer scientist and someone with programming experience without a computer science background.
- Big O
- Linear Search
- Binary Search
- Selection Sort
- Insertion Sort
- Bubble Sort
- Merge Sort
- Quick Sort
- Counting Sort
- Binary Search Trees
- Hash Tables
None of these topics are dealt with in enough depth to make someone an expert, but it's intended to give an overview of relevant topics so that more detail can be explored in the learner's own time.
I chose these topics as I feel they give a good overview of the fundamentals. I'd be interested to hear of others' experiences teaching this material and anything important you think I've missed or incorrectly explained.
Get the latest posts delivered right to your inbox.