Comment by squiguy7

11 years ago

Interviewing seems broken to me too. I have spent the last few months trying to get a job out of college and everyone seems to be interested in how well you can regurgitate CS fundamentals.

They are seemingly less interested in seeing how you solve problems and work through the process of software.

I would be more than happy to see this process change, I am just not sure what it entails.

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.

      6 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 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...

If you are trying to get a job straight out of college and you didn't have many relevant internships, there really isn't much to judge you on other than what you learned in college. This isn't a fault with the interview process.

Some companies give take-home assignments (small projects that can gauge how well you learn). I tend to find that these are smaller companies. You can always try there.

Also, the most important thing that they don't teach you in school is that getting a job is all about connections. Email some people that you've interacted with to see if they know of anything that might be suited for you.

I guess it depends on where you're interviewing and what their expectations are of you. Since you've just graduated they may expect you to be very junior and just want to make sure you have a good CS foundation. They should ask problem solving questions but it wouldn't be weird if they just focused on what they think you know.