Ask HN: What are CS topics covered in school, that aren't learned in the wild?
I'm a self-taught dev with a solid understanding of a broad scope of CS topics. However, I've recently learned that some companies filter during the interview process for CS-grads only by asking topics that specific to CS in school, but aren't necessarily learned in the wild. A good thread example is the one from yesterday about DP problems[1].
So what are some CS topics/concepts that are covered in school, but aren't learned necessarily as an Engineer at work.
1. https://news.ycombinator.com/item?id=19396042
10 comments
[ 3.4 ms ] story [ 36.9 ms ] threadIn fact, logic in general is such an example. At least a basic treatment of propositional logic and predicate logic, computation, unification, resolution and sequent calculus is a common ingredient of CS degrees all around the world.
Other common examples include probability theory, statistical tests and complexity theory, all of which are part of many CS degrees, both at the undergraduate and graduate level.
In all these examples, organizations that need these skills tend to hire people that already have them at least to some degree, making it unlikely to encounter these topics at work for the first time.
(Note that I'm not interested in bikeshedding about how a small fraction of highly motivated programmers have learned these things outside of formal education.)
algorithm & data structures.
algorithm analysis
OS/internals
compiler design
computer architecture.
discrete mathematics.
distributed systems.
"Education Is What Remains After You Have Forgotten Everything You Learned In School"
I don't remember the fine details of anything I've learned in school that I don't use on a daily basis yet the confidence of knowing that I studied and passed the exams is invaluable. I can go back and re-learn things if the need arises knowing that an expert once agreed with my understanding. That is invaluable.
Basically, if this your attempt to make yourself feel better about not having a degree, why not just go get one - there are affordable schools out there that offer nice programs. You may learn something in the process and meet new people.
But, in reality. Do you really NEED a degree to pass a little theory quiz (or for anything else for that matter) -- no you don't -- your brain works the same way with or without a degree.
".. and here is a boolean condition that is true immediately before every evaluation of the loop guard, and due to preservation..."
"Stop there and define preservation for us". "Stop there and define what an undecidable problem is".
If you want a crash course in various undergrad theoretical compsci topics to help refine your communications like how to state something is true and then justify it, there is this good YouTube playlist https://www.youtube.com/playlist?list=PLm3J0oaFux3aafQm568bl...
But for the most white-board style algorithm questions I have heard about, it would mostly be covered by "Introduction to Algorithms" from MIT press. For overview of chapters you could look on wiki [1]
There might be more. But I actually liked that book :-)
[1] https://en.wikipedia.org/wiki/Introduction_to_Algorithms