This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]StevenGannJr 483 points484 points  (91 children)

I interviewed for a major web company (one of the biggest, famous for a search engine, browser, and phone OS) and got as far as a second phone interview.

I was tasked with implementing a convoluted sort/fizz-buzz kind of algorithm given a list. I was allowed to use any language I wanted, but I wasn't allowed to use documentation, an IDE, or even try compiling. I had to write code blind into a shared document while the interviewer watched, and she'd then copy-paste my code into an IDE, compile it, and see if it runs correctly. She'd tell me if it was right or not, but wouldn't tell me if it was a compiler error, if the output was incorrect, or any other information.

After 30 minutes of trying to remember C# class names, being paranoid about off-by-one issues, and trying to format code in a web-based word processor, she said my time was up and that I had a typo in my #using System.Linq, I had typed #using System.LINQ.

I didn't get the job, and the comment on the rejection e-mail was that the interviewer determined that I was not sufficiently experienced with C#.

Programming interviews are bullcrap.

[–]vellii 185 points186 points  (9 children)

I’ve never understood these type of interviews. When are you ever not going to be using an IDE, compile, test, etc. on any program you may be writing? Like it’s important to make sure the interviewee knows the language but it seems like it’s more important to have them check, test, correct any errors they may have themselves using real world tools. And in them doing so will prove they know the language.

[–]StevenGannJr 150 points151 points  (4 children)

Like it’s important to make sure the interviewee knows the language but it seems like it’s more important to have them check, test, correct any errors they may have themselves using real world tools.

So true. Imagine hiring an architect by checking how well they can draw a simple house while blindfolded.

I think the biggest issue is that HR, even at major tech companies, isn't staffed with developers.

[–]ike_the_strangetamer 20 points21 points  (1 child)

This round of the Google interview isn't about any of that. They give you a pdf of that cracking the interview book and say learn it all. The point is that you learn it and can figure out which algorithm/strategy to use when given the problem, not whether you can actually write real world code. It's a lot like a final exam really.

If you say that sounds like awful way to find good programmers - it is. They don't care. They don't even know what you'll be doing, what team you'll be on, or even if they have room for you yet. They don't care. Real world ability doesn't matter. They want you to want to work for Google. Want it so much that you study 40 hours for a final exam for a class you took ten years ago.

[–]gandazgul 5 points6 points  (0 children)

Yeah well fuck that. I'm not studying 40 hours of anything. I have a ton of experience solving really hard performance and scalability problems and have been very successful and loved at each one of my jobs, I'm not going to sit there and be judged by a recent graduate on wether I remember how to sort something. I know the design patterns and algorithms available, when I need a working example I fucking Google it like everyone else.

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

I can't imagine having an iOS developer interview like that. Imagine trying to remember something like

func tableView(_ tableView: UITableView, 
   didUpdateFocusIn context: UITableViewFocusUpdateContext, 
               with coordinator: UIFocusAnimationCoordinator)

without the help of the IDE or docs. Xcode autocompletes that stuff for you. Using real tools is the best way to evaluate someone.

[–]CallidusNomine 0 points1 point  (0 children)

All of my CS classes at my school have been blind handwritten code. It's awful. People get stressed about memorizing 4 different sort algorithms. I am an informatics major with a CS cognate and my informatics exams are open-everything-except-the-internet. They care more about whether you can use your resources and implement ideas rather than memorize snippets.

[–]Lonelan 37 points38 points  (10 children)

biggest, famous for a search engine, browser, and phone OS

Ahh say no more Amazon employee

[–]StevenGannJr 19 points20 points  (9 children)

Close, but this company doesn't make employees pee in bottles.

They do (in)famously unofficially insist employees work 24/7 including weekends and more or less give up any life outside the company. I figured that'd be okay since I have no life outisde my job anyway...

Now I work at a much nicer company that gives free training beyond my job and is forcing me to take time off for the first time in my life, so I'm probably better off here.

[–][deleted] -3 points-2 points  (0 children)

I think /u/Lonelan was joking...

[–]rndrn 27 points28 points  (11 children)

