Developer, never formally studied CS past high school -- what don't I know?
By this time next year I'd like to be able to say I have a solid grasp of the material one would customarily learn by going to grad school for computer science.<p>I work in OO Python professionally.<p>I know some basic automata theory and can sketch proofs of simple results like the pumping lemma.<p>I can understand and/or construct a simple grammar.<p>I know what a linked list, a binary tree, and a hashtable are, I know their big-O characteristics, and I'd be able to implement them in C if asked.<p>I've read SICP, and can easily manipulate recursion, closures, etc. I know how to adjust a function to ensure it takes advantage of tail-call optimization. I know how to "fake" OO using closures.<p>I can comfortably implement simple functions in Scheme or Haskell.<p>I've never played with macros or continuations. I know what a monad is, and have had cause to use them a couple times, but I'm not sure I know what the big deal is yet.<p>What don't I know?