3 ms·
> why can’t I get a $300k/year job without knowing what a trie is You're grossly misrepresenting my complaint. I've made contributions to several high-profile
by dvt 6y ago
> why can’t I get a $300k/year job without knowing what a trie is
You're grossly misrepresenting my complaint.
I've made contributions to several high-profile OSS projects (including some small HTTP core contributions to Golang), have published one book as a co-author (another as an editor; both with Apress), have several projects with 100+ stars on GitHub, and am in the top .9% of Stack Overflow contributors. This is in addition to having a few interviews out there given to legitimate outlets, like Vice and PCGamer, about past startups (all of which have involved hardware or software).
My pedigree is verifiable. And yet, if I want to switch jobs (which I will inevitably have to do), I will be subject to being asked about some algorithmic questions that I am willing to guarantee I couldn't answer without studying. For example, I genuinely don't remember how red-black tree or splay tree balancing works. But I'm small fries compared to people like Max Howell[1] (who wrote and manages brew) and yet couldn't get a job at Google because of some algorithmic question he flunked.
Fighting for better interviewing practices in software engineering is one of the few hills I'm willing to die on.
[1] https://twitter.com/mxcl/status/608682016205344768?lang=en https://twitter.com/mxcl/status/608682016205344768?lang=en
- monksy 6y agoThe fact that you couldn't remember red/black trees or splay tree balencing works is a GOOD sign in a software engineer. It means that you're not going to try to re-engineer existing solutions.
- opportune 6y agoI would be very surprised if you were asked about red-black trees or splay balancing at the two large tech companies I’ve worked for. That would be considered too niche/specific to be a good interview question unless you were applying for a position which needed that particular knowledge. On the other hand asking to “invert” a binary tree is totally fair game. I attribute Max’s frustration partially to his interviewer not adequately explaining what “invert” means in that context though that would also partially give the answer since it’s IMO a very easy problem (though not a good one since it’s confusing).
- dhanna 6y agoI agree that knowing the details of a red-black tree rebalancing is not fair game. I wouldn't bother implementing one unless I had access to a paper written by an expert like Sedgwick. Which leads into my gripe with programming interviews. My biggest problem with this culture of interviewing is that most people don't seem to know/appreciate the complexity of the questions they are asking. There's been a number of times where my interviewer completely lacks any knowledge on the background theory/history on the question they asked me. Afterwards I tend to find the question in Knuth or an Algo book. That being said, I do think knowing that red-black trees, like AVL trees, fundamentally rely on Tree Rotations to maintain invariants about the tree which ensures its height balance IS fair game, IF you require formal algo knowledge from your candidates. With that knowledge, theoretically a well-read interviewer can guide someone to towards a partial implementation. And from that knowledge, if someone would to introduce the concept of a splay tree, I could guess that since its a self-balancing binary search tree, it likely relies on tree rotations as well. You would need to bounce that off the interviewer obviously. But if you're not familiar with the concept of tree rotations, and/or data structure invariants, you probably won't succeed no matter how much coaching your interviewer provides, due to pressure on your working memory.
- deleted 6y ago[deleted]