Fear and Loathing in IT

Hello. I am a regular programmer wearing a senior’s mantle at one regular grocery company. I have been engaged in commercial development for about 10 years, I started with the development of firmware for small pieces of iron, and now I make backends of varying degrees of complexity mainly on the now fashionable Java / Kotlin. I chose this profession by vocation - as a schoolboy all the time I soldered something, programmed on a piece of paper (there was no computer) and all that. Next came profile education, work in various companies - eminent and ordinary, foreign and domestic. Therefore, I can say that I am an ideological programmer. And I never understood the people who are waiting for Friday - I always went to work with pleasure, no matter what the hell was happening there. That was, at least until recently. From some point I “broke” and could hardly force myself to go to my once beloved job. Something was bothering me before, but now that my thoughts have taken shape in my head, I can say what’s wrong with my once-cozy IT world.



Excessive complexity



When I worked on the glands, I really liked the property that I see right through how this thing works — what bytes move, in what area of ​​memory this happens and how the compiler handled the code. There was a feeling of calm and control. When I switched to backend development a bit later, I giggled over endless xml configurations for EJB or the same spring. If I knew what awaits me in the future. Now I just don’t understand (and already despaired of understanding) what is going on inside my simple unlucky app. A bunch of layers of abstractions, containers in containers, tons of manuals, scripts, tools, versions, config files. I still have not figured out how the project is being deployed, which I have been working on for six months now. And of course, you cannot make a monolith, at least in the first stage. Be sure to immediately divide everything into microservices, because it’s so right (at the conference they said that they do this in company X). And of course, we can’t use the good old Apache HTTP Client to go to the service that we need once every few minutes, because this client is not asynchronous, and it does not have a built-in rate limiter, backpressure mechanism or other fashionable things. To my question “Why is all this necessary for a load of 1 request / min?” I get only a reproachful look from my colleagues, on whose foreheads the inscription “Here you are stupid” shines.



A separate topic is Mr. Javascript with its countless frameworks. I honestly don’t understand how SO many things could have been invented for a tool that just needs to draw molds on web pages and send a backend request from time to time. Good thing I do the backend.



On the example of the frontend (and not only it), we can clearly see how we walk in circles: let's execute all the logic on the server side -> and now on the client side -> and now on the server again and so on to infinity. Let’s write the frontend and backend in one language -> and now let’s in different languages ​​-> and let's again in one. Let's make schemes for data formats -> schemes only for old-timers -> but not, schemes are needed all the same. One of my sidekicks up his open source library from yaml to xml, simply because there are schemes there and it’s great when you giggle a huge config, and an IDE aware of XSD can do half the work for you. From the above, the following problem follows:



Too much



Tools, languages, books, conferences, frameworks, etc. For a long time behind those days when, for the development of software, it was enough to have knowledge of one PL, a couple of libraries, and that's all. Now we are waiting for hundreds of frameworks, with a dozen languages ​​(even within the framework of one project), fashionable and not too DBMS, ubiquitous message brokers, hundreds of square kilometers of rake spread out and other fun. As a rule, an average programmer does not have time to study all this at work (except for the tools that are already used in his projects), because you need to work on it. Many people have to spend personal time studying these technologies, although most likely 90% of the studied will never be useful. I myself have five hundred articles in my pocket, a bunch of unseen video views from conferences, and each call to Habr portends a mandatory visit to McConaughey.



But even hard work with a specific language or, for example, a DBMS in your company sometimes does not allow you to stay in trend, because technologies become obsolete before they can be applied. Even java will now be released at firefox speed.



Thanks to the endless stream of rapidly growing knowledge, many of us feel like eternal students or impostors, no matter how many systems you actually built. And this is very beneficial for HR and employers - you can easily bring down your RFP with a couple of tricky questions. This kind of rat race HR is politically correct called self-development.



Recently, I have been observing a trend of imposing the authority of a business department on developers. Now, in addition to fulfilling its main tasks, the developer is obliged to understand the subject matter at the level of a good analyst and generally think about business. Leave me alone, I don’t know how to increase your conversion rate



Job interviews



This is the most important and beloved kind of special discipline. Indeed, in fact it depends on this whether you will sleep on an old crushed sofa in a rented odnushka somewhere outside the Moscow Ring Road, or whether you will have to hide in cardboard lying on a heating main under a bridge. If at the beginning of my career the interview was a bit of a heart-to-heart talk, now it is more like an exam. Perhaps this is due to the fact that in those days there were no such huge salaries and crowds who wanted to go into IT or just fashion, I don’t know. But the fact is that when you come to an interview for the position of senior developer, with a high degree of probability you will encounter tasks that are seasoned with quiz questions. “Well, solve a problem on a piece of paper that we stole yesterday with leetcode. Wrong on a unit in the boundary condition? Fuuuuu goof! You don’t know how% methodName% works in the most fashionable% frameworkName%. Who put him here at all? Security! ”Nobody cares anymore that your head is arranged differently and you can’t stress the contemptuous condescending gaze of high-nosed nerds quickly and without errors to wrap the algorithm for a task that you haven’t had time to think about yet. Like how many kilometers of code and production systems are behind you. Well, at least the puzzle questions are dead, and thanks for that.



