I realise the Lisp/Haskell question has been asked before, so let me clarify. I'm about to enter my second year of uni (studying ECE) and I'm trying to decide what to focus my time on. I'm very interested in learning about writing compilers, but I also want to grow my skill in programming. Currently, the only languages I know are C-derivatives, and although I'm falling in love with Go, I know that it probably won't give me fundamentally new ways to think about software.<p>So, to the issue at hand. I've been struggling to start The Dragon Book, as I find it incredibly dense and difficult to understand (though, to confess, I haven't given it the dedication it deserves). Also, after reading some of PG's essays and threads on StackOverflow/Reddit/Hacker News, I've been convinced that Lisp is an important language to learn, esp. because of functional programming (which I don't know much about). Then I recently ran into Haskell, which seems to offer some of the same.<p>My question is this, because I'm in school, I have plenty of free time, but it's still a limited resource. Between the 3 things I've listed (Lisp, Haskell, Compilers), which do you consider to be most enriching? (To the experienced) if you were back in your hacker-youth, knowing only a few languages and how to use a shell, what would you do? Am I making a mistake by starting with the Dragon, and if so, what do you recommend? Should I learn Lisp then Haskell or vice-versa? And what should I prioritize, compilers or more languages?