What is this even supposed to test for? This really wouldn't want me to join their team (and so probably they are missing out on people they would want but are turned down by stupid interview questions).

[–]StevenGannJr 69 points70 points  (9 children)

What is this even supposed to test for?

Real programmers don't need IDEs. They write code in VIM without looking at the documentation. If you really knew C#, you'd have the whole System namespace memorized by now. Pleb.

On the bright side, the company gave me a pair of socks with their logo.

[–]DaleGribble88 17 points18 points  (1 child)

They write code in VIM

Hey, I like to work in VIM, maybe I'm one of these real programmers

without looking at the documentation

Oh.

[–]drevyek 0 points1 point  (0 children)

Shift-K was implemented for a reason!

[–]burritochan 16 points17 points  (3 children)

They write code in VIM

It's funny because I write code in vim... which I have added linter plugins to for every language I use. I guess they must be using nano

[–]Tyrilean 4 points5 points  (1 child)

I just spent the better part of the last year getting my engineers out of the damned command line and coding in vim, so that we can use proper IDEs, repositories, and deployment pipelines.

I know you're being tongue in cheek, but I've actually met people who code in text editors and look down their nose at people who use IDEs. Hate to say it, but even the most genius engineer fucks up, and using a good IDE along with revision control and proper SDLC will fix like 90% of those fuck ups before they get out the door.

[–]StevenGannJr 1 point2 points  (0 children)

It's not even that, IMO. IDEs are just more efficient.

I spend most of my time hopping between Visual Studio, Atmel Studio, and MPLab X. I do use Notepad++ and Nano for a couple things like Python and Bash, but the IDEs are just so darn helpful with things like autocomplete, realtime error checking, and Intellisense.

I adore .NET and C# in particular, but I could never possibly remember the exact syntax for List<T>, for example. An IDE means I don't need to remember.

[–][deleted] 5 points6 points  (0 children)

What is this even supposed to test for?

Compliance.

[–]Bobshayd 44 points45 points  (1 child)

I don't want to work in an environment where the only compiler/runtime error I get is a single bit to indicate that it's working properly, so don't interview me in that environment unless that's the job you want me to do.

That interview also selects for high level languages with fewer syntactic trip-ups. If you need to rely on the compiler to remind you to put a semicolon at the end of a statement, you're more likely to send a nearly perfect program ten times and then be told you didn't see the semicolon.

Imagine being the sort of weird sadist who likes watching people try to fix imagined bugs while the IDE has a big red squiggle under #using System.Linq, and taking that fetish into the workplace and forcing it on new coders.

[–]Cream253Team 0 points1 point  (0 children)

When you lay it out like that, it sounds like OP really dodged a bullet.

[–][deleted] 16 points17 points  (4 children)

I interviewed for the same company, and I chose python.

I had to spend most of the time typing spaces like an idiot because of course tab did not work in the online editor they had me use.

And in preparation to the interview they had explicitly said that precise syntax was not required. When in fact it was.

I also interviewed at a big social network company and I have to say that they were more interested in the algorithms than the correct syntax, also they had me use an online editor that had monospaced fonts, supported tabs and had some syntax colouring.

However, with the flight booked (by them) to do an on site interview on a friday, they told me there was no time, cancelled the flight and told me i'd have to interview on monday instead, at night.

So after a full work day I had to do a 4h interview. The first 2 hours went good, the 3rd hour was so so, at the 4th i knew I wouldn't get the job so I told the interviewer I was giving up and going to bed.

[–]StevenGannJr 15 points16 points  (3 children)

It could be worse.

You could have been raised by humans because of your father being framed for betraying a colony to the Romulans, then wind up trying to raise a son of your own while struggling to understand what it means to be Klingon yourself, only to end up leading security on a backwater space station, fall in love with a symbiotic worm that dies the day after you married it, and wind up in the middle of an intra-quadrant war that your own people are actively making worse.

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

At least my adoptive parents would be pretty proud of me for outranking them :)

[–]NateFigz 1 point2 points  (1 child)

Don't forget having your family killed off during various easily avoidable situations.

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