IT people



Here we will analyze several subspecies of this population, with which we most often have to deal.



Actually developers and sympathizers. Contrary to stereotypes - for the most part not Orthodox nerds, but quite normal guys. But as a rule there’s nothing to talk to them about. All conversations outside working hours come down to work. But how could it be otherwise if you are forced to learn all this technomuth around the clock? My advice is to stay away from guys in plaid shirts with backpacks, otherwise you can earn a lethal dose of boredom. Many of them go to work not to work, but to play toys. Let's reinvent the wheel, let's fasten the new framework (and we’ll rake the hell out of food at night) and we will certainly drop everything halfway, because this toy is tired, and we’ve brought in new ones. But then we will blow our cheeks and tell at conferences how we defeated the problem that we ourselves created. PROFIT! These people are just as easily led to all sorts of rubbish such as “interesting tasks” and “complex systems” (it’s impossible to build a calculator without a dozen microservices now), which in human terms means picking in the sour shit of a mammoth, but for less money, thereby reducing industry wages. Like in a joke “- Dad, what are we going to eat today?” “Nothing, son, I am working on interesting tasks in a friendly team.”



Project managers. Honestly, for 10 years I did not understand who these project managers are and why they are needed. In completely different offices, it looked something like this: here is a bunch of tasks, sort out what is there and how and here to do such and such a number. And I went to get a latte from the hipsters on the ground floor and write on Instagram what a hard day it is today. Only once did I see a dude who built all these boring schedules, juggled with tasks and was our assistant, and not just a cool guy who couldn’t do programming, but I really want an ITP.



Waiters. Dearly beloved by many category. Thanks to their dumping, sensible and ideological dzhuns cannot enter the industry - in pursuit of a long ruble, many rolling workers are ready to work at all for free.



We’ll keep silent about the rest.



Business



Software in the modern world is not done simply because it is fun (although sometimes it seems). It is done most often for earning attendants - directly or indirectly. And in connection with this fact, we can divide people into 2 categories.



Those who care how - so that everything inside is beautiful and correct.



Those who care about what are those people who care about the essence of the product they make.



Typically, the developer contains both of these categories, just in different proportions.



For both of them, I have sad news.



For the first category - from the point of view of making money, it does not matter how the correct architecture is chosen and how beautiful the code is. Just like all of your safety, best practices, etc. You can stick crutches, earn grandmothers, and then the manager who made all this jumps onto the neighboring boat “to gain new experience”, and the team rakes the stables at night.



For the second category - 90% of you do what others have done a long time ago. With rare exceptions, all of your products are deeply secondary. Nevertheless, cunning businessmen are trying to give “ideology” to the next payment system, online banking and the like. I went through all this myself, and I must say, it’s much easier to work when you have a clear answer to the question “why is all this needed”. For some reason, all these “changers” of the world forget to say that a change in the world occurs as a by-product of making money, and not vice versa. It’s hard to change the world when a shotgun of the board of directors is attached to your temple, and a noose of shareholders is thrown around your neck. As for me, the phrase “we work in order to make money” sounds much more honest. Another thing is that if you tell HR right now that you work at work for money, then 146% will get a puzzled look and something like “You don’t suit us, we need enthusiastic people who need self-development and interesting tasks.”



Health



Everyone knows that if you lift weights for a long time, then without proper preparation (or even with it) you are guaranteed to get problems with your back and joints. The same can be said of the brain, only this is less obvious. Our work requires high returns and concentration, even if we just refach the tests on the machine, listening in the background to another intelligence poll. It seems to me that the brain is simply not designed for such daily feats. I worked on various shitty jobs, including physical ones, and I can say that I never felt so squeezed and frustrated as when I left the office every day. Many of my 35+ colleagues feel about the same thing, and the questions “What if you are 25 and burned out?” Or “How to get out of it?” Began to appear on the forums. How long it will take to stretch in this mode is an interesting question.



Total



For 10 short years, the IT sphere from a cozy little world of computer nerds sitting in the basement near the flickering monitor has turned into a huge hype industry with large salaries, marketing and other big news around. Programming is no longer engineering, but just a dull craft, the main purpose of which is to turn govnokod and crutches into money. It remains only to wait until all this colossus collapses under its own weight and we will return to our cellars. Or not.



All Articles