Well, in my compilers course, we used the Dragon Book and had programming assignments in Lex and Yacc/Bison (which the latest edition does cover). TBH, I found those assignments quite fun to solve. Of course, that isn't writing a compiler from absolutely nothing, but it did make us more confident of the stuff we were learning.