3 ms·
Google byrocracy required from Ken Thompson to pass a C language exam. https://www.theregister.co.uk/2010/04/21/ken_thompson_take_our_test/ https://www.theregi
by acqq 8y ago
Google byrocracy required from Ken Thompson to pass a C language exam.
https://www.theregister.co.uk/2010/04/21/ken_thompson_take_our_test/ https://www.theregister.co.uk/2010/04/21/ken_thompson_take_o...
- zerr 8y agoC exam aside, I don't think he would pass a regular Big G interview, unless he'd allocate some 6 months for preps which I doubt he did.
- johannes1234321 8y agoConsidering that he is not one of the young hackers starting with JavaScript, but in a time were looking at raw memory dumps was normal operation and memory was sparsely available and CPUs were slow I assume he well knows about algorithms and data structures by heart. Most likely he implemented more binary trees in his live than I thought about and I assume he would consider a question about inverting a binary tree more of a joke than a serious question.
- acqq 8y ago> I assume he would consider a question about inverting a binary tree more of a joke If you refer to this: https://www.quora.com/When-do-you-need-to-invert-a-binary-tree https://www.quora.com/When-do-you-need-to-invert-a-binary-tr... I also don't know why would anybody ever need to implement "inverting" a binary tree except for the Google exam. > Most likely he implemented more binary trees in his live "Most likely"? Actually he "just" invented (not a complete list): - Unix (with Ritchie) (in assembly first) - the language B, based on which Ritchie developed C. - the notation for the regular expressions everybody uses today - the algorithm for fast regular expression handling - the chess computer that won the 3rd World Computer Chess Championship 1980
- johannes1234321 8y ago> > Most likely he implemented more binary trees in his live > "Most likely"? Actually he "just" invented (not a complete list): Please mind the full quote of me "... than I thought of" -- I thought (and implemented) about trees quite a bit myself and grant him a few factors on top of that.
- pjmlp 8y agoAgree with everything except for B. He implemented a BCPL dialect, which he called B, in fact if you compare B and BCPL programming manuals they are quite similar. https://www.bell-labs.com/usr/dmr/www/bcpl.html https://www.bell-labs.com/usr/dmr/www/bcpl.html https://www.talisman.org/b-manual.html https://www.talisman.org/b-manual.html
- acqq 8y agoI don’t understand with which detail of my statements you don’t agree.
- pjmlp 8y agoHis B "invention" in reality was closer to copying and dropping a few features from BCPL than actually inventing something new.
- acqq 8y agoWell, it can be argued that most of the “structured” languages were “dropping something” from Algol. Or later from Ada... yes, nothing fundamentally original happens often. But people give the names to the languages they make... even “dropping” is something “creative” often worth naming. Apparently Unix kept only minimum of Multics. Sometimes exactly the “bigger” variants aren’t fit to survive.
- jonex 8y agoSomeone who knows how to program and is at least superficially aware of different data structures and algorithms would not need six months of preparation to pass the interview. That's very exaggerated and it might discourage people who would enjoy working at Google from applying. I know I thought it would be a lot harder than it was. I spent some hours checking example interview questions, and it was definitely enough. If anything, I might have been too focused on thinking in terms of established algorithms, and too little focused on reasoning on my own.
- acqq 8y ago> That's very exaggerated and it might discourage people who would enjoy working at Google from applying. But it's irrelevant to what I wanted to point to: that somebody already accepted Ken Thompson to Google. Then some absurd bureaucracy decided that Ken Thompson has to pass the exams given to the young beginners. Probably reasoning something like somebody here "explained" "so that developers can be moved around." Whoever is not aware of these "details", please see my another post for what Ken Thompson invented before coming to Google. Such "minor things" like the Unix OS, the language that preceded and inspired C and the currently used kind of regular expressions.
- DmitryOlshansky 8y agoI came mostly unprepared, and passed just fine. In fact they extended it with 2 hours more “followup”. And I’m no superhuman. It may depend on the part of Google you apply to + it was compiler team and I love compilers ;)
- zerr 8y agoHow one would apply to such a specific part of Google? e.g. Compilers team?
- johannes1234321 8y agoIt's worth noting that this is not a simple C language exam, but a Google C style exam. Purpose is that all Googlers write as similar code as possible, so that developers can be moved around and find a common approach everywhere. Also this simplifies code reviews for the same reason.
- acqq 8y ago> so that developers can be moved around and find a common approach everywhere. Also this simplifies code reviews Would you agree with me that if you brought Ken Thompson for that to your company (or using that excuse to require from him to "pass the C exam") something is fundamentally wrong? He actually co-invented Unix and worked on the "first C" before C was even called C. https://en.wikipedia.org/wiki/B_(programming_language) https://en.wikipedia.org/wiki/B_(programming_language) It's like hiring J. K. Rowling and then requiring from her to pass the Harry Potter trivia quiz in order to allow her to write text messages.
- johannes1234321 8y ago1) since (by the time of the article) he didn't take the test he wasn't hired for writing C code 2) C can be written in many styles, whatever he writes should be an easy uptake for later developers, thus adhere to the common style I have no doubts that he can express anything in C and I assume this would be of good quality, but might take a different approach, thus makes it harder for the junior who is trained heavily in Google style and has to fix a bug or add a feature a bit later.