My single degree was in Electronics and Physics, so although that covered a considerable amount of digital electronics and CPU design, I’ve pretty much picked up everything I know about software in my own time or on the job. Consequentially, there are aspects of computer science I feel I don’t know as well as I could. I’m thinking especially of areas which are less frequently used in practice, but often cited as fundamental and important, such as compiler design.

I stumbled on this ‘programmer competancy matrix’ the other week, and thought it would be a good first iteration of my own syllabus of areas I’d like learn more about. So I cut’n’paste it into a spreadsheet, and starting annotating it with how confident I feel in each different area, along with the next steps I’ll need to strengthen my knowledge in each area.

Startlingly but perhaps unsurprisingly, the tentative next step I arrived at in almost all areas I feel deficient was to finish working through SICP. Alright, alright, my path is clear.