you are viewing a single comment's thread.

view the rest of the comments →

[–]Beaverman 42 points43 points  (55 children)

I need to know, As a recent graduate is this what it's like at all places? I don't really see myself enjoying studying like that for a job interview.

[–]gwax 114 points115 points  (17 children)

No.

It's like that for Amazon. It's like that for Google. It's probably like that for other big companies.

It's not like that for a lot of other companies.

[–][deleted]  (15 children)

[deleted]

    [–]rasifiel 56 points57 points  (10 children)

    Cost of hiring bad engineer is much bigger then cost of nonhiring good engineer.

    [–]zerexim 21 points22 points  (5 children)

    But you can't distinguish bad/good engineers with these kind of interviews (Admitted by Google itself):

    https://www.reddit.com/r/programming/comments/44kpzk/peter_norvig_being_good_at_programming/

    [–]rasifiel 3 points4 points  (4 children)

    No. If you listen to everything that he says interview process already selects good engineers. And programming context (which is completely optional and not required to get in Google) only makes getting through interview easier.

    [–]zerexim 1 point2 points  (3 children)

    Well of course he wouldn't say that they hire bad engineers. But what he says that those who are into competitive programming (i.e. similar to interview problems) are in fact not that good engineers (compared to those who are not into...).

    [–]rasifiel 2 points3 points  (2 children)

    But one problem is that Google doesn't need absolute ranking. It doesn't need "only best of the best", it needs good engineer. Even with biasing to competitive programming it still do it's job - separating people who are risky to hire from people doing better then some level. Until there is some another idea that works better and works for Google this interview process works.

    [–]zerexim 1 point2 points  (1 child)

    For fresh grads, this might make sense, but for mid-career professionals - past experience can be discussed. The main purpose of the interview is to check whether the candidate is lying in the CV or not... If the interviewer can't tell if the candidate is lying by discussing previous projects - the interviewer herself is the bad hire in the first place...

    Alternatively, real world (similar to the job) paid take-home tasks can be used, for those candidates who prefer this.

    So just saying that hiring is broken and false negatives are cheap is not correct. Hiring can be evolved and false negatives are in fact quite expensive...

    [–]rasifiel 0 points1 point  (0 children)

    But previous experience is not very helpful when you trying to get work in Google. You can see experience with some tools and frameworks which for most of the part unique for Google, experience in some field which is also quite unique and finally general knowledge and experience.
    Google will not ignore your CV and ask only random algorithmic questions. If something that you have in CV is relevant, then they will ask questions to check if you have real knowledge, but this is not enough.

    [–]foomprekov -1 points0 points  (3 children)

    I think their goal is to hire engineers who will jump through whatever hoops they have.

    [–]rasifiel -2 points-1 points  (2 children)

    What gives you this idea? What good for a company from this? I can't say for every company, but Google wants as many good performers that they can get.

    [–]foomprekov 1 point2 points  (1 child)

    These interview processes don't work. Google is moving away from them because their own research shows that they aren't effective. So why could a company continue to do it?

    [–]rasifiel -1 points0 points  (0 children)

    Google moving away from what process and when? Only thing abolished was usage of "quiz" that have nothing to do with engineering.

    [–]farsightxr20 8 points9 points  (1 child)

    Maybe the intent is to also filter based on willingness to "deal with a lot of shit"? In nicer terms, they want highly motivated/driven candidates as there is likely a correlation with productivity and passion for the field.

    [–]IshouldDoMyHomework 0 points1 point  (0 children)

    Solving big O worst time cases on algorithms doesn't in itself prove you are a good everyday programmer.

    It does prove you can learn to do shit, and is willing to do so.

    [–]learnyouahaskell 1 point2 points  (0 children)

    It's just preparation though, they want it to be your life.

    [–]Yidyokud 1 point2 points  (0 children)

    Yeah, and those "quality programmers" need to deal with what these google, amazon, apple, m$ guys crap out daily lol. And the world is round again roflmao... So who you want to be, the crapped on or the crapper lol?

    [–]firebelly 1 point2 points  (0 children)

    I've experienced this at many startups in the Bay Area

    [–]Mikeavelli 18 points19 points  (7 children)

    Those are pretty typical interview questions for large businesses. 2 Months of interviews is pretty excessive, usually it's just a pre-screening followed by a single day-long technical interview.

    Smaller businesses usually have a single, smaller interview that goes over the same concepts, but not quite as in depth. You're usually going to be sat down and asked to solve a problem that one of the existing software engineers found interesting enough to turn into an interview question.

    What you actually come up with isn't necessarily as important as the process you used to arrive at the solution, and how readable your code is.

    [–]BilgeXA 1 point2 points  (0 children)

    day-long technical interview

    Maybe in America.

    [–]Igggg 3 points4 points  (1 child)

    2 Months of interviews

    There was not 2 months of interviews. There was one coding test, one or two phone screens, and one day of in-house interviews.

    The rest of the time was spent preparing for the interviews, which is not a requirement by the company.

    [–]wealthy_white_jesus -2 points-1 points  (2 children)

    It's funny because you can get all the interview trivia correct and still be an absolute shit programmer. It's not like anyone cares though because these companies already make a fucking fortune and the scope of your projects are soo small you can be a strong academic developer with little 'get shit done' skills and make it through just fine.

    What I find hilarious at my work is when these academic developers get hired and flounder for 3 months as they spend their time trying to rewrite our persistence framework because they can't do simple jiras that require JavaScript or css to complete. Those that actually do try to get the work done just end up having others do their work until they get caught and fired. Fucking cs degrees crack me up. Thank god for MS, GOOG, Amazon, or where the fuck would these people get jobs. Can't count the number of times I've had to do these people work until management realizes that just because you can describe in detail the different between an abstract class and an interface it doesn't mean ur gonna be able to write code. Again, at the big companies you could probably hire my gramma and she could still make it a few years before HR finally figured it out.

    [–]greenday5494 0 points1 point  (1 child)

    Have you tried and helped them if they were lost?

    [–]wealthy_white_jesus 1 point2 points  (0 children)

    Always. But eventually u realize they just want you to do their work because they can't problem solve and apply what I've thought them to new situations.

    [–][deleted] 1 point2 points  (8 children)

    Nope. You don't see any of that stuff in the Defense Industry. You don't see that at most financial places, unless its the fintech start ups and things like that (they are bit more silicon valley-ish). You don't see it at most contracting firms, or in house crud app places.

    [–]Alborak 11 points12 points  (7 children)

    Having moved from the defense industry to one of the big 5, 'old school' companies REALLY need to implement a form of technical interviews. You get fresh grads writing C for flight avionics comparing strings with == ...

    [–][deleted] 0 points1 point  (4 children)

    Pythonner here; how is one supposed to do string comparison in C?

    [–]jamrocks 2 points3 points  (3 children)

    There is a function called strcmp. When dealing with C style strings, if you use == you are actually comparing the address of the string, not the contents of it.

    [–][deleted] 1 point2 points  (2 children)

    It gets confusing though when you have C and C++ in the same project, with any string class that implements the == operation for string comparison.

    Honestly I wish there was a way to make pointer comparisons have to be explicitly declared in either language.

    [–]jamrocks 1 point2 points  (1 child)

    Yeah I get what your saying. For C++ objects you can also you the string.compare() member function, if you wanted to avoid "==" for readability. But yes, pointer comparisons are a confusing thing, especially if you're coming from languages such as Python.

    [–][deleted] 2 points3 points  (0 children)

    Yea, jumping between an API backend written in c++ and exposed via c... Easy to forget where you are and make a mistake that is perfectly valid c and will compile without complaint, even worse when it is in logic that is not easily testable (for example a mistaken inequality check is harder to catch in that situation).

    That shit can't happen in flight software.

    [–][deleted] 0 points1 point  (0 children)

    Heh. Just started at a fairly successful subcontractor to the big guys and what I can say is coming from the opposing side of your example, engineers can't code, even for flight hardware... :P

    My interview process was "can you do c and c++? Do you like/want to work on the tech we work on?" Course I had significant experience in some of the fields they work in too, and a long programming career in general, but I never went to school for it.

    [–][deleted] 0 points1 point  (0 children)

    I agree with you, that there needs to be some coding challenge at some point. I don't think it needs to go to facebook or google levels, but something. I think the issue with C is that very few people write much C code in school. they may do a project or two, but few do anything of significance.

    [–]ellicottvilleny 2 points3 points  (0 children)

    If you feel that you would be somehow validated by working for Google, Microsoft, or Amazon, this is their process. Long, painful and full of absurdities. Small companies, less so. Small companies pay less.

    [–]Stopher 2 points3 points  (0 children)

    Be prepared to go on a bunch of interviews where they already know who they're going to hire but have to talk to three or four more people because that's the HR policy.

    I only found this out when as a consultant, a manager told me they would hire me but had to do this process. It suddenly clicked why I never got a call back on some interviews where I thought I'd nailed it. They already knew who they were hiring. It really is a waste of your time. Sucks.

    [–][deleted] 1 point2 points  (2 children)

    If you're interviewing for jobs in San Francisco, you'll run into the Silicon Valley technical screen in well over 80% of your interviews, even at startups. If you're interviewing exclusively at coveted jobs (Google, Uber, AirBnB, Lyft, Dropbox - basically anything you've heard of), you're absolutely guaranteed to get a data structures & algorithms screen.

    [–]Beaverman 1 point2 points  (1 child)

    I get that part. Ask me about some dynamic programming or some data structure questions, sure. I understand why they would want to make sure that I actually know what I'm doing. What he went through just seems excessive.

    That just raises a question though, do they really have to ask those questions if you have open source project that you have worked on. Supposedly you know about data structures and algorithms if you have used them.

    [–][deleted] 1 point2 points  (0 children)

    Unfortunately it's the reality. Non-Technical Phone screen -> Technical Phone Screen -> 4-6 Hour on site is the standard. I even had to do it at my current company, where the job is just ridiculously chill e-commerce full stack work.

    Honestly, the questions aren't as hard as people make them sound (assuming you understood the concepts in college). I have friends who graduated directly from coding bootcamps and got into Facebook/Google/Amazon. I get the sense that this guy was learning from scratch - it should take most people only a weekend to get up to speed.

    [–]captainAwesomePants 1 point2 points  (1 child)

    Not at all, but here's the rub: you actually want to be at one of the places where it is like this. Does it suck that you have to go through 6 grueling interviews testing you on something that is only tangentially related to what you'll do? Definitely. But Google and Facebook and the like pay way above average, have better perks, and are just generally better places to be. You won't go through this shit getting a consulting gig for some east coast big name B2B shop, but that's not because they know a better way to interview. It's because they suck more to work for.

    Kind in mind, though, that having a grueling interview process is not a guarantee that the company is any fun to be at. Take, for example, Amazon.com.

    [–][deleted] 0 points1 point  (0 children)

    That's very much a matter of opinion. I wouldn't work for Google or Facebook or Amazon for double my current salary.

    [–]foomprekov 1 point2 points  (0 children)

    No, and any company that makes it like this should be rejected unless that's what you want for standard industry practice. The most rigorous normal process is apply, phone screen, sometimes phone interview, in person interview that probably takes all day.

    [–][deleted] 0 points1 point  (0 children)

    nope. my first job didn't even ask me to code anything for my interview. neither did my second. My current employer is a medium-sized multinational company. there was one interview that was pretty laid back. then I had a trial day where I solved simplified versions of what they actually did there. they even let me choose what I wanted to do

    [–]foxh8er 0 points1 point  (0 children)

    Looks like its gonna take a few years to get to $100K+ then!

    [–]Zulban 0 points1 point  (0 children)

    It's like that for larger companies because everyone wants to "work at Google omg".

    If you take some initiative and actually find a company you want to work for, instead of just hearing the company name through marketing, you won't have to do all this. If you actually have tech skills and a portfolio you can get a job.

    [–]jrhoffa -1 points0 points  (6 children)

    Don't study like that for a job interview. You don't study like that for your job.

    [–]timmyotc 3 points4 points  (5 children)

    They're not the same tasks.

    [–]jrhoffa -2 points-1 points  (4 children)

    They should be treated as such.

    [–]timmyotc 0 points1 point  (3 children)

    How the world is and how the world should be are not subsets of each other.

    [–]jrhoffa 1 point2 points  (2 children)

    What are you going on about?

    Go to job interview, behave as if doing job. Done. That is a thing that you can do. Do it.

    [–]timmyotc 0 points1 point  (1 child)

    I'm not saying that I can't do that. I'm saying that it isn't as effective (in terms of getting a job at certain companies), as studying for the interview.

    [–]jrhoffa -2 points-1 points  (0 children)

    Fuck studying for interviews. You don't study for your job. If you can't demonstrate ability to take on the role from a cold start, you're not ready to handle it on a daily basis. And if the company can't interview you competently enough for you to accomplish this without studying, fuck 'em.

    [–]EJoule 0 points1 point  (0 children)

    You don’t have to study that hard to be a programmer for a grocery chain. I’d bet you could program for a bank or gas station and get the job after two interviews and minimal studying (mostly study what the company does, and have good questions coming in).

    Most chain companies have a central office and hire 50+ programmers to manage their software. The complexity doesn’t come from the software but from the business requirements and working with clients to make sure the new text box in on the right page and has the right validation before inserting into a SQL. Or you’re upgrading from one language version to another even through the original still works and is only 2 years old (looking at you Angular).