The path of the developer (Part 0x01)

0x01. Work is not a dream


// Code is Poetry
John Casti once said: “Physics is a special case of biology,” I think programming is a special case of poetry. It is just as important to observe the structure as rhyme is respected, to know your user how to know your reader, to be both a translator and a historian, so that someone, coming from another sphere, can read what you wrote. But the programmer himself is a combination of the characters of a writer, inventor and tester. The code connects the unconnectable: the creativity of thousands of people merge into one project, like dozens of artists, with their only styles, colors and preferences, take on the drawing of one canvas. One thing is clear: unification is not for the programmer.

The realities of today: to study for five years in the same language, so that at the end of the training you choose completely different for the profession. This language for me was JavaScript and the HTML5 environment. This happened when I started working in a large office on a large and rotten project. But about all this in order.
I had the task of obtaining a diploma, the very little book that is given when you graduate from a university. To do this, you had to go through the last three quests:
* Close the session
* Pass the state exam
* Defend the graduation project

So the snowy 2013 began. Closing the session was prevented by the subject “Parallel Programming,” but the third retake was able to close it. The sediment remained enough to hate MPI, OpenMP and quickly forget CPP.

The state exam was surprisingly simple, but the topic itself was powerful, the technologies were the most modern, and the teacher was selected the most normal. Exactly during the spring exacerbation, I was lucky to find a job, and there was almost no time left for the graduation project.

After graduation, every graduate of a technical university wants to get a job with a modern technology stack. That's just what two categories of offices can allow:
1. Startups, which are very unlikely to take only a bristling student.
2. Large offices, which it is time to move away from the old technology in favor of priority new.

The first official work surprised me with its terrible HTML 4.01 - a site straight from the beginning of the zero, with its inline scripts, lack of sane architecture, a unified writing style and responses in the request. Awkward JS code written in CPP'shnik or Java'ist patterns.

Every weekday I went to work in almost the very center of proudly fashioned Peter; passed by tightly squeezed to each other low houses with high windows, under which flaunted clean new expensive cars standing on dilapidated asphalt.
I grabbed shots atypical for me on the fly: how a peppy old woman with a piercing pierces the road on a scooter, how a pretty violet-haired girl with big and expensive headphones rides past on a cheap rarity bike, how an elderly trolley bus driver listens to Black Metal ... The moments incredible in their appearance gradually turned myself into an unreal copy of myself.

My typical day in the office began to be described by the algorithm:
1. Take a major task in JIRA
2. Clarify it several times
3. Find and make adjustments in a huge solution
4. Test in all browsers
5. Nail bugs with dirty hacks
6. Compile
6. Transfer updated DLL on production
7. Wait for cache update
8. Send the ticket to test
8. ???
9. GOTO 1

And so it should go on eight hours a day, forty hours a week, eleven months a year.

Project support is only possible in a stable condition. It is difficult to do useful things when you need to move the button, tighten the validation for the tenth time, track the time in JIRA, have lunch and hold a meeting. There is no time left for work.
The real work is done by Senior, that is, the one who still remembers why in the code “this damn Magic Number” and Middle, which can successfully upgrade to the next version of .NET, breaking less than 24% of the written govnokoda. And I'm Junior, whose only thought is to rewrite it all over again.
/ * Delete <,> you cannot <,> finish it! * /
I felt inside that the office was crumbling and made the right decision - it was time to bring it down (Sudden spoiler: after half a year, the office with epic news would crash all over the country).

So my transitional stage began in search of a better place: a dilapidated office in the city center gave way to a remote outsourcing, which ended with the transition to a class B + business center in the city front to an unknown gamedev office. Having worked quite a bit of time on outsourcing, one dude told me: "It will be very difficult to leave the game dev." Now I can say he was right; game dev is a way to the side, and to change your mind, you have to go back, reduce the road will not work. I changed Lean to Scrum, ASP.NET to SmartTV and limited myself to signing in a contract. Now every weekday I traveled to the other end of the city, accompanied by a mass of perishably reading a book or thoughtlessly chopping into the popular mobile game of the townsfolk.

A small studio is a big problem. When there are too many projects, the graphics go to hell. Sometimes there is almost no work and employees are forced to take unpaid leave. All the upper guys bend each other, whether it be a customer or an employee with a link higher than you. A flexible schedule is a way to hide the fact that you often have to linger due to constant deadline failures. The only thing that can keep a person in game dev is the desire to write a game. Better - your own.
/ * In the field of high technology, the one who owns the lower level of the market
eats the one who owns the upper @ Paul_Gram * /
The gaming industry is a special kind of lottery. If you linger, you can lose more than gained. But the abundance of young children, who successfully or not combine study and work, bring more joy than Friday's absorption of pizza and alcohol.

Weekly rallies gave way to everyday standards, where management constantly talked about money, luring people into a hole of hopelessness and showing their true, beggarly appearance. Here, people want to create games, and management wants money. This struggle holds and even holds together, forming something like a brotherhood. Young Padawans are pulled by a string, the tired look of seasoned ones wishes a speedy release and a well-deserved rest in somewhere, necessarily in Europe.

Therefore, you should always be tipsy, socialize, drink, smoke, be with everyone, be stronger, do not cool down and do not leave anyone. When someone needs it, you need to help get out. I learned this in game development, lessons whose price is much higher than the ridiculous gray salary that I received twice a month.

