Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> For me, I wish I learned assembly, kernel development, stats and machine learning.

Did you take compilers, learning e.g. parsing theory? If so, are you happy you did or did you feel it's skippable? If not, do you wish you had taken it?



Compilers is definitely my #1 favorite course. Data structures and algorithms is my #2. I kinda have a love-hate relationship with data structures later on because I never feel I am good enough to say I love it. With compilers, I found only love (perhaps because I don't know enough about it to fear it). Compilers was taught by a very competent professor in my college. It was an undergrad 1-semester course in a liberal arts school, so I think it wasn't as hard as courses offered at other schools. Nevertheless, I enjoyed it immensely, it made sense of everything that I learned in those boring theoretical courses like automata and formal languages. It showed that little machines with very little memory and power can do amazing things. It showed why the ancient calculators with practically no memory can parse a very complicated math function correctly. I really found my fascinations being unleashed in compilers. I still remember at the very end of the course, with the people who survived the last assignment, our professor handed out to us the paper "Reflections on Trusting Trust" by Ken Thompson.

I don't think it needed to be mandatory because I can see why some people don't like it. I believe people who get out of school to be web devs, for example, will not be needing it to be competent. But I really think the ideas in the courses are useful in real life in many cases. Later on, I even used what I learned in that course to make a poor man's HTML parser to translate rudimentary HTML to the instructions to write to the Adafruit thermal printer. So basically it makes the thermal printer a wireless one with an easy-to-use API that you can interface with from a phone app [1]. The code is for the Raspberry Pi, but was intended to run on an extremely limited uC that is embedded in the printer itself. I never had time to make the actual hardware but it works well enough for a Raspberry Pi right now. Without the stuff I learned in Compilers, that would have been impossible.

1: https://github.com/htruong/html-bt-printer


I took compilers. It was a lot of work but I think it takes away a good bit of the magic (and adds some more in) to what makes everyday programming possible. I don't think it was vital but If I was designing a CS degree I would definitely not axe it.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: