Live data from Hacker News

How to Pass a Programming Interview

blog.triplebyte.com

111–120 of 570 posts

Re: How to Pass a Programming Interview

#111

Earlier quoted context omitted.

I wouldn't pass then since I live in post 2000 and am used to let the IDE handle the nitty gritty details while I focus on the actual meat of creating software

I've had this problem as well. I go back and forth between Obj-c, python, javascript, matlab etc. so much without spending a significant amount of time on any one language that I often feel intellectually deficient because I don't know the nitty-gritty details of any of them. Curious to see what others think - is this something I should stop and focus on? Or in today's development environment is it considered accepta…

http://exercism.io has helped me to write more idiomatic code (submit a thing, get comments, refactor, also comment on other people's code.) Maybe it'd help you for the languages they have examples for?

Re: How to Pass a Programming Interview

#112
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.

Re: How to Pass a Programming Interview

#113

Earlier quoted context omitted.

Care to mention these questions? Most companies are suffering HARD from false positives. I'm sure a lot of people would love to know what's working for you. Thanks!

Well, I'm not going to spill my current repertoire, but in short it's all about "programming in the small". Can you construct a precise Boolean predicate to test for a well-defined condition? Do you "get" pointers and recursion? Find sample problems in your own work.

If it is something that loses value if "spilled" it probably is not as valuable as you think.

Re: How to Pass a Programming Interview

#114
> This situation is not ideal. Preparing for interviews is work, and forcing programmers to learn skills other than building great software wastes everyone’s time. Companies should improve their interview processes to be less biased by academic CS, memorized facts, and rehearsed interview processes. This is what we’re doing at Triplebyte.

Thank you! This is a good write up and just like it concludes it's far from ideal.

I'd love to see more interviews based on real-world type things like maybe code a project, come in and explain the architecture, reasons for your data structures, performance questions, etc. Shows how you code and communicate and even better: work with others and maybe walk someone through extending your project or something similar.

Honestly though my biggest issue with interviews is the lack of response with a negative result. For instance one of my last interviews I spent literally months with the company interviewing on and off on the phone and in person. I never heard a SINGLE negative thing from anyone, always answered every question correctly, shot the shit with many of them and everything seemed perfect. Even the team lead asked me not to go after something else because he wanted me. Then I was ultimately declined with the only reason given was "lack of experience". But I had over 12 years of experience, all of the interviewers told me I went above and beyond, said they agreed and liked the solutions I came up with, that I talked through them well, etc etc. I was never able to get anything else out of that.

If something is wrong with a candidate and they don't fit that's perfectly fine. But please give them accurate and detailed feedback where possible. This leaves me absolutely nothing helpful and instead of possibly improving on something I'm left thinking they made a mistake or everyone just simply lied to me during the entire process. I was even exchanging some texts and emails with the lead up until I was given the negative result and then nothing.

Re: How to Pass a Programming Interview

#115
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 pushing someones limits and see where they stumble but a lot of these interviews seem intentionally trying to screw you over with the abstract way these questions are asked and the brain teasers they give you.

Re: How to Pass a Programming Interview

#116

I really wish that at some point during my CS education I would have realized how typical programming interviews worked and just how impossible they are for me. None of my internships had this sort of stuff and after a long string of failures interviewing after graduating, I can openly admit that being able to solve algorithm stuff just isn't in my blood. It doesn't matter how many books I read or questions I practic…

Calm down, buddy. There are a lot of places where you can apply your CS and software dev learning without having to have an encyclopedic knowledge of algorithms. I would even go so far as to say that those jobs are in the minority.

Re: How to Pass a Programming Interview

#117

I really wish that at some point during my CS education I would have realized how typical programming interviews worked and just how impossible they are for me. None of my internships had this sort of stuff and after a long string of failures interviewing after graduating, I can openly admit that being able to solve algorithm stuff just isn't in my blood. It doesn't matter how many books I read or questions I practic…

Are you committed to working as a professional programmer? If not, a rapidly growing area where lots of help is needed is the intersection of computer science and law. Lots of bad laws exist on security and privacy, because the people who drafted them don't have a CS background.

If you do want to work as a professional programmer, try just typing through solutions and understanding them. After lots of exposure, you'll start picking up patterns. Dynamic programming and greedy algorithms are taught so quickly that I'm surprised students generate intuition for them! Feel free to get in touch if you're struggling. Best of luck.

Re: How to Pass a Programming Interview

#118

Earlier quoted context omitted.

But the VAST majority of the programming work out there does not require any Big-O analysis. Your point is simultaneously valid and irrelevant. The vast majority of programming doesn't involve any Big-O analysis. But if you can't do Big-O analysis, there are problems where you will be stuck. Your code will be running slowly and you won't know why, and all the micro-optimizations in the world can't make a O(n^2) algor…

You don't need to know how to prove a big-O to optimize an algorithm. Anyone who can think about what their code is doing will have at least some sense of how much it is doing. Honestly, I don't think calculating the O(f(n)) is ever worth it outside of academia. Intuition is only slightly worse, and it is just so much time-cheaper.

    Honestly, I don't think calculating the O(f(n)) is ever worth it outside of 
    academia. Intuition is only slightly worse, and it is just so much 
    time-cheaper.
Sure. I've never been asked for a formal mathematical proof of the Big-O complexity of my algorithms in an interview. And, as an interviewer, I've never asked. Intuition is exactly what interviews are looking for. If an algorithm has a nested for loop, and the inner loop is traversing the full data set, you should be able to say, "Oh, yeah, that looks like O(n^2) time complexity." If an algorithm is storing every element of a data-set in memory, you should be able to say, "That's O(n) space complexity."

Big-O notation, in practice, is a handy shorthand for talking about various classes of algorithms, and ranking them in order of how much time/space they take.

Re: How to Pass a Programming Interview

#119
post #74

Earlier quoted context omitted.

You can always preempt the whiteboard issue by bringing a laptop along. "Hey, I'm a lot more comfortable writing code on a keyboard and with an IDE. Lets program this together in a text editor instead of a whiteboard".

As a candidate, I feel that it is fair to stand up for this as well. If the interviewer wants psuedocode, I'm happy to whiteboard it. But I've been whiteboarding before and had the interviewer say, "that code wouldn't compile, you're missing a bracket." So I said, "If you want code that compiles, bring in a laptop and I'd be happy to put it in to Visual Studio [it was a .NET position] and have it be syntactically cor…

Some places I interviewed did mostly whiteboarding, but had a problem that required producing working code. One place had a standard desktop setup aside for me - with the most popular IDEs pre-installed. Another had me bring my laptop.

Re: How to Pass a Programming Interview

#120
post #14

What if designers had to go through a similar interview process? Here are some colors, please arrange them in palette groups that are color coordinated for a given visual effect? Why is red font on blue background bad, please justify? That would simply be hilarious.

I've had interviews with some notable startups that gave a take home design test, such as here is problem x now design a solution and show your process. I did it once in my naive young years when I really wanted to work for a specific company. Now, I'm fine with telling them I deserve to be paid for a day's work if we're going that route.
Post reply on HN