Major subjects
Minutiae
Learn the ins and outs of C#.
- Read ‘C# in depth’ by Jon Skeet
Algorithms
Learn complexity theory.
- Understand complexity theory
- Understand P v NP, halting problem, etc
- Implement various algorithms in at least two lanuages
Data structures
Understand the popular data structures.
- Implement popular data structures in at least two languages
Problem Praxis
Solve word problems from:
- Code jam
- Top coder
- reddit.com/r/dailyprogrammer
Self
Make sure to spend time on myself:
- Read novels
- Go for walks and work out
Minor subjects
Project Praxis
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
Eclectics
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
Read:
- The Pragmatic Programmer
- Programming Pearls