If you are a developer and seeking to become better - learn and constantly refresh your knowledge of basic data structures and algorithms.
A good motivational quote by Linus Torvalds (creator of Linux) why to learn basics:
I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
There is a great opportunity to take a free online class on this topic at Coursera. I’ve just finished these two: Algorithms part I and Algorithms part II. I can highly recommend these courses for all the developers and development managers.
Here is the minimal set of data structures and algorithms every developer and dev manager must know:
- Data Structures (linked lists, hash tables, arrays, trees, stacks, queues, graphs, heap)
- Big O notation, time and space complexity (very good cheatsheet for this: http://bigocheatsheet.com/)
- Algorithms
- Sorting (insertion, merge, quick, radix, heap)
- Searching (linear search, binary search, depth first search, breadth first search, string manipulation)
- Iteration (various tree traversals, list traversal)
I know, that most of developers and dev managers are in continuous self-improvement process: learning new things, reading articles and listening to presentations, etc. You are doing a great job!
But for those, who feels a bit rusty - start today and these courses I’ve mentioned are the best way to do it.
By the way, for those who want to exercise - check this great site with tons of coding challenges: http://www.hackerrank.com.
P.S.: What do you think? What would you add to this list?