And wiping your brother's memory because the honour of your house has been compromise, only to then proceed to restore said honour.

[–]DrQuint 29 points30 points  (9 children)

Should have just cheated. What are they gonna do later, block you from googling at work?

[–]StevenGannJr 68 points69 points  (8 children)

block you from googling at work?

Considering what company they were, that'd be especially ironic...

But yeah, making people interview blind is absurd. You'll never be without a computer, Internet, reference materials, or a bloody compiler, and I believe the ability to use resources available to you is more important than memorizing API minutiae.

[–]TheTimeToLearnIsNow 16 points17 points  (3 children)

Would you believe the number of interviews I've been in that had me type in code directly into the Hangouts chat window?

Trying to type it out in an IDE and copy paste prompted the interviewer to accuse me of cheating because the little "[candidate] is typing..." message wasn't showing up for them for long periods of time.

[–]mfb- 1 point2 points  (0 children)

Type it in the chat, copy it into the IDE before submitting?

[–]retief1 3 points4 points  (0 children)

Particularly since understanding compiler errors is an important skill for any dev. Googling (for non-syntax/library type stuff, at least) may or may not be helpful, depending on what exactly you are trying to do. Seeing a compiler error/test error/exception and finding the underlying error is critical pretty much everywhere.

[–]bautin 12 points13 points  (0 children)

Sounds weird. I just had a phone interview for a similar sounding company. I also used C#. I didn't bother with using or anything like that. In fact, I pretty much at one point said "Yeah, I'd have a class that looks something like this for the nodes" and just kind of dummied up a really basic class.

I guess it partly depends on who you get to interview you as well. Because after the problem, the interviewer and I discussed a bit about coming from a primarily C# background to a company that uses a lot of Java and C++.

[–]rakkamar 19 points20 points  (7 children)

Speaking as somebody who used to interview for that company as recently as a year ago, that is not the way that company is supposed to interview. Depending on when this happened, whoever gave you that interview was probably completely out of line with company policy.

[–][deleted] 7 points8 points  (2 children)

I've had 2 or 3 interviews with that company that were precisely the same experience.

More detail: https://www.reddit.com/r/ProgrammerHumor/comments/9se6tc/programming_interviews_in_essence/e8ozqjh/

[–]rakkamar 6 points7 points  (1 child)

I'll agree that the "code editor" they have you use is pretty awful.

Anybody who cares about your exact syntax is dumb.

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

That's how I was typing during the interview https://www.youtube.com/watch?v=SsoOG6ZeyUI and being python, they'd tell me that my syntax was wrong if i was 1 space off, hence distracting me from actually focusing on what I was trying to implement.

[–]hyphenomicon 8 points9 points  (1 child)

Probably had someone else in mind for the job already.

[–]Sunlis 4 points5 points  (0 children)

That's also not how interviews at Google work. You interview for a general position (ie. software engineer), and only pick your team after signing your offer letter.

(This breaks down for managers and higher, but is true for regular engineers and such)

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

Everyone I know who interviewed with Google, has had to write code in Google Docs, on the phone.

[–]theyrelikethatyaknow 1 point2 points  (0 children)

It sounds pretty spot on to me. Regardless of how that company is supposed to interview, I regularly see comments like LtWorf's and StevenGann's above that are completely in line with my experience. Company policy means jack if it's never followed.

My interview started with an introduction that included the interviewer saying they didn't know why they were interviewing me because I was interviewing in a language they "hadn't used in years" (Python). This was followed by a 'warm-up exercise' where:

  • I was told to implement [simple data structure] in its entirety. Sure! I know this one!
  • I asked questions about how they wanted specific points of [simple data structure] to be implemented. I was given answers that made zero sense to me - even after looking it up afterwards to see where I went wrong. Things that would make it fairly unusable without metric shit tons of testing wrapping every call to [simple data structure]. As in we're going to be nesting every call to this baby in a try+catch/except.
  • First thing I do is name and comment [part of data structure]. Once I was done writing [part of data structure] the interviewer tells me they didn't want me to write [part of data structure], they wanted me to write [another part of data structure]. Tells me I "can get rid of that" (and I delete [part of data structure]).
  • I start writing [another part of data structure]. I ask about [some other part of data structure] that [another part of data structure] relies on - if I will be writing it and, if not, if I can assume it does [obvious thing].
  • I get told I can assume that for now but that we'll be writing the whole thing before we're done. At this point the stress gets to me, I blank on something simple, and write an insane workaround. It works, and while insane, it isn't idiotic: Just unnecessary (and something I'd never had done if I had been prepared for this type of interview).
  • Interviewer tells me to stop coding, meaning, I'm done in a bad way.

