At what point did the programming profession take a wrong turn?
Perhaps my worldview looks as alien to today’s youth as punch cards and BESM once looked to us. They did not experience the feeling of freedom and romance that enveloped the profession during the years of my youth and adolescence.
I started back in elementary school by creating simple games on the Spectrum. Back then, everyone who was in any way connected with computers was considered a computer genius, and the word “hacker” was the highest praise, not a curse. Programming was attractive because of its low entry threshold and the ability to create worlds from zeros and ones. Basically, you had nothing at hand other than this. You had to understand the principles of structured programming, memory structure, input/output – and you were already a programmer! The main task of the programmer was to simply create a working program. It was creative work: it was necessary to come up with an approach and optimize the algorithm so that it would work on that low-power hardware. You were responsible for the entire development cycle: you understood what the user needed, studied the psychology of interaction with the program, developed the interface, implemented it and made it work. A true master was considered to be the one who could get the most out of the equipment and come up with a unique solution. For example, everyone entered text into the console, but you had a mouse and colorful animations. Or for others the disk drive was whirring, but for you everything loaded instantly. Programmers were respected back then and knew: if you don’t create conditions for work, there won’t be any “magic”. And they knew how to take revenge – they would leave, and the system supporting the enterprise would collapse.
Over time, systems became more complex, and new technologies and libraries appeared. There was no longer any need to write everything from scratch; new tools speeded up the process and allowed us to focus on the task. Programming was precisely a tool: programmers did not just write code, they created products and found non-standard solutions to user needs. The main task of the programmer was to understand what the user needed and implement it in a way that worked quickly and reliably.
When did the moment come when technology did not become a programmer’s tool for solving problems, but the programmer himself became a tool for maintaining program code? When did the coolness of a programmer begin to be determined by the ability to become a corporate cog, reliable and trouble-free, and not by the ability to “hack” any problem? When I was young, programmers were attracted to projects that promised to change the future, but now young people are attracted to cookies in the kitchen and comfortable chairs. Programmers compete not over achievements in the demoscene or the creation of polymorphic viruses, but over whether to return null. Why is it that now “no one likes literary code tasks,” although such tasks used to be the essence of the profession?
The questions are, of course, rhetorical. When there was no choice, business tolerated rebels, but looked for ways to pacify them. Libraries and frameworks have turned from helpers into enemies – it’s more profitable for you to learn them during non-working hours, working for a project outside the project, but for free. Businesses don’t need talent – there is a risk that if a person leaves, the project will stop. It is better to hire ten average and flexible people than one talented but wayward one.
The “soft skills” are especially touching. Do you think that behind the question “what are your plans for 5 years, what do you expect from your new job” is there an interest in your ambitions? In fact, they check how long you plan to be a cog in the new place. HR is waiting for an answer about attachment to work through a mortgage, and not about the desire to build a business or scientific career. In words, you are expected to have leadership qualities and independence, but God forbid you mention your own business or managing people. Leadership qualities and independence are, in essence, loyalty and diligence. All business processes in IT are designed to break your will, to burn out your creativity, so that in your mind there is a picture of the world where business deigns to give you the honor of serving it, and there is no alternative to this.
In fact, a modern programmer is a laborer on an assembly line, his role and income are aimed at the same level. The only difference is that laborers are easily hired and fired, but a programmer has to go through all the circles of hell to receive the honor of becoming a cog in the machine that serves someone’s business.