Club of anonymous programmers, or why only a psycho can become a real programmer
Of course, instead of wasting time writing this post, I could learn programming. But it’sn’t that the nerds-nerds have gathered here to look at all sorts of computer nonsense for the night, right? It is much more interesting to understand why some people are “born” to be programmers, while others suffer and cry at night, but they have little to do. First, let's find out who the programmer is.
Take the average portrait of a programmer: a nondescript, puny, unsociable nerd-bespectacled, who spends days off burning off with an eye code. If 100-200 years ago to be so - the chance of survival would be low. In those days (at all times) intelligence was important, but other qualities were just as important for survival: strength, dexterity, sociability, ability to make contacts, maintain relationships, take possession of a female.
Outlaw in society lived hard. It is not enough communications, nobody wants to communicate, to multiply too. Protecting the family is more difficult than the usual, blunt, but daringly bandyugan. If the outcast was a successful nerd, he had a chance to gain respect in society (somehow, with a tongue-eyed Einstein at the ready), and for his services he was forgiven for his oddity. And yet, outsiders lived hard times. ')
Now the incredible happened. Weird, unsociable, boring and boring, but brainy nerds have learned how to monetize their brains using programming. Moreover, it is even better than doctors, or lawyers, whose brains screw no worse, or even better. Programmers bathe in beams of glory, as miners in the USSR used to do. Programmers have become the unofficial elite of society, as the only alternative to banditry or entrepreneurship, which allows you to live well without breaking the law and risking your life. The twentieth century surprised the world with universal feminization and female emancipation. The twenty-first century surprised everyone by the fact that boring outsiders finally got a chance to recoup for centuries of humiliation and burning on bonfires (perhaps they were burned for tediousness). The mood of the rebels from the ashes of the botan civilization very well convey such videos:
The bottom line is this: programmers are freaking out with fat and happiness, that they like their work and want to boast of it to the whole world, so they make music videos. Like, we, programmers, can not only code, but also music, and video stamp. And, they say, there are no obstacles for us at all, some kind of darling of fate. I wonder why doctors, who study for 10 years, and who have much greater knowledge and practical benefit for mankind, are not so proud of their work?
Above, I said that programmers are generally boring, unsociable, uncommunicative. But I completely forgot to say that they are also often arrogant and even pretentious (as a blonde is proud of her breasts, so a programmer is proud of her brains). All this translates into a botan-style-humor, when in jokes programming terminology is used. The worst example of such humor is: “Hey, now I’ll quickly refill you, and you will be ** and I’ll put on patches.” And this type is ridiculous. This humor is available only to the "chosen ones" who know what refactoring and patches are. Higher caste!
Also, cases of racism(aka IT-racism) are common among programmers. Testers, for some reason, are considered to be lower-grade people for programmers, even if these programmers themselves were once testers. Certainly, a slightly more favorable attitude towards the automatics tester, but, in fact, he will have the stigma of a “tester” for the rest of his life, until he miraculously chooses the highest caste, or leaves IT. The programmer-tester relationship is at best a knight-squire relationship. From time to time, another programmer will proudly recall that this work (programming) is for the chosen ones (and he will be right), because it requires a high level of abstract thinking. Of course, programmers are very smart, so they supposedly have more rights to lead a kitchen debate on how to properly manage the state. So, in the dispute, the VS programmer, the cleaning lady, by default, wins, you know who.
All of the above concerns the personal qualities of the programmer. Now let's move on to his work. A programmer is a person who spends whole days talking to machines in machine language. He does this much more often than with people, so he can not always be the soul of the company (outside the programming community), and is generally prone to an absent glance and silence due to the fact that he is building a model of how to solve the problem in his head - even when getting ready for bed. Programmers are extremely logical, so they have certain difficulties in expressing their emotions. They just do not know how to say illogical phrases, and if suddenly something like that breaks out, then this mistake will need to be fixed right away. This excessive attention to one's own speech and constant pauses (for correcting and rethinking what has just been said) make them excellent debaters, but very boring interlocutors.
Woe from Wit: Programmers are so smart that they have already foreseen their own death and in general everything is as bad. Therefore, it is hard for them to enjoy life - especially since they live in a virtual world.
Woe from stupidity: the work of a programmer requires to be moderately stupid. Such dialogues are not uncommon: - Listen, why does our component work out so strangely? - What is the component? - Well, this one, which reports errors. - What does strange work out? - Well, the error throws through time. - Which mistakes? - I do not know, have not yet looked. - Why did not you watch? Must see. - Okay. - And where did you get that he works out wrong? - Well, he throws mistakes every time. - Did you watch the specification? - Yes. - Where does it say that a component cannot / should not throw errors through?
I emphasize that such a dialogue is the standard of the correct approach of the programmer in the so-called troubleshooting. It is not surprising that when a person speaks the whole day in the language of cars, talks to other people who use the language of cars, while inserting words from the same language of cars, then little by little he becomes a machine. Even his speech loses an emotional color, and his eyes seem to glaze.
The very essence of programming lies in the fact that you must operate on entities that you cannot see. You have to imagine how it all works and interacts. You guess and predict, based on data known to you, you try 100%, but there will always be some trifle. Trifle - a semicolon, an extra space, whatever - and the whole system will be broken.
Now imagine a Mercedes, which would not start from the absence of one screw. Unrealistic, yes? But in programming such situations every day. The fact that today a programmer, in addition to the programming language itself, must know and understand several frameworks, databases, protocols, different technologies, and imagine how it all works and interacts together - I will not even speak. This will be a big surprise for those who study bubble sorting at the university, while in fact he never uses it in his life. But it will be appreciated the ability to quickly understand the next framework. Speaking of tools and frameworks - they, like everything else in this world, live and develop, so it often happens that the mastered framework loses its relevance after a year or two, because the new version has a radically different approach. But you do not feed you with bread, give me a new version of your favorite tool, right?
I worked together with recognized megamozgami who knew what they were doing. Despite their brainyness, they encountered all the same problems as me. From nowhere error appears. There are always more mistakes than solutions, and this is always pain, and in order to overcome pain, you need to go beyond optimism. Until you reach a solution, even knowing how to solve, you will still get a dozen other mistakes, mistakes, absurdities. And this will not always be a semicolon, or a space. This may be a systemic discrepancy of components, when it turns out that you need to either solve the problem in a new way, or put crutches in order to somehow get around this annoying error that you could not foresee.
Attention to detail, friend! Look at the logs carefully, debug with the soul. It doesn't matter how good a person you are, or how many times you can pull yourself up - if you missed some little thing, the whole system will collapse. Pain. Get ready for the fact that in 99% of cases nothing will work.
Programmers are, in fact, psychos. Only a mentally ill person will be interested to sit 24 hours a day in front of the screen and engage in the movement of ones and zeros instead of, say, just walking in the sun on a spring day and not thinking about anything.
Well, when you were born so crazy. When you are an outsider with a brain since childhood, when God himself told you to go to programmers, because there your skills are a rogue-bot, along with a cast-iron fifth point, be healthy. Peers will play football and squeeze girls in the courtyards, and you will take revenge on them by the fact that in 10 years you will be a programmer. But, truth, you will take revenge so all your life, in timid attempts to prove that you also know how to live (as the guys from Ciklum did). Just look at these well-fed impudent “bombs” jumping into the pool (1:38) :
What's so great about this carcass, friends? Brains and PGM (Programming of the Brain). They boast of their disease, like a rare miner boasts coal dust in his lungs (there are such people).
For the sake of justice, I must say that programmers in the United States, though they chew, are not as strong as ours. We have programmers in Ukraine - this is the highest caste just for the reason that overseas devils want to make programs with the help of our lads (outstaffing, I mean). If the overseas devils decided that our doctors could be useful to them, I assure you, the doctors would have been a thug too. And all the other darlings of fate, who would have left on the difference in wages in the United States and Ukraine. The stump is clear, in the USA there is no such overwhelmingly total gap between loader John and programmer Bill, therefore programmers are not so greyhounds there.
Well, when you were born an outcast, no one is friends with you, and you have nothing left but to realize yourself through boring books and a computer - then the Devil himself ordered you to go to programmers.
But how to be a mere mortal? A simple, normal guy who saw all these technologies in a coffin. The guy who does not stick out from the new OSes, or the fucking gadget. The guy who, like any other normal person, sometimes makes mistakes and does not pay too much attention to every damn trifle, because of which he could miss all his life around. How to be to him? Nepsyhu-unbegotten, not boring nerd, but her husband, who decided to take the path of programming, that is, communicate with machines in their language?
The answer may be somewhat unexpected, but the bottom line is that this guy, if he really wants to become a good programmer, will first have to become a psycho. Becoming a psycho consciously, please note. Unlike programmers born by psychos, who initially had all the prerequisites for this work, at first our guy will be very uncomfortable to take the first steps in a foreign territory. On the territory of psychos and geeks, computer zadrotov, which on the technology rod more than the surrounding world. It is like voluntarily amputating your hand in order to become disabled and, thus, join the caste of disabled people.
The main question, which is to ask yourself a normal person who decided to become a programmer, sounds like this: "Are you ready to consciously become a psycho?"; and the second question: "Are you ready to change and become more boring and less emotional?" Because it is checked not only on itself, but also on its friends-programmers: the more a person is engaged in programming, the more he becomes a nerd and a bore. What we do changes us. This must be remembered.
And in the meantime, I will continue my path, swallowing bitter and boring books on programming, in the blind hope that I will manage to save myself and become a real programmer. And I'm not alone - we are many. People whom life has forced to be programmers, or simply programmers reluctantly. We even have our own “Club of anonymous programmers”, where we pour out our soul, as members of the “Club of Anonymous Alcoholics” pour out to each other.
Total: to become a real programmer, you need to become an optimistic psycho.
PS Yes, I know that “you first achieve, and then criticize. PS2 Yes, I know that there are also funny programmers, alpha programmers, darling companies. PS3 Yes, I know that there is a pitching programmer. PS4 I can't tell about myself, because my colleagues read Habr, and I want to be incognito.