Programmer Competency Matrix
This self-assessment matrix covers the disciplines of Computer Science, Software Engineering, Programming (as well as Experience and Knowledge) and is essential read for any aspiring polyglot:
The Level 3 qualifications range from demanding:
Understands the entire programming stack, hardware (CPU + Memory + Cache + Interrupts + microcode), binary code, assembly, static and dynamic linking, compilation, interpretation, JIT compilation, garbage collection, heap, stack, memory addressing...
...to the obsessive:
File has license header, summary, well commented, consistent white space usage. The file should look beautiful.
There are also some good book recommendations:
Structure and Interpretation of Computer Programs, Concepts Techniques, Models of Computer Programming, Art of Computer Programming, Database systems , by C. J Date, Thinking Forth, Little Schemer