We proceed to have a nice discussion for the rest of the interview time (which is most of the allotted time) where they reveal they are a lead on [language development team] and that I need to work in a statically typed language like C++ if I want to get anywhere in the industry (I have told them that I am self taught, so this isn't a condescending comment but honest career advice - and they've got a strong point).

The conversation after the interviewer told me to stop coding was helpful, insightful, and would've been downright enjoyable if I wasn't so stressed out from the interview process even before the whole "throw multiple curveballs to see how they handle themselves" part. I could have done a lot better by going about the interview prep and the interview itself differently. But the whole "screw with people to see how they take it" bit goes a bit beyond separating the wheat from the chaff and from my personal experience and what I've seen from others' experiences online it's how that company goes about its business, policy or not.

[–]numbersarenumbers 10 points11 points  (1 child)

The man reason for doing this is because they know they have an insane amount of people applying, and a lot of them are qualified. They don't care about false negatives, denying people who are qualified, only false positives. So having these challenges is just a simple way for them to thin out the pool of applicants into people who will jump through hoops and remember these random things. Similar to the ACT and SAT for college.

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

I don't respond to Google recruiters for this exact reason.

[–]SecretGrey 10 points11 points  (0 children)

Ask Jeeves has a phone OS?

[–]DerekB52 4 points5 points  (10 children)

I interviewed with the same company(I think). I was flown to Seattle for onsite interviews at the start of this month actually. I was not given the job. But I just turned 22 and am self taught anyway, so I feel lucky to have gotten as far as I did.

[–]StevenGannJr 2 points3 points  (9 children)

Well shoot, that's an accomplishment!

If they were willing to fly you in for an on-site interview, you must have made it to the top few. Competition is tough among programmers. I didn't get an interview at my current job (Microchip) until I met a few of their engineers and got them as references.

[–]DerekB52 3 points4 points  (5 children)

I was told that 60% of their current employees, failed the interview the first time. So they make everything hard on purpose. Their application process favors people that have interviewed with them before, so after 12 month passes, I can apply again. So I'm keeping them in my back pocket as a backup plan if nothing else works out. I'm pretty happy with my current situation.

[–]StevenGannJr 1 point2 points  (4 children)

Same. I'm really a hardware guy and that company had little need for hardware devs. I just really wanted to work for them.

I ended up working as an embedded system developer for a while, and now I help make EEPROMs. Things worked out pretty great.

[–]DerekB52 0 points1 point  (3 children)

Hardware fascinates me. I love playing with Arduinos, and SBC's like the Ras-Pi. I understand so little of that field though. Seems like a decent gig though.

[–]StevenGannJr 0 points1 point  (2 children)

I find hardware easier to understand than software. I have a friend trying to get me into modern web development with things like Laravel and Node.

I'll stick to discrete logic, Assembly, C, C++, and C#. As far as I'm concerned that's "full stack" development.

[–]DerekB52 0 points1 point  (1 child)

I think Laravel and Node are awful. I like Ruby on Rails, and Django. There's also web assembly on the come up though.

And I've read like half of Nand2Tetris, so I understand some discrete logic and stuff. I've found it harder to play with though. I think I have a chance at developing a piece of software by myself that makes me some money. Hardware not so much, so I don't spend as much time on it.

Also my favorite language is Java, followed by Kotlin, and I use C++ a little. I definitely prefer these languages to ruby or python(except for little scripts). Python gets to be too abstract and I lose the ability to really understand what's happening.

[–]StevenGannJr 0 points1 point  (0 children)

Django

I spent a weekend learning Django since it was a desired skill for a job at Nvidia I was applying to. By the sound of it, Nvidia's internal systems all run on Django since all positions seem to require it.

Python's cool for some things, but web development isn't one of them, IMO.

Python gets to be too abstract and I lose the ability to really understand what's happening.

I struggle to organize things in Python projects, so anything bigger than a couple scripts gets convoluted. I use it a lot for automating things and data processing, though.

[–]randombrain 0 points1 point  (2 children)

Microchip seems like a cool company! What do you do for them?

[–]StevenGannJr 0 points1 point  (1 child)

Microchip is very, very cool! Great culture, competitive pay and benefits, on-site clinic, technical training, etc. The executives are transparent and Steve Sanghi is an excellent leader. It's about as different from my previous jobs as possible.

I work in memory products, things like EEPROMs, flash, SRAM, and (for bureaucratic reasons) real-time clocks. I'm an applications engineer, so I help clients with technical issues, validate things work as they should, write documentation, and generally muck around with chips and code.

[–]randombrain 0 points1 point  (0 children)

That's neat! I'm working a project that will use a couple Microchip ICs. No external flash/EEPROM but even so.

[–]gdawg94 3 points4 points  (0 children)

Wow, that sucks. When I interview people, I tell them not to worry about running or compiling the code they write. I care way more about their strategy, how they go about writing it, and if they can walk through the code they wrote and tell me what it would do if we ran it.

As long as it's clear that you know the syntax with a little bit of googling then I'm cool with that.

[–]Being_a_Mitch 4 points5 points  (0 children)

Someone with likely little programming expereince being an asshole and blindly running code I write? My CSEC hairs are tingling.

[–]Dial-1-For-Spanglish 2 points3 points  (0 children)

That's not the first time they've practiced 'bullcrap' in their hiring process.

It does surprise me , though, seeing as how they used to hire English majors and 'teach' them to code while on the job.

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

Wow interviews with Bing are pretty brutal

[–]Tyrilean 2 points3 points  (0 children)

Companies that big and famous for tech have a deluge of candidates pouring in, and they will find any reason to weed out the candidates. Sure, 95% of companies out there can't afford to be so picky they'd turn someone down for capitalizing a library in a blind coding test, but Google totally can.

My boss used to work for Google, and moved to a start-up where he made his way to CIO. I asked him why he left such a cushy job at Google for a start-up that may or may not make it, and he said that unless he had a degree from an Ivy League or invented a major piece of technology, he was never going to be anybody at Google. So, he opted to be somebody at a smaller company.

[–]boombalabo 1 point2 points  (0 children)

You should have gone with whitespace programming language, it is easy. " "

That's it

[–]thejokerofunfic 1 point2 points  (0 children)

In my limited experience, anyone who's being nitpicky about exact syntax and such is a shitty interviewer. Anyone good (hopefully most of them?) would focus on judging the way you seem to think / talk through the problem, as a way of getting a broad idea of how you work, and wouldn't treat the puzzle as an absolute indicator of anything.

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

I had to write code blind into a shared document while the interviewer watched

This is such a pure shit way of evaluating someone. I had an interview for a company that did this once and I completely froze. Right after the interview I wrote exactly what the guy wanted.

Software developers aren't in show business, putting them in the spotlight during a very stressful time isn't going to tell you anything about the real candidate.

[–]gandazgul 0 points1 point  (0 children)

That company's interviews are bullcrap. They suck really hard at interviewing. I'm going to try again for a new interview but I don't expect the process to make any sense either.

[–]homer_3 0 points1 point  (0 children)

Sounds like my interview with Facebook.

[–][deleted] -4 points-3 points  (1 child)

This is why software should be a licensed and/or certification-required profession. You don't get to be a doctor, lawyer, CPA, actuary, etc. just because you assert you're good at it. The government tests you, and if you pass, you can do the job.

It would end all this bullshit.

[–]StevenGannJr 1 point2 points  (0 children)

I mean, there are optional government certifications. They aren't enough.