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.