Avid readers of my blog will recall that I enrolled in an online compilers course. Four assignments,countless quizzes/exams and many late nights later, I'm done! According to my calculations, I just barely made the pass mark, which I'd say is not as good as I'd hoped, better than it could've been and less than I'd expected. But gluing my 4 assignments (lexer, parser, semantic analyser and code generator) you end up with something that can compile some programs which run and give you the output you expect!
To be fair, the course description did warn that it would be tough, and not a great place to learn a new language (C++ for me). But apart from C++, I've gotten exposure to flex, bison, and MIPS. I recommend the course to anyone willing to devote the time into it.