Google programmers. How an idiot recruited idiots

In the old days, I, on an ongoing basis, was engaged in technical interviews - selected candidates for the position of a programmer in the company. I had a simple, clear, elegant technique (not invented by me). The dude first went through a long interview on a bunch of various questions, then he solved several problems. On paper, as we did at the university.



Looking back, I understand that the selection really worked great. Everyone I selected then became respected specialists in our village. More than half of them have long ago opened their own it-business, in various areas - from 1C to the development of CRM systems.



It was this experience that muddied my mind. So much so that I decided to change the methodology - I thought that it was not her, but me. I am a great technical interviewer.



Changes



The changes I made were very simple - now people were writing code not on paper, but on a computer. What, I thought, would they, like in an ancient monastery, sit scribbling. I myself have long disaccustomed to do without IDE, contextual hints, debugging and other beauties of modern development.



He gave the dude tasks, put him at the computer and left for half an hour or an hour. When I came, I saw a ready-made solution. And not just ready-made, but very such fucking - both the code is beautiful, and the optimality is at a sufficient level. He went nuts himself - is the modern generation so imbued with technology that they write code like they breathe?



Well, I got myself such dudes.



First months



At first everything went just fine. I tracked all the metrics of their productivity and efficiency, and never ceased to be amazed at the rapid growth of these dudes. In the old days, people in the first months delved hard enough - they could write the code for a learning task, but they could hardly cope with the tasks of the workers. There was no such problem.



It is clear that they solved simple problems easily. I began to give more complex problems - those that were previously issued after a year of service. These dudes managed, without help, and with such! I was shocked. I was glad - what a wonderful generation is growing!



I thought it would always be that way. In terms of growth, it will continue linearly. Yeah, right now.



Plateau



After 3-6 months, every guy reached a plateau in terms of productivity. Unfortunately, at the same time, they all switched to telecommuting due to the coronavirus. And I sat at home and was furious.



Time passes, month after month, and productivity has frozen at the trainee level. Sometimes there were local extrema, but they were easily explained by a large number of simple, monotonous, similar problems. I kept raging and yelling in chats.



I thought it was a matter of remote control - you can't turn on charisma at full capacity there. Well, probably, people lack motivation, live communication, and sometimes a kick in the ass. Here the bosses also did a disservice - they asked like "productivity doesn't grow because of the distance?" Of course yes, I answered. Let's go to the office and trample!



Office



Well, we went to the office in August. We sit, work, a lot of tasks - do it in time (there was a shortage of tasks during remote work). I look at the indicators - they don't grow, you bastards. I had to fucking dive.



At first I dulled stupidly to help people. Can't solve the problem? Call me. I’ll come up, drive you off the computer, sit down and finish it. And you, mediocrity, sit nearby and remember how to work.



But you are many, and I am one. Will not work. We need to understand the underlying problems. I decided to return to the initial stage - a technical interview.



Re-interview



I no longer forced me to write the code on paper - I just sat down next to me, said the task, and the programmer tried to implement it. I thought to conduct a series of such verification works, starting from the basics, gradually raising the level of complexity. But it all ended on the basics.



It turned out that only one programmer out of ten knows how to work with basic entities, types, knows their properties and methods. Even worse, only 2-3 people work tolerably well with built-in help and contextual help. They stupidly cannot find properties and methods. Not to mention how to apply them, even on an elementary task.



One only grew bolder and asked - β€œcan I google it?”. Then it dawned on me, you idiot.



Google programmers



It was as if they hit me on the head with a sack of flour. I left for two days. Is this really possible? The beautiful, optimal code they gave out at the first interview was found on the Internet. The solutions that provided them with an explosive increase in productivity in the first months of work were found on the Internet. Those user questions, to which the dudes answered after the magical "I'll call you back", were found on the Internet.



They write code without understanding the underlying constructs. No, they don't write code - they download it. No, not that again ... Download the code is like "npm i", that's okay. They write off the code. Not knowing how to write it.



He began to be indignant - damn it, how so! Okay, there is a new technology to light up with the help of the Internet, or learn to use some rare crap so as not to hammer your head. But basic things! How can you copy them from the Internet ?!



Do you know what they answered? "So what?". I almost left the monastery with grief. He took a break, stopped talking to them, closed and thought. Naturally, I realized that the problem was not with them, but with me.



They only follow the laws of their world. And I, an idiot, did not see these laws, did not understand, did not realize their seriousness. The seriousness of superficiality.



Superficiality



On the first day of study at the institute, we were gathered in an auditorium at the department, and an old smoky guy, deputy. Dean and Associate Professor, said: β€œThe Institute does not provide knowledge. He teaches you to acquire knowledge on your own. "



I was lucky - I studied in the early 2000s, when the Internet was only in pictures. If you want to understand C ++ - sit down and figure it out, here's C ++. If you want to write a term paper on measuring roughness, go to the library, read books, write a term paper. If you want to make a report on history, go read the magazines. Yeah, everything until you find the articles you need.



And Google programmers are out of luck. Any information is available to them, anytime, anywhere. They've learned to find this information quickly - whether it's the address of a cookie store, discount pants, or a generative query.



In books they write that the brain forms and, most importantly, strengthens those neural connections that a person uses. If you constantly write code, then you do it better and better. If you are constantly looking for information on the Internet, then you pump this skill. If you copy code from the Internet, then you become a great master at it.



True, not all of the code is publicly available on the Internet. Therefore, a plateau arises. The productivity of a Google programmer is not a measure of how code is written; it is a measure of how it is written off the Internet. It's about the same download speed. About 15 years ago, to watch a movie, you had to download it first, now only Old Believers do this.



Someday, probably, Google programmers will overtake the usual. At least in solving standard problems. In the meantime, we will painfully form new neural connections for the use of basic objects, types and constructions of PL.



I should have screwed up like that, damn it. It's a shame.



PS And this ... Recheck your own.



All Articles