Disclaimer: I have been working at Google as an engineer for almost 4 years.
From the fact that I
am writing about Google , one might get the impression that working at Google is the ultimate dream, an ideal place to work, where you should strive to get at any price. Google is really a very good company for programmers, even great. But there are no ideals, and she also has some drawbacks. About them today and will be discussed.
')
I think that everything written below is almost fully true for other similar companies. Therefore, I will write “company” instead of Google. I can’t vouch for it, but I suspect (and the suspicions are confirmed by a large number of acquaintances) that roughly the same can be said about Microsoft, and about Facebook, and about Amazon, and about other decent big companies.
Sphere of influence
The company employs several tens of thousands of programmers. What do you think, how many of them can really affect the fate and development of the company in one direction or another? Very, very few. A large company is vital that the vast majority of its employees are interchangeable. Imagine what would have happened if the company's business was seriously dependent on each employee, and suddenly 10% of them decided to quit? No good, believe me.
Therefore, the goal of any company is to minimize the number of key employees. And, as a result, even though my work is very interesting and very important for the company, I know that if they had not hired me, there would have been another programmer in my place who would have done more or less the same thing.
80/20
The Pareto principle states that 20% of efforts bring 80% of the result. And, forgive the captain Obvious, the remaining 80% of the efforts bring 20% ​​of the result. Usually from this it is concluded that it is necessary to focus on the very cherished 20%. But this is not the case of the company.
In the company, in order to launch a new, cool, mega-popular project, first you need to do 80% of all the routine work that is needed for the last 20%. And, unfortunately, it is inevitable. What is this work? Rewriting and refactoring existing code, writing tests, changing any configuration files, experimenting with different parameters, migrating the existing system to a new technology, fix bugs ... Then go through security review, usability review, and get a bunch of other permissions. In general, the important things that are necessary, but quite routine and, frankly, not very interesting.
Unlike a startup, where almost everything you do has a large and visible effect, and routine is sacrificed for speed, in large companies, most of the work on a project has almost no effect. And only when the ground is ready, you can actually write the last 20%, which is the project itself. Yes, companies hire PhDs, experienced and smart programmers, so that those most of the time are engaged in the routine.
By the way, this approach has a significant plus. In fact, everything is done more slowly, but more thoroughly. This leads to a more stable code and product as a whole.
Money
In the company, you will receive
quite a decent salary . If you wish, you can buy the latest iPod, iPhone, iPad and Mac with a retina without even noticing the costs. Or even the latest model BMW - however, there will have a little digging or a loan for a couple of years. In general, you will live life unequivocally. Until that time,
until you decide to buy a house , for example. But even this is a solvable question, though a brand new BMW may have to be abandoned in favor of the house.
But your salary will have a very clear ceiling, even if it is quite high. You are unlikely to become a multimillionaire working in a company. Although no, you will probably become retired if you persist in saving for 40 years. But quickly you will not get rich for sure.
Skills
Working in a company is usually a rather narrowly specialized environment. Most likely you will work with only one or two programming languages, and several technologies. If this is a backend, then for work you will not have to deal with the front end and vice versa (another team will deal with this). Of course, having spent 2-3 years in a team that deals with backend, you can go to the frontend, but very few people do it - many prefer to do what they can do well, rather than develop other skills.
This is good (deepening knowledge), but there is no expansion of knowledge. The review is significantly narrowed. Also, you are unlikely to work with new fashionable technologies that appear every year. In the end, after working for 10 years, and trying to find a place in some dynamic startup, you can feel like a dinosaur.
Politics
In any company there is something of a decent size that is called "politics". Somewhere it is less, somewhere more, but it is everywhere. This is the law of society, against which you can not argue - everyone has their own interests, and sometimes these interests come into conflict.
It is inevitable that from time to time your interests will conflict with the interests of another person, and the larger the company, the more often it will occur. Sometimes it will be your way, sometimes not. And so that you think more often, you need to master the art of persuading people, maintaining contacts with the right people, arguing ... And if you have this skill initially not very developed (and many programmers have that), then some friction and unpleasant days, and even weeks, are inevitable.
Here I want to add that Google’s “policy” is quite good, in the sense of which it is relatively small, at least at the level of engineers. I don't know about management.
Career growth
Want to become a director or VP in a big company? Congratulations, you have ten, or even more years of hard work and climbing the career ladder, with very uncertain prospects for obtaining the desired position. The key positions in the company, compared with the number of people willing to get them, the cat wept. And you will have to rely here not only on yourself and your skills, but also on luck, which probably plays a role much larger than hard work and talents. That, however, does not cancel the latter.
I saw people who grew up very quickly, being in the right time, and in the right place. And those who were at least as smart and talented as the first, but stuck on the career ladder.
I'm not the smartest now
A fairly common occurrence when a person who was mega-cool in his company comes to a large company and discovers that he is average. Since the requirements for hiring here are quite high, then the contingent is chosen rather serious. For those who are used to being “the smartest in their sandbox”, this can be a serious test for self-esteem.
Comfort
Work in the company is very nice and comfortable. You will be fed and massaged, and they will be brought and taken by bus, and they will pay a decent salary ... It would seem - what is so bad about it? But this state of affairs has a flaw.
Comfort relaxes. When a person reaches a comfortable state, it is very difficult for him to force himself to develop, move on, set ambitious goals for himself. I notice this even by myself - if I leave myself unattended, the number of “old-timers” increases in me, and the desire to achieve something outside the comfort zone decreases. And, by the way, I am not the most inclined employee of old age :). Therefore, you have to constantly keep yourself in good shape. But this is a topic for another article.
Google 7
This is a disadvantage of the series “zakusali”, and in the literal sense of the word :). In companies where food is served tasty and free of charge, it is rather difficult to restrain oneself and not to try both this and that and that tasty dessert. For this phenomenon, we even have a name - “Google 7 ″. Which reflects the harsh reality that the new employee in the first year of work on average gains 7 kilos.
However, this is really a fly in the ointment. Do not forget that we still have a barrel of honey. But we will talk about it another time.