Comment by bstamour
11 years ago
Devil's avocado: if they're truly CS fundamentals, then they should be baked into you good and deep during the course of your college education. It shouldn't be painful at all.
11 years ago
Devil's avocado: if they're truly CS fundamentals, then they should be baked into you good and deep during the course of your college education. It shouldn't be painful at all.
I took CS 101 classes almost a decade ago, and since then, I have never once needed to write a binary search tree outside of an interview.
I think "CS Fundamentals" are really just "abstract concepts used to teach programming", and calling them fundamentals is disingenuous.
Maybe you're just not doing serious programming. Most people I know implement data structure searches quite often.
If you're writing scripts, or JS code for web pages or something like that, then maybe you don't use CS stuff, but ... are you able to write a web browser if you had to? Are you able to write an operating system or navigational software for a spacecraft? If not, then maybe just see this as revealing sectors of your skill set that could be beefed up, rather than presuming that none of that stuff is important.
> Maybe you're just not doing serious programming. Most people I know implement data structure searches quite often.
Wow. Really? Most serious people I know use other people's implementations that have already been highly optimized and well tested because they have better shit to do than reinvent the wheel.
I suppose if you want to write your own red-black tree from scratch, that's your prerogative. The last time I did was 20 years ago and not only will I never do that again, I will laugh at anyone who does it without a damn good reason.
4 replies →
CS fundamentals like BSTs are definitely not used to teach programming--things like video game projects are--they're used to teach algorithm design and analysis. CS is an academic science, it's not a technology trade.
I think a more fundamental skill these days is figuring things out. For instance, a test where you actually have to google for the docs to something and figure out how to use it might make more sense.
The idea that "serious programming" means abstract data structures or coding in assembly is weird to me. I would consider a lot of people serious programmers who, while they may know how to do those things, don't actually do them almost ever.
I think the real issue is that most programming jobs aren't computer science jobs, so CS fundamentals are almost totally irrelevant.
amen to that!
I graduated this spring and I don't know how to do that. Now, I am not a boy genius but I doubt it is a CS fundamental.
What material did you spend time on that you don't know how to reverse a binary tree?
It isn't a difficult problem, even having never seen it before. This is one of those warmup problems to test how comfortable a candidate is with basic concepts such as recursion.
I think it's a pretty easy question. Pretty much all algorithms courses teach you enough to be able to solve this question.
Especially as a fresh grad. Reviewing for a week or two if you've gone to a good school/actually did your work instead of 'consulting google' is definitely enough...