Honestly, the fact of working in the gaming industry is quite exciting, and if I had thought about this three years ago, I would not have believed it. But this is not the point, the main thing - the output of the first game is a tribute to that little boy who designed his own worlds while sitting in a tram, bus, car, constantly looking out the window, and coming home, interwoven fantasies and reality, leaving for a new, magical world of dreams. And although the released game is actually full of aggression, but I believe that it is thanks to the games that we all learn, gain experience and move forward, preparing ourselves for the life ahead of us. I hope that my skepticism about modern games will disappear, and in place of today's casual entertainment will come games in which, as before, the spirit of real victories and non-illusory defeats reigns.
/ * Here you are, and you enjoy working with shit? @Friend */
At some point, a start was made. When they say that the company plans to sell, it becomes uneasy. Especially when, six months earlier, when communicating with Senior HR, you vaguely understood this, and inside you felt some flaws, to the direct question to which the answer followed: "This does not concern you." It is with such stupid decisions that small offices leave people. For me, the relationship between people is much more important than the lure with a green card and moving to a new office in the center. Even if it gets better, you will remember how I can fuck you.

When a company hires a lot of cheap managers and doesn’t hire suitable programmers, consider the high probability of a sale. These new people should add value to the office. Firstly, due to the increase in people, the office will cost more. Secondly, such running juniors will have time to grab a few orders, in case of failure of the takeover. Such a cunning plan.

After months of work, the fear of dismissal subsides and you can start to “run the bug”, learning things in a debug, like a surgeon, examine the inside of the software. Time moves, I study various approaches, read literature and study, answer my own questions myself. At some point, the feeling of the ceiling comes, meaning that you have grown, you need something more complex, a leap of faith above your head. It was at that moment that I began to be interviewed for an interview, the fear of which was constantly decreasing and even became a hobby, which often ended in a fail.

Getting to work in a global office is extremely difficult. Usually, pleasant offices of such offices are located next to the horseradish of the city; necessarily, fitness will be very close. Going inside, young guards await you to give a badge. You come in and wait. You wait enough to make you want to go back. Perhaps this is part of the interview, but then there will always be something incredibly dumb. Basically, the questions, tasks and the interview itself as a whole will be dumb. Even now, it seems to me that such offices are looking for overly incomprehensible guys. I was lucky, they were looking for a reliable Linux user familiar with Bash and Python, fluent in AngularJS, able to quickly figure out an unknown NoSQL database and write REST in NodeJS. All this in 60 minutes. The bay leaves of this Full Stack soup were purely mathematical problems with perverse logic. In short I didn’t go through an interview surrounded by a lot of programmers and realized that I’m neither a mathematician, nor a programmer, nor a back-end driver, nor a front-end person who knows English, but a third-party person, an ordinary developer, who miraculously stopped surrounded by huge plasma screens, surrounded by geeks from the world and nerds. A sense of antisociopathy and tight deadlines came over me.
/ * Come early, get enough sleep until no one sees and leave early @ Laziness * /
I turned 23. I woke up as an adult, the realization that everything planned cannot be realized. The only true way in such a situation is to remove all unnecessary and leave only the most necessary; then what else do you use and what do you plan to use next. I started with the games catalog and deleted about a dozen tiles that I resolutely wanted to go through before. Then the programs that didn’t have time to isolate me went to the basket — these were musical sequencers and editors, for the training of which I still had no time. And more than ever I understood that life should be grabbed by the mane and run from what is holding me, to finally find something that is waiting for me. I did not have loans, mortgages and a regular girl. Nothing held me back. More truly held. I grew into this city, I was kept on projects at work and girls,

Every evening I returned to Vaska, every evening they were new people. At one point, I walked past a man dressed in a huge booter and stopped in thought. Turning my heads in different directions, I realized why. I realized how ridiculous the available technologies, mathematics, biology, chemistry are for marketing ideas ...

The project that I was doing for SmartTV ended, I was switched to iOS. Again C #, Unity3D (which I tried to learn when I was in 3rd year) and a completely new cloud backend for me. Less than a month passed and I was left alone in the project, finishing the application a year and a half ago with the lack of documentation, as in the good old days. In xCode I had no experience, and by that time there was no test device either. Continuation of the cycle, the first index of which was when I started making a game for SmartTV with only an emulator.
/ * What is the use of it when your programmer cries? @Nonename * /
When the test device appeared, I figured out how much to do. So I realized that a good specialist always carries new devices and the latest OSes. And at home it has the same set of programs as at work.
/ * When I started writing this, only God and I understood what I was doing. Now only God remains * /
I want freedom, I want to live in my own apartment, I want to get to work on a bike in half an hour. But I have no desire to be hunched over for ten years for this. I send my CV to different offices, and thanks to a friend who works in a startup, I decide to go to them. All that I have is only me and this moment that separates me from my future. Although I was very attracted to work in a large office, in addition, again in the center, despite the promptings and persuasion of my colleagues and friends, I leave everything and go to start-up.

The result was a dramatic change of course: Peter was replaced by Moscow; game development on mobile platforms on C # gave way to a backend on NodeJS; a typical office man was transformed into a startup.

To be continued…

Also popular now: