What concepts in Computer Science do you think have made you a better programmer?
My degree was in Mechanical Engineering so having ended up as a programmer, I'm a bit lacking in the basics. There are a few standard CS concepts which I've learnt recently that have given me a much deeper understanding of what I'm doing, specifically:
Language Features
- Pointers & Recursion (Thanks Joel!)
Data Structures
- Linked Lists
- Hashtables
Algorithms
- Bubble Sorts
Obviously, the list is a little short at the moment so I was hoping for suggestions as to:
- What concepts I should understand,
- Any good resources for properly understanding them (as Wikipedia can be a bit dense and academic sometimes).