Live data from Hacker News

How to Pass a Programming Interview

blog.triplebyte.com

211–220 of 570 posts

Re: How to Pass a Programming Interview

#211

It seems like there is a large middle area of concepts in between low-level algorithms/data structures and high-level system architecture that are left out of many of these interview prep guides: * Principles and patterns of object-oriented (or functional) design * Relational (or NoSQL or analytics) database design * Unit, integration and system testing * Logging, profiling and debugging * Source control (e.g. branch…

From my experience, if they do come up, it's only because I was asking them what they used. I don't think I've ever been asked about any of these topics, with the exception of database design.

Re: How to Pass a Programming Interview

#212
While there are several resources to practice the use of algorithms and data structures, I find there aren't as many good resources to prep for the 'system design' interview.

If one wants to switch from a completely different domain - like working in investment bank tech or embedded development, there is no way one can have prior knowledge to tackle the design of a Google Docs style system.

It seems like something that can only be gained through on-the-job experience. Is there no hope for newbies?

Re: How to Pass a Programming Interview

#213

I hated this article. A good technical interview reveals an aptitude for programming or a lack of same, and can distinguish a true aptitude from an ability to fake it. I've been interviewing programmers for a very long time and I'm pretty good at avoiding "false positive" results with a few straightforward questions. If you have aptitude and talent, brush up on your algorithms and try to have fun with the interview.…

So, you may be right. Perhaps you're great at telling good programmers from bad. But almost no one does the analysis to really know if this is true (false negatives are the huge unknown). And most interviewers are not as good as you. The consistency between interviewers at the same company is low (we measure this). The consistency between different companies is low. We (interviewers) can do better than this!

Re: How to Pass a Programming Interview

#214
post #71

It's always been strange to me that tech interviews tend to check for basic CS, rather than deep engineering. When was the last time you had to implement bsearch() in a real project?

It is widely believed that if you are able to do deep engineering you should also be able to get the basics right. It takes a lot of time evaluate a real world project and most of applicants would not agree to do one anyway, so basic CS is the easy approximation.

What makes implementing qsort/bsearch/etc "the basics"? It seems rather arbitrary, and it mostly measures how well you are able to recite from CS books.

Re: How to Pass a Programming Interview

#215
post #64

Interviewing should now be part of most CS educations, if not its own three class/semester course. Its that weird, and that important.

But the people who'd need that the most are the ones furthest out of school. I shudder at the thought of ever having to do another programming interview. Well, alternately shudder and laugh. What a joke!

It's my belief that the best experienced programmers don't have to go through programming interviews. Even if you don't actively make an effort to network, you have a network of people who know you're good enough to outright hire without the whole rigmarole.

Companies who aren't finding people like this are missing out on many of the best.

Re: How to Pass a Programming Interview

#216
post #15
post #9

Another great post from Triplebyte, but I am confused about their model. Why would candidates want to apply to Triplebyte, if they still have to go through the companies' full interview process on top of the Triplebyte process ?

If you apply to Triplebyte you don't go through the full interview process at the companies we introduce you to. You skip the technical phone screens (most companies do 1 or 2 hour long phone screens before bringing candidates onsite) and go straight to on-sites. Where we can really save time is focusing on the matching process of candidates to companies. Interviewing is tiring and we find candidates often stop talki…

I don't really see how you are relevant if I still have to go through a technical interview - it still means the interview process takes way too much time and I am better of finding a way around it.

Re: How to Pass a Programming Interview

#217

I've interviewed for a lot of YC companies and companies that frequently post in the "who's hiring" thread and the programming interviews they give are absolutely horrendous. I've had programming test where companies look at my resume and go "so you are very experienced in Ruby? Great, solve these algorithms in C++ for us. I've actually had someone give me a ACM-ICPC world finals question. I don't have a problem with…

Hiring talent is a skill most founders do not have because they haven't done it before. It seems like the most egregious oversight ever for an investor to make.. "oh you have a really good core team of 3 people who you've been friends with for years? Here's a million dollars go expand your team with 10 new people".

Re: How to Pass a Programming Interview

#218

Earlier quoted context omitted.

Have you ever been waterboarded? Putting waterboarding on the same level as whiteboard coding interviews is minimizing the horrific experience of those who have been waterboarded.

Not many people have been waterboarded, and most were terrorists, so it's not the same as a holocaust joke. In a world where we're not allowed to laugh at anything connected to some kind of injustice, then yes, that wasn't funny. But I laughed.

>and most were terrorists

Do you have a source on this?

Re: How to Pass a Programming Interview

#219
Interesting article.

For a while, we had a non-typical interview strategy: A take-home project. We would give the candidate a week or so to work on a smallish project, the requirements of which we would specify. After they completed the project, we would do a group walkthrough with them.

We've hired five engineers over the last three years. For the first two, we did the take-home project. But, then I started to wonder a bit about if it was reasonable to ask programmers to work a weekend on a project. There were a bunch of persuasive comments in HN threads on the subject saying it was unfair -- a job seeker would have to spend an incredible amount of time on each application. And one candidate that I really liked aborted the interview process once I told him about the take-home test.

So I changed the process to something much more typical, with live, in-person coding exercises. We hired three more engineers under this system.

So, how did they compare? Well, the engineers hired when we were doing take home projects have worked out INCREDIBLY well. They are independent and very resourceful. They are excellent.

The engineers hired under the more typical system have not done well at all. We had to let go of two of them, after months of coaching, and the third isn't doing that well.

Random chance plays a huge role here, I'm sure. Maybe we just got lucky with the take-home project engineers. But personally, I think it makes a lot more sense to have the interview process match the work. /shrug

Re: How to Pass a Programming Interview

#220

Being a good programmer has a surprisingly small role in passing programming interviews. And that just says it all, doesn't it? I agree that interviews should test candidates on certain basic skills, including (time/space) complexity analysis. But do you really learn anything by asking the candidate if they can recite the time complexity of a moving window average algorithm (as I was asked to do by an interviewer yes…

> including (time/space) complexity analysis. I think this is one of the most inane things to be asked during an interview. personally, I've never found myself in a situation where I truly needed to choose between a vector/map/list/hashmap. Or had to find the O(x^n) and replace it with O(x^2) Obviously it depends on the application, but many jobs are simply maintenance coding: find bug, fix bug, test fix. Often times…

That's fine, as long as you _never_ need to trust said dev to do anything complex. It's fine to have mediocre developers perform mediocre tasks, but if you want more from them someday you may be in trouble.
Post reply on HN