Live data from Hacker News

The Programming Interview from Hell

pythonforengineers.com

81–90 of 147 posts

Re: The Programming Interview from Hell

#81
I get that this is a caricature, an exaggeration of reality that's trying to convey some bad practices. It must be incredibly frustrating to be on the receiving end of an interview this bad! But I'm not sure all of this plays particularly well, and I want to push back a little bit.

For context here, I'm a college dropout. I made it through two years before I discovered that I could skip right to having a job, and for where I was in life, it was the right decision for me. But seriously, what's the deal with this hatred of "Big O" notation?

This isn't some cryptic language only for use by CS PhDs. It's not even a concept that's hard to explain to someone who isn't in our industry!

"The question we're trying to answer here is, how does our solution scale as the problem gets bigger? Are we able to solve it in the same amount of time regardless of size? Does our solution take more time as the problem gets bigger, but only in proportion to how much bigger the problem is? Or does our solution take much, much longer as the problem gets bigger, to the point where it's no longer feasible to solve?"

Asking a candidate to be able to have a conversation about this -- how do time and space complexity scale -- is not unreasonable. This is the difference between designing a workable solution early, and discovering that what worked great in a unit test and some one offs behind the scenes fell over in production.

Similarly, I see no problem in expecting a candidate to have some familiarity with the basics of simple data structures. I don't generally rewrite them either! But I use data structures all the time, exposed to me via the standard libraries of programming languages that I use, and if I don't broadly understand how they work, when they are appropriate and when they're not, and when one choice is superior to another, I'm not doing my job.

I agree that in a lot of instances, Google is the answer. But Google is of no help if you don't know what to ask, or worse, if you don't even understand that there's a question to ask.

I'm not defending the truly awful interviews that I believe really do happen. But let's not pretend that it's not important to understand how these details work to get proficient, or even adequate, at our jobs.

Re: The Programming Interview from Hell

#82
post #79

I've actually used (politely, of course) many of these answers in interviews, whenever I felt the interviewer was trying to show off or read from the script instead of actually judging my abilities. "I'd google it. Anything less would be a waste of our time." That cuts through a lot of bullshit. After saying that at my last interview, we got into actual problems (structuring a program, building an API, writing code t…

new java.util.HashMap() In case you ever get such a stupid question again.

Yeah, I'm fairly proficient these days. But even then, I expressed amazement that Java didn't have a built-in or library data structure.

"It does."

"Then I'd use that."

"That wasn't the question."

"Oh... kay..."

Re: The Programming Interview from Hell

#83
post #68
post #64

Earlier quoted context omitted.

> I never found out the BEST way to share data between programs. In fact, I'm still looking. I think we all are. Copy-paste.

See, I was gonna go with Data.txt in a shared network drive. Btw = if you're worried about conflicts - it's Ok there's a second file called "writeStatus.txt" which you have to claim by replacing the String NULL with your processId - thereby claiming write access to data.txt and causing any other processes to Thread.Sleep until it's free. Unrelated, who's hiring...

Flat files FTW, Just need to re-invent server-client architecture using freely available tools and you're at management level kudos,

Re: The Programming Interview from Hell

#84

I hope I'm past the part of my career where I go on cold job interviews but if I ever had to go on another job hunt, I'd simply announce that I'm a web developer and not a algorithms person and it looks like I might not be the best fit for the position and just see how the interviewers respond. Anything less than tossing the playbook warrants a gentle suggestion that we shouldn't waste any more time here and why don'…

> I'd simply announce that I'm a web developer and not a algorithms person A while ago I was invited at a startup for a casual discussion about an open position they had (front-end developer). I went because I knew several employees and they were nice. The casual discussion turned out to be several questions about UDP/TCP and writing algorithms on a blackboard (counting leaves in a tree, finding is a word is an anagr…

I hear about the whole 'casual discussion turns into hardcore interview' ploy all the time, and curious about a better way to respond to it. It's not a serious knock on company culture, but it is impolite. I'd probably overlook it if I didn't have a current job, but would write off the company if I was already employed. I don't think it warrants a walk-out.

Re: The Programming Interview from Hell

#85
post #76

Earlier quoted context omitted.

> linked list is not complex for christ sake. There are many people for whom this is complex, you're assuming a foundation that not everyone has. There are also many people for whom nothing is complex, they assume they can understand everything, while they don't currently, they assume they'll be able to learn it without issue. Dealing with new starts who are straight out of education is often like reading posts from…

But there's also nothing crazy about a company saying: for this role, we expect the candidate know linked lists. It's not esoteric and I think a lot of us would consider normal programmers who have had to write linked lists (and other data structures) for one reason or another.

Personally I agree, however I know people employed to code PHP who have no concept of this. Some apprentices who have left college have joined our company who don't know this.

Re: The Programming Interview from Hell

#86
post #66

Earlier quoted context omitted.

linked list is not complex for christ sake.

linked list is not complex for christ sake That depends on the language. If you're using something without pointers or references it's quite hard.

Hmm, which (general) language has no pointers or references?

Re: The Programming Interview from Hell

#87
post #63

I once had to use a linked list to implement a sorting algorithm on a huge but partially sorted input. This was to detect duplications in an AST, for a static code analysis startup. This was literally the only time I professionally used any sort of non-trivial data structures and algorithms, and I've been working in the field for some 10 years now.

Wait, how is a linked list a non-trivial data structure? It just consists of: {data, pointer to next element}.

Linked list was just a part of the data structure I ended up using.

Re: The Programming Interview from Hell

#88
It was fun to read. However, while interviewer was not perfect, the interviewee was too much crazy.

I always find it suspect when self proclaimed awesome genius programmers take offense over simple common questions (like linked list). Had it been something esoteric, ok. But these come up so often and take so little time to learn.

Re: The Programming Interview from Hell

#89
I have been hiring technical people for about 18 years. 15 years for my own business. I stopped with all the bullshit questions years ago. My own research into which approach to interviewing is the "best" turned out to be a tossup. You can spend a day, or even days to go through a gruelling interview schedule, and your success rate won't be significantly higher. We are not Google, we don't have their needs, and we don't have the resources. If I'm looking for a dev or ops person, and your CV matches the skills I am looking for, and I have a good feeling about how you present yourself on paper (decent cover letter, decent CV, etc.)you'll be invited for a formal interview, where we will discuss your CV (tell me a bit more about this job you list here, etc.) takes anywhere between 15 to 60 minutes. If there is a connection and a good vibe, your next interview will be informally, in the pub, with the rest of the team to see how you get on. This approach has netted me a higher percentage of succesful long term hires then any other approach. I trust that if you apply for a developer position, you will actually be able to cope. Your skillset will be determined during your probation period, which is something I make clear beforehand. Your probation is where we see how good your skills are.

Re: The Programming Interview from Hell

#90
post #9

OK - but here's a genuine problem that came up the other day in my work (reconciling two datasets - we have various many-to-one mappings of ids that we then want to reconcile against each other). I think it's quite a neat computer science/algorithm challenge, so here goes: Write a function which takes as input a list of sets, many of which are not disjoint, but will output a list of sets where all of the non-disjoint…

[deleted]
Post reply on HN