8 ms·
This was a good read. Many tech companies (and some non-tech companies) talk the talk about hiring from a diverse crowd, then interview them as if they're all C
by _0o6v 5y ago
This was a good read. Many tech companies (and some non-tech companies) talk the talk about hiring from a diverse crowd, then interview them as if they're all CS bros (reverse a tree, "justify the text" bullshit leetcode nonsense, 8 hours of interviews), the exact kind of stuff that people from diverse and non-traditional backgrounds don't know and don't care about.
- mylons 5y agoLeetcode interviews _are_ nonsense, but not even preparing for them as they’re the predominant format, is just showing a lack of preparation.
- sneak 5y agoThis is how you make it worse for the next person. Life is too short to engage in nonsense unnecessarily.
- mylons 5y agoI don’t disagree. You can choose to interview at places that do not perform these types of interviews.
- jabedude 5y agoI agree, but I don't think this is a place where it is fair to expect developers to "vote with their feet" and not participate in these interviews. The companies who do data structures and algorithms interviews seem to pay the highest in the industry
- slumpt_ 5y agoYou have to pay a lot (+ a lot of perks) to get folks to tolerate the amount of bullshit you put up with at a FAANG. There is a world of other more enjoyable and educational opportunities out there they must compete with. And so the cash shovel must be pulled out. People vote with their feet, and then a new generation of fresh grads are lured by the pay to fill their role. They’ll grow sick of it in a few years, rinse and repeat.
- BiologyBum 5y agoJN
- hrktb 5y agoArguably you have a chance to change things from the inside once you’re in. I know it’s not a good advice in general, but regarding recruiting in particular, it’s a more realistic proposition.
- lisper 5y agoSocial signaling is too important not to engage in "nonsense" on occasion. Geeks resist this, thinking that their special flavor of technical knowledge, which they alone possess, should transcend a million years of evolution that produced monkeysphere dynamics. The situation is laden with all manner of irony.
- sneak 5y agoThis is a straw man: choosing not to work for fools is not opting out of social signaling. If you know how to program, you have lots of options.
- lisper 5y ago> choosing not to work for fools is not opting out of social signaling. That depends entirely on how you choose to define "fools".
- filoleg 5y agoAgreed. I am quite ok with being a "fool", if it means working for a FAANG tier company and collecting FAANG tier compensation. I am not going to disadvantage myself by refusing to participate in this on some questionable principle. While I agree that Leetcode-style interviews are not the overall best, I am yet to come up with an alternative that addresses all those issues without introducing massive new ones. So it is a compromise. And as long as this compromise stands, I am fully intending on getting the most out of it.
- andreilys 5y agoLeetcode prep is still better than spending hours on a take home assignment where the work often doesn’t transfer to other interviews. Personally I think 6 Leetcode interview loops is better than 6 take homes, but that’s just me.
- AshamedCaptain 5y agoExactly. Does anyone think that even "non-self-taught" programmers may remember off-hand "how to reverse a binary tree" ? Interviews require preparation. They may be terrible selecting interview questions, but neither that nor being "self-taught" are valid reasons to claim "you can avoid preparing this interview".
- unilynx 5y agoThat's what I wondered about too.. OP knew about HN but hadn't picked up about how interviews apparently work at a lot of companies nowadays - the whole 'leetcode' stuff. Never had to deal with that, but heard plenty about it after just couple of weeks lurking on HN. Ah well, probably goes to show that everybody picks different threads/posts to read
- mylons 5y agoIt also might show some professionalism and interest if the interviewee were to ask “what kind of interview can I expect such that I can best prepare?”
- Alex3917 5y ago> not even preparing for them as they’re the predominant format, is just showing a lack of preparation. Why would you spend six months preparing for them when you could build and launch an entirely new product in the same amount of time, which has a much higher expected value?
- mylons 5y agoI don’t disagree. The author’s stated objective, though, was to find a job and went through this process willingly.
- bootwoot 5y agoDoes it have a higher expected value? If you land the job, you have a guaranteed, pre-specified income. Probably a high one, depending on the company. The massive risk of failure with launching a product should dramatically lower the expected value. Especially since most products, even if successful, won't pay as well as the corporate job.
- deleted 5y ago[deleted]
- compiler-guy 5y agoThe author had failed at launching two different products over the past few years, so it isn't a gimme at all.
- porb121 5y agoYou must be some incredible entrepreneur for that EV to be much higher. Strong leetcode skills print money with far less uncertainty than starting a company.
- de_keyboard 5y agoThey are testing your ability to jump through arbitrary (and sometimes challenging) hoops.
- msoad 5y agowhich sounds similar to working on a large system, doesn't it?
- sidlls 5y agoNot really, no. At least nowhere I’ve worked. Currently I work at a company that recently went public and operates near FAANG scale. There are some interesting technical debt issues to overcome and these are challenging. But they’re not arbitrary or capricious. Most importantly they’re not correlated at all with our interview questions, which are designed to select people with recent exposure to mid- and upper-level textbook CS problems. That is, they’re going to naturally select from privileged groups (generally white and wealthy Asians who have attended top-tier universities).
- pankajdoharey 5y agoI dont agree many of the word problems on Leetcode i.e simple and medium dont even need you to read a datastructure or algorithms book, what is required is some good logic and basic knowledge of a language. Then its just the way you approach the problems so they are actually very good problems and will definitely make you think better, clever and maybe just maybe make you a better programmer. It is more like solving math puzzles in school, no one can deny the usefullness of those math puzzles in making you think hard.
- gedy 5y ago> "is just showing a lack of preparation." I think that puts a negative tone on people with other degrees than CS, even if they have good software experience, or are older with life commitments. Jobs and interviews in past did not ask this stuff, yet it's now implicitly considered prep. It's biased towards new CS grads and young folks. Many/most? companies needing devs do not use/need these CS "fundamentals", which do not automatically correspond with tech skills needed to do product development, at least in SaaS world.
- hiq 5y ago> as they’re the predominant format Are they? I often read this on HN, but I'm starting to wonder if there's not a selection bias that's even bigger than I expected. Beyond the usual suspects, I've had more coding assignments for instance.
- kache_ 5y agoYou do not need to be a CS bro to learn the basics of data structures & algorithms. If you're a self-proclaimed autodidact, couldn't you just learn it yourself? Of course, hnewslets who get filtered by such interviews will come downvote in force.
- notacoward 5y agoThe basics? Yes, certainly. The hyper-specific bits and pieces that show up over and over again in interviews? Not so much. Those are selected because they can fit into an interview time slot and be graded consistently despite widely varying skills among the interviewers. A lot of important and interesting algorithms are too complicated for that, but knowing them is no help in an interview. Mostly those interviews test for recent exposure (either from being a recent grad or from having the luxury of spare time) which is not strongly correlated with ability to perform the job itself and can even be considered discriminatory.
- porb121 5y ago> The hyper-specific bits and pieces that show up over and over again in interviews One would think the same topic showing up "over and over again" would make it easier to study for interviews
- Apocryphon 5y agoThe reoccurring problem set being finite does not prevent it from being large, or costly to prepare for in terms of time.
- NeutronStar 5y agoWhen's the last time you had to reverse a tree without the help of the internet at your current job?
- everdrive 5y ago>CS bro >self-proclaimed autodidact >hnewslets This really isn't a place for lazy, ad hominem attacks.
- jan_Inkepa 5y agoOTOH this is standard interview-curriculum stuff that people can prepare for, which is fair in its own way. Moving away from this can also put people at a disadvantage because it makes it harder to know how to prepare for interviews. (I say this as someone with a weird background/employment history who'd be at a fair disadvantage in many respects if they had to get a normal job - but I know I can get a bit of normie cred by brushing up my algorithms at least...)
- k_sze 5y agoI would argue that “preparing for interview” is exactly what’s wrong. Nobody should be “preparing for interview”, especially the really hardcore technical kind of interview, unless the job itself really is about hardcore technical stuff. Most of the time the job isn’t hardcore technical stuff, and so the performance during interview has zero correlation with performance on the job.
- MattGaiser 5y agoTo me the really bizarre thing is that I so rarely talk about things I have actually done in interviews. Even for system design ones, I am often repeating information out of a book that I read as that is the correct theoretical answer. I suspect you could teach someone to pass a lot of tech interviews without them ever building a production system.
- guitarbill 5y agoYou can teach that. You can even pass most tech interviews without having ever touched version control or knowing how to use it. Maybe that's an easy thing for candidates to pick up once hired, but then so are algos you never need in day-to-day programming (like sorting), because you can simply look them up should you ever need to implement that. It's all a bit broken. Best method I've seen so far is to sit down with candidates and pair on some code, and it's still got issues.
- ionwake 5y ago
- bajsejohannes 5y agoUnpopular opinion, maybe, but: I don't really get why "reversing a binary tree" seem to be used as an example of what's wrong with hiring. I will say, though, that if someone said "how do you reverse a binary tree?" I would have asked the follow up question: "what do you mean by that?". If asking that would be used against me, sure, that's bad hiring. But if the answer is: "swap all the left and right nodes in a binary tree", then... isn't that pretty basic programming?
- tfehring 5y agoIt's funny, I've heard "reverse a binary tree" as the canonical coding interview algorithm question for over a decade and I've never stopped to think about what it actually involves. But I just Googled it and it seems like you're right...and yeah I feel like if you know how recursion works and you know what a decision tree is, it seems like a pretty trivial question.
- UK-Al05 5y agoIt's a common joke interview question. I don't think anyone has acutally asked it? I find high end jobs tend to ask some form of problem that can be tackled using dynamic programming techniques. Maybe couple of easier ones in the first interview. I agree with most people. I never use these skills in the job. I think they're a intelligence test in disguise.
- tfehring 5y agoOh, if it's just a joke that went over my head then that totally makes sense! Though in fairness there are apparently-serious interview questions that are even easier (e.g. FizzBuzz, though I don't think anyone asks that anymore either) and I've been asked interview questions that aren't much harder. I mostly agree with your impression, though even after adjusting for intelligence I bet there's a positive correlation between knowing how B-trees work and, say, having a good intuition for how to index a database.
- pokler 5y agoFor me, the 'reverse a binary tree' question goes back to the creator of Homebrew being rejected from Google for not being able to answer that question: https://twitter.com/mxcl/status/608682016205344768?lang=en https://twitter.com/mxcl/status/608682016205344768?lang=en
- andreilys 5y agoNothing is stopping people from diverse and non-traditional backgrounds from learning DS&A, and spending a few weeks practicing Leetcode. It’s not some arcade high art, it’s quite accessible with lots of great learning guides. If you choose not to play the game, your pool of potential companies will be quite limited.
- criddell 5y agoI've always wondered if these companies have data to support their hiring routine or if it's just a filter to convert an overwhelming number of applicants into a pool that's manageable? On the other hand, reversing a tree and problems like fizz buzz are pretty low bars...
- jkhdigital 5y agoOf course they have data, but there are an infinite number of possible interview strategies and the current approach is at best a local maximum.
- chrisdinn 5y agoTo piggyback on this solid comment, a lot of times it’s us engineers who can fix this. I sat on L5 hiring committee at Google for a while and I really believe what diverse-background candidates need is more support at HC. I could sell these candidates to the committee often, with minimal effort all they needed was a champion at committee. That can be you, dear reader, at many of the big tech companies. Mostly HC is a ton of work (eg read 8 full interview packets a week) so if you express an interest and are a decent interviewer you’re likely to get shot at it and you can make a real difference.
- freyir 5y agoLeetcode interviews are exactly how I, as someone from a non-traditional background, got a job at a tech company. I didn’t need to know 4+ years of CS curriculum, which I never would have learned on my own. I just needed to spend some time learning algorithms and data structures, and practice using free resources on the Internet. A pretty good deal for non-people who didn’t study CS in college. In fact, someone who studied CS in college might be slightly miffed that they offered a job to an outsider like me just because I practiced data structures problems in my free time.
- dcow 5y agoI honestly didn’t really think it was all that interesting a read. Author burned out developing new products after an angel round “ruined” their company. Author wouldn't work at FAANG for “idealogical” reasons. Author doesn't know basic data structures and algorithms and applied to companies that index on that type of skillset. Author’s tool belt is Windows and they’re looking to join macOS shops. It’s a string of poor decisions/planning followed by an unproductive rant. I don’t particularly like leet code style interview questions either, Author could take a few months and brush up if they’re a proficient engineer or if they’re really opposed then pre-filter companies based on their interview style. Author could find a corporation outside of FAANG that isn't idealogically abhorrent. Author could look for windows shops. Author could consult (sounds like they’ve been successful with this approach). I suspect the author just isn’t that great of an entrepreneur and tried to pivot into a high paying engineering role they just aren't really qualified for either. I agree about the SF observation at the end. If SF culture isn't working for you then explore elsewhere. I wish more people realized this before assuming they need to be in the bay area to be successful. It’s a pretty limiting and potentially damaging assumption and I’ve seen people get super distraught about the idea of being anywhere else because they drank all the VC urban tech hub cool-aid and are just starting to come down.
- commandlinefan 5y agoI couldn't help being struck by "I needed to take a break and get over my burnout." Must be nice... I've been continuously employed since 1992 because I've had no choice but to be continuously employed since 1992. Burned out or not, the bills don't stop coming: if you're in a position to "take some time and focus on yourself" in between jobs, you're in a very fortunate place.
- deanmoriarty 5y agoAre you in a software engineering job in the US? If yes, how is it possible that you couldn’t save enough in 30 years to take a break. Feel free to ignore if the answer is no.
- 5y ago
- lumost 5y agoI learned CS fundamentals after graduating with a non-CS degree. It was hard, but I enrolled in a few classes through Harvard Extension School which provides access to Harvard classes to anyone and self-study. CS fundamentals have a big impact on the kinds of programs that individuals can write. Asking questions to show that a candidate can write a DFS, leverage multiple data-structures, or do X helps ensure that the individual is capable in this regard. Even for experienced candidates with lengthy portfolios you may find that someone drifted into an operational, management, or product role and has forgotten how to effectively program. However, the format of the whiteboard interview is awful and if one doesn't practice for it it won't turn out well. I'd love for there to be an alternative, but the other options all have their own cons. 1. Take home tests/projects - Requires the candidate to invest time which they may not have. - At scale this process is easily gamed. 2. Github projects/portfolio review - Many candidates don't have time to work on open source - The median github project has a low code standard, and is usually made for the purpose of learning something new. 3. Pair coding - Many candidates hate pair coding, personally if a company mentions that they do this in day to day work I will not work for them. - Difficult to calibrate. The only alternative I've seen is a "functional interview". Where the candidate is given sample code reviews for standard applications or a broken program to debug.
- guitarbill 5y ago> CS fundamentals have a big impact on the kinds of programs that individuals can write Sadly, there seems to be very little correlation though. I've known programmers who graduated from a top CS school with extremely strong CS knowledge, who still write barely comprehensible code. And vice versa, people who have never been taught big-O, but who write the most maintainable, well-reasoned code I've seen. Most programmers aren't building e.g. databases, but writing software that provides business value. Take home tests can be ok, as long as they are limited in time (<2h). I was adverse to pair coding, but found it to be not as bad as I thought, unless it's 100% pairing all the time. Well, whatever the solution, I think anything that's closer to what day-to-day work at a company looks like is going to give richer feedback/signals than whiteboarding.
- 5y ago
- motogpjimbo 5y agoI'm not necessarily agreeing with FAANG hiring practices here, but your comment is a classic example of the "racism of low expectations". Arguing that candidates who are "diverse" can't pass the same tests as a "CS bro" is no different from arguing that voter registration laws are racist because black people can't afford the internet, phones or cars to get registered. You're revealing quite a lot about what you think about "diverse" people without intending to.
- _0o6v 5y agoPlease don't lecture me about what I do and don't think, thank you.
- Bukhmanizer 5y agoI disagree completely. As someone from a non-traditional background, I think CS interviews dramatically increases the opportunities for me. I can’t change my background, but I can prepare for coding interviews. I can’t help but feel that people who think otherwise have never worked in literally any other field for any amount of time. Like it or not, you have to narrow down any candidate pool to like 1% of applicants before doing any sort of in person interviewing. Most places do this by only hiring people with degrees. If you’re talking about a job that’s going to pay as much as a software engineer, you can probably get away with only hiring people from elite universities, or who have connections within the company. Frankly to me the author comes off as arrogant and entitled. He feels he shouldn’t have to prove his worth because... he ran a failed startup? Then when his friends give him a job, literally the definition of nepotism, that still isn’t good enough? What does OP want? A system where only the best jobs are gained by nepotism?
- dnissley 5y ago> the exact kind of stuff that people from diverse and non-traditional backgrounds don't know and don't care about This attitude is condescending towards those that come from diverse and non-traditional backgrounds, most of whom are perfectly capable of learning and developing an active interest in these subjects.