This includes gaining a great understanding of compilers, the implementation of computer languages, modern processor architecture and type theory.