📜 ⬆️ ⬇️

Is it logical that Google rejected the candidacy of Max Howell, author of Homebrew, for his inability to invert binary trees?

Disclaimer: The question from the header was asked on the Quora website.
and was accompanied by a link to the tweet developer Homebrew . Answered, unexpectedly , the main character.

Hi, I'm the same Max Howell, so, in an amicable way, I probably shouldn't have answered here.



Hi, I'm Max Howell, and for the last two years I have been trying not to answer this and a bunch of very similar questions. Perhaps not worth it this time.

So what about the logic? It's clear that I created something worthy of Google, right?

Well, in fact - no, not right, not created. I wrote a simple package manager, anyone could do the same. My, I must confess, is terrible. It does not provide proper dependency management. He is not very good at borderline situations. It is poorly tested. Frankly, he's just crap.
')
Is it surprising, after this, that I could not properly answer their deep-theoretical-oriented questions?

On the other hand, my program was incredibly successful. Why? Well, the answer should not be sought in the realm of computer science. I always focused on user experience when creating my programs, and Homebrew takes care of the user. If something went wrong while using Homebrew — he tries his best to tell you why — he looks for similar problems on Githab and shows them to you. He cares about you . Most of the tools on you just do not care. Something went wrong - you kirdyk. Homebrew helps you. And if he can't help, I tried to make it so easy to correct the situation (I built in a command for editing and correcting). You can make it better, and this is a brilliant example of true Open Source.

Homebrew may not be very good at managing dependencies, but it does in the form that is closer to you. Unlike the then competitors, Homebrew is based on the use of dependencies installed on your computer. This saves a lot of time and often saves from the pain of installing programs, because, in practice, large dependency graphs are unreliable. But computer science has nothing to do with it, no graphs or trees are used there, so here I am probably a sucker.

In defense of Google - first, I not only could not invert the binary tree, I didn’t really understand what a binary tree was. I studied chemistry, not computer science. Well, yes, during the defense of my thesis, I used Mathematica to simulate the quantum mechanical properties of helium (I did a good job, by the way), but, once again, it was not about computer science at all. And on the other hand, what, strictly speaking, do computer sciences have to modern application development? That's exactly what I wanted to mention in that tweet.

In fact, Google conducted seven interviews with me, and I was not bad as a developer, because in fact, this is my talent. I am not comfortable with that tweet: it turned out dishonest, it only added oil to this hell of anger-oriented reading book, which the modern Internet has turned into, precisely because it has become so popular and it is for this that I am truly ashamed.

But in the end, could Google hire me? Yes, of course, yes. I often behave like a goat, it is often difficult with me, I often swim in computer science, but. But. I can create really cool things, maybe not perfect ones, but people really like them. Sure, sure Google could come in handy.

Some of the popular comments on the original article.
Andrew McGregor , Site Reliability Engineer on Google (2013-up to now), ~ 230 votes

I am sure that in Google you will find a place as a product manager, or a technical project manager, or even as a system engineer / support engineer, but not as a software engineer. And this is normal, I respect all such specialists ... but a software engineer must know computer science, this is practically not contested. And the fact that they moved to the wrong position ... well, it happens.



Gayle Laakmann McDowell , worked at Google, ~ 900 votes

Thank you for ringing the bells. I agree with what you said and appreciate your recognition of what I had long suspected - you just did not understand either the question or, most likely, the basics of CS.
The assumptions that Google should have hired you (assumptions of other people, not yours, which are built on a different logic) seem a little ridiculous to me. It is proposed to believe that someone who is a great programmer in one area will certainly be great in other areas, which, of course, is not at all the case.

I'm sure you have proven yourself as a developer in other places, but Google, at least as an engineer-programmer, is unlikely to suit you. They really need computer science scientists. The ability to determine what exactly needs to be created is not valued in this case so highly because it simply does not fall within the scope of the core responsibilities of the software engineer.

It seems that you are sure that your abilities to create great products belong not so much to the technical level as to the design level. In this case, you would be a great role in product management (in Google, or elsewhere), if your desire was to work in a large company.

Yes, and “being a goat” is also a problem if you are serious :)


Mark Klein , 185 votes

At the same time, I think he was trying to convey that technical interviews may not be the most accurate way to evaluate such a phenomenon as a “good software engineer.”
In the second paragraph, you argue that the belief that “someone who is a great programmer in one area will definitely be great in other areas” is simply wrong. I agree, however, when you propose to assume that Google may not be the best place for it, you actually state that whoever is not a great programmer in a particular field is perhaps not a very good software engineer at all. Do these delusions seem to you similar?

Technical interviews focus on specific areas of software development — on knowledge of specific algorithms and data structures — and although this may well correlate with success as an engineer (???), this may not be the best way to assess the potential of certain candidates (such candidates like Max, who have already demonstrated success in software development elsewhere).
The argument that Google should have hired him does not mean that he is an exceptional developer in all senses; rather, they say that the demonstrated extraordinary success in previous projects may mean a better understanding of the software development process than the ability to invert binary trees. . Last you can google. To google to the degree of complete understanding, the first is to spend a couple of years.

Interviews on algorithms check a very narrow range in a large area of ​​knowledge, so it cannot be argued that he is not worthy of working with only one failure. Even the evidence of a serious gap in algorithmic knowledge, in principle, may not determine anything, because many teams need, as it were, engineers who can build good products by studying everything necessary as they go. And if you are interested in my opinion - the presence of programmers who are obsessed with the convenience for the user - may be a good deal.



Carlos Matias La Borde , ~ 120 votes

Elah burnt, so this is all for real!

Source: https://habr.com/ru/post/345756/


All Articles