Live data from Hacker News

The software development final exam: Algorithms and Data Structures

daemonology.net

131–140 of 208 posts

Re: The software development final exam: Algorithms and Data Structures

#132

This is so depressing. I just finished a degree in "Information Systems" with the hopes of being a developer full-time and I can't answer any of these questions. I guess I should be mad at the institution, but that wouldn't be productive. Where do I start now to start learning what I actually need to know? It seems like there is so much I don't know.

Information Systems (or IT, or MIS, or CIS) is not Computer Science. I made the same mistake: I was a lazy student and didn't want to do a lot of math homework, so I picked IT as it sounded a lot more 'practical' and 'hands on'.

I've slowly learned basic CS concepts since then on my own and working with others, and either some day I'll have time to fill in the gaps or I'll just continue to work in the "narrow area where [my] deficit doesn't matter."

I think the author has it backwards though, -he- is the one that works in a narrow area where the deficit does matter.

Re: The software development final exam: Algorithms and Data Structures

#133
post #95

Earlier quoted context omitted.

Did you ever need to write an algorithm to process some large volume of data, and you had to make choices related to performance, e.g. to avoid a combinatorial explosion in some searching problem which trivial implementation would be a full cartesian product of several dimensions of data (i.e. a bunch of deeply nested loops)? Speaking of cartesian product, did you ever wrote a huge database query that you had to opti…

I absolutely agree that knowing basic CS is a good thing, and it will make you a better developer. Also, we do internalize a lot of the concepts so they become second nature. That being said, it surprised me how much code there is where this doesn't matter. As for the specific questions: It's definitely good to know big O notation, so maybe I was a bit quick to dismiss the first question. However, a more realistic/us…

Graphs are an interesting case in this debate. I agree that you very rarely run into real-world problems that look like a traveling salesman or bipartite test etc. But the thing about graphs is that they are the foundation of ALL data structures, and lots of algorithms. Lists, hashing, trees, arrays and more -- just special cases of graphs. If you can describe anything at all with a boxes-and-arrows diagram, it's a graph problem ;-) so if you know at least the core concepts of graphs, including some fundamental techniques (e.g. advantages of each representation such as adjacency matrix vs. node list vs. edge list), then you have the tools to work through any data structure problem; and any algorithm that's focused on searching or manipulation of specific data structures. And this can take you very, very far.

Once again, of course you can learn most of these foundational concepts more empirically, or in a more "bottom-up" way by starting with the standard data structures and algorithms that you use in practice, but gradually deducing general concepts that unify them. But I wonder if this can ever result in the same deep insight that some study of graph theory can give.

Re: The software development final exam: Algorithms and Data Structures

#134
post #13

Earlier quoted context omitted.

How many have you got already?

16 in the first 1.5 hours.

Given that you're only getting dozens of replies, why are you asking for institution? The only useful pattern I can think of would be something like correlating against university ranking, but that doesn't sound too useful.

Re: The software development final exam: Algorithms and Data Structures

#135
First, since I took this class just a year ago, I can answer all of these questions. Will I be able to do so in two or three years? Probably not. Some things like heapsort already start to fade away in my mind. But if, even in 20 years, Ijust open Cormen et al. and take a brief look I will remember.

If you have passed the class in university and now feel bad that you can't answer these questions, don't worry. It does not matter. If you want to work at Google, work through Cormen again before the interview.

Feel free to pick your favourite field like Compilers or Machine Learning and put a basic question to the author of the quiz, when you meet him in person. If he can't answer, pat yourself on the back and feel free to consider yourself a better software developer.

Re: The software development final exam: Algorithms and Data Structures

#136
post #34

Earlier quoted context omitted.

Yet, at least in the European countries I've lived in, you won't get through HR without a CS degree, unless you're doing your own business.

I'm in the UK, I know people who are excellent developers who don't have degrees on any kind and who have no problems whatsoever getting employed. Mind you they have 10+ years experience and can point to major succesful projects - so whether or not they have a degree or not is rather irrelevant.

In Portugal, Switzerland and Germany I never knew about the HR department accepting any candidate without CS degree or related field (e.g Electronics), in the companies I worked for.

Re: The software development final exam: Algorithms and Data Structures

#137
post #8
post #4

Earlier quoted context omitted.

As I wrote in my introductory post, I have needed to know most of these things in my day-to-day job. Of course, it depends on what sort of work you're doing.

I don't need to know these things in my day-to-day job either. However, if I did need to know them, they'd be a Google search away, and I could find them out in less than a minute (less than the time it takes me to get urllib2 to send cookies, for example). On the other hand, I imagine that someone who hasn't been formally trained in complexity would have a harder time, because they wouldn't be aware of basic concept…

> trivia like the difference between O(2^n) and O(3^n).

ignorance regarding basic complexity differences; this is the problem.

Re: The software development final exam: Algorithms and Data Structures

#138
post #136

Earlier quoted context omitted.

I'm in the UK, I know people who are excellent developers who don't have degrees on any kind and who have no problems whatsoever getting employed. Mind you they have 10+ years experience and can point to major succesful projects - so whether or not they have a degree or not is rather irrelevant.

In Portugal, Switzerland and Germany I never knew about the HR department accepting any candidate without CS degree or related field (e.g Electronics), in the companies I worked for.

I'm employed in Portugal without a (completed) CS degree, and I had more than one company to choose from. From what I could tell, the interviews were much more important than any lines on my CV.

Re: The software development final exam: Algorithms and Data Structures

#139

Earlier quoted context omitted.

They're the sort of thing I use on a daily^H^H^H^H^Hfrequent basis. The questions are not asking trivia questions or looking for knowledge, they're asking questions whose answers can be figured out.

How do you "figure out" what a B-tree is? That's a trivia question.

[deleted]

Re: The software development final exam: Algorithms and Data Structures

#140
post #136

Earlier quoted context omitted.

I'm in the UK, I know people who are excellent developers who don't have degrees on any kind and who have no problems whatsoever getting employed. Mind you they have 10+ years experience and can point to major succesful projects - so whether or not they have a degree or not is rather irrelevant.

In Portugal, Switzerland and Germany I never knew about the HR department accepting any candidate without CS degree or related field (e.g Electronics), in the companies I worked for.

Personally I'd regard any company where the HR department gets to filter candidates on silly criteria like that as somewhere I'd never want to work.
Post reply on HN