Skip to content

Comment on What Every Computer Science Major Should Know

Comments

You mention version control in passing, but it probably deserves more emphasis. CS majors who aren't comfortable using version control are likely to be at a disadvantage.

OCaml may work as an alternative to SML.

You could also mention Information Retrieval, alongside Machine Learning.

Compilers/parsing/interpreters/etc. could really be its own top level item.

Learning to use profilers / performance optimization. _The Practice of Programming_ covers this (and many other things!) quite well.

All in all, a great list. Probably also useful to suggest starting points for people (like myself) who are self-taught.

To be clear: I consider understanding version control essential. I'll emphasize it.

I agree that OCaml and SML are roughly interchangeable for educational purposes. I picked SML because it's slightly "cleaner."

As a compilers prof, I agree that compilers should be its own item, but politically, that's a tough sell. Teaching compilers needs to be sold in the service of another end for most faculties.

Cleaner, yes. I picked OCaml because it seemed easier to find information about, and more widely ported.

Also, I think most people fail to appreciate how useful compiler techniques are outside of "compilers". Even just knowing a little about lexing and parsing goes a long way.

For Prolog, I'd also recommend _The Art of Prolog_ by Sterling & Shapiro and/or Clocksin's _Clause & Effect_.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.