Learn the ins and outs of C#.
- Read ‘C# in depth’ by Jon Skeet
Learn complexity theory.
- Understand complexity theory
- Understand P v NP, halting problem, etc
- Implement various algorithms in at least two lanuages
Understand the popular data structures.
- Implement popular data structures in at least two languages
Solve word problems from:
- Code jam
- Top coder
Make sure to spend time on myself:
- Read novels
- Go for walks and work out
Word-problems and tiny problems are not enough. Improve project-level skills by:
- Creating medium to large pieces of open-source software
- Contributing to an open-source project
Move out of my comfort zone and work on unfamiliar languages and technologies. Focus on breadth as opposed to depth. Goals-
- Code in Haskell, Forth, Pike, Ruby, Objective C
Ideas in software
- The Pragmatic Programmer
- Programming Pearls