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. Here it is just as important to keep the structure, as rhyme is observed, to know your user, how to know your reader, to be both a translator and a historian, so that someone who comes from another sphere can read what you have written. But the programmer himself is a combination of the characters of the writer, inventor and tester. The code connects the unconnected: the creativity of thousands of people merge into one project, like dozens of artists, with styles peculiar only to them, colors and preferences, are taken to paint one canvas. One thing is clear: unification is not for the programmer.
The realities of today: to study for five years in some languages, so that at the end of training, choose completely different ones for the profession. This language for me was JavaScript and the HTML5 environment. This happened when I started working in one large office on a large and rotten project. But about all this in order.
I had a task in obtaining a diploma, the very little book that you give when you finish a university. To do this, you had to go through the last three quests:
* Close session
* Pass the state exam
* Protect thesis project
So began the snowy year 2013. Close the session interfered with the subject "parallel programming", but the third retake was able to close it. The sediment was enough to hate MPI, OpenMP and quickly forget CPP.
')
The state examination was surprisingly simple, but the actual proposed topic sounded powerful, the technologies were the most modern, and the teacher chose the most normal. Exactly during the spring exacerbation, I was fortunate enough to find a job, and there was almost no time left for a thesis project.
Every graduate of a technical university after studying wants to get to work, where there will be a modern stack of technologies. Here only two categories of offices can allow it:
1. Startups, which are very unlikely to take only bristling student.
2. Large offices, which are time to move away from the old technology in favor of the priority new.
The first official work surprised me with its awful HTML 4.01 site, straight from the beginning of the zero, with its inline scripts, the lack of sane architecture, a single writing style and answers in the query. Clumsy JS code written by CPP's or Java's patterns.
Every weekday I went to work at almost the very center of the proudly fashioned Peter; passed by close to each other low houses with high windows, under which stood brand new and expensive foreign cars standing on the dilapidated asphalt.
I caught onypical atypical shots for me: like a bouncy old woman with piercing cuts the way on a scooter, like a pretty purple-haired girl with big and expensive headphones, passing by on a cheap rare bike ... Incredible moments in her appearance transformed gradually me in unreal copy of myself.
My typical day at the office was described by the algorithm:
1. Take a major task in JIRA
2. Refine it several times.
3. Find and make adjustments in a huge solution.
4. Test in all browsers
5. Beat bugs with dirty hacks
6. Compile
6. Transfer the updated DLL to the production
7. Wait for the cache update.
8. Send a ticket to the test
eight. ???
9. GOTO 1
And this 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 a button, twist validation for the tenth time, follow the time in JIRA, have lunch and hold a rally. There is no time to work.
This work is done by Senior, that is, the one who still remembers why in the code “this bloody Magic Number” and Middle, who can successfully upgrade to the next version of .NET, breaking less than 24% of the written govnokoda. And I am Junior, whose only thought is to rewrite everything all over again.
/ * Delete <,> cannot <,> finish! * /
I felt with my gut that the office was collapsing and made the right decision - it's time to bring down (Sudden spoiler: six months later, the office with epic news will collapse all over the country).
So began my transitional stage in search of a better place: a dilapidated office in the city center was replaced by a remote outsource, which ended the transition to a B + class business center in the city's frontier to an office unknown to me. After working quite a bit of time on the outsource, one dude told me: “It will be very difficult to leave gamedev”. Now I can say he was right; Game dev is a way to the side, and in order to change your mind, you have to go back, you will not be able to cut the road. I changed Lean to Scrum, ASP.NET on SmartTV and limited myself to a signature in the contract. Now, every weekday, I went to the other end of the city, accompanied by a mass of people reading the book indifferently or mindlessly 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 top guys of each other "bend", whether the customer or employee link higher than you. A flexible schedule is a means of hiding the fact that you often have to linger because of the constant deadline breakdowns. The only thing that can keep a person in geymdev 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 up the one who owns the top @ Pol_Grem * /
The gaming industry is a special kind of lottery. If you linger, you can lose more than you gained. But the abundance of young rebzy, who successfully or not combine study and work, bring joy more than Friday's absorption of pizza and alcohol.
Weekly meetings were replaced by everyday stanapas, where the leadership 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 the thread, the tired eyes of experienced ones want a speedy release and well-deserved rest in somewhere, necessarily in Europe.
Therefore, you should always be tipsy, chat, drink, smoke, be with everyone, be stronger, do not cool down and do not leave anyone. When someone needs, you need to help get out. This I learned in game dev, lessons whose price is much higher than the ridiculous gray salary that I received twice a month.
Honestly, the fact of work in the gaming industry is quite exciting, and I thought about it three years ago, I would not have believed it. But this is not the point, the main thing is that the first game is a tribute to that little boy who designed his own worlds while sitting in a tram, bus, looking at the car continuously through the window, and coming home intertwined fantasies and reality into a new, magical dream world. And let the game really released is full of atstoy, 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. I hope my skepticism to modern games will evaporate, and today's casual entertainment will be replaced by games in which, as before, the spirit of real victories and non-illusory defeats reigns.
/ * Here you will agree and you enjoy working with shit? @Friend */
At some point, a start was made. When it is reported that the company plans to sell, it becomes uncomfortable. Especially when half a year earlier you, communicating with Senior HR vaguely understood this, and in your gut you felt unsaid, to the direct question to which the answer followed: "This does not concern you." It is with such blunt decisions that small offices leave people. For me, the relationship between people is much more important than the lure of the 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 fit progers, consider a high probability of sale. These new people should increase the cost of the office. First, because of the increase in people, the office will cost more. Secondly, such running juniors will have time to pick up several orders, in case of failure of the takeover. Such a cunning plan.
After months of work, the fear of firing subsides and you can begin to “run the beetle”, learning things in debug, like a surgeon, examine the insides of the software. Time moves, I study various approaches, read literature and learn, answer my own questions to myself. At some point, the feeling of the ceiling comes, meaning that you grew up, you need something more complicated, a leap of faith above your head. It was at this moment that I began to have an interview for an interview, the fear of which was constantly diminishing and even became a hobby, which often ended with a file.
To get to work in a global office is extremely difficult. Usually, the pleasant offices of such offices are located next to the city's hell; sure, there will be fitness close by. Going inside, you are expected by young guards to give a badge. You come and wait. Waiting long enough to have the desire to go back. Perhaps this is part of the interview, but then there will always be something incredibly stupid. Mostly stupid will be questions, tasks and the interview itself as a whole. Even now, it seems to me that such offices are looking for too incomprehensible guys. I was lucky, they were looking for a confident Linux user familiar with Bash and Python, who perfectly mastered AngularJS, who was able to quickly sort out an unknown NoSQL database and write REST on NodeJS. All this in 60 minutes. The laurel sheet of this Full Stack soup was purely mathematical tasks with perverse logic. In short, I did not pass the interview surrounded by tru programmers and realized that I am not a mathematician, not a programmer, nor a backendor, nor a front-end, nor who knows English, but some third-party person, an ordinary developer, who miraculously stopped surrounded by huge plasma screens, surrounded by world geeks and nerds. A sense of antisociopathy and tight deadlines flooded over me.
/ * Come early, get some sleep yet nobody sees it and leave early @ Laziness * /
I turned 23. I woke up as an adult, comes the realization that everything planned cannot become realized. The only sure way in such a situation is to remove all unnecessary and leave only the most necessary; what else you use and what you plan to use further. I started with the games catalog and deleted a dozen tiles that I definitely wanted to go through before. Then the programs that did not have time to allocate me went to the basket - these were music sequencers and editors, for which I never had time to learn. And more than ever, I understood that life should be grabbed by the mane and run from what holds me, finally find something that waits for me. I did not have loans, mortgages and a permanent girl. I did not hold anything. Rather kept. I was buried in this city, projects kept me at work and girls, on whom sometimes there was time.
Every evening I returned to Vaska, every evening they were new people. At one point, I walked past a man dressed in a huge boomer and stopped in thought. Turning heads in different directions, I understood why. I understood how absurdly the available technologies serve, mathematics, biology, chemistry for marketing ideas ...
The project that I did for SmartTV is over, they switched me to iOS. Again, C #, Unity3D (which I tried to study while being in the 3rd year) and a completely new cloud backend for me. It took less than a month and I remained one on one in the project, to finish the application a year and a half ago with the lack of documentation, like in the good old days. In xCode, I had no experience, and by that time there was no test device. Continuing the cycle, the first index of which was when I started making a game for SmartTV with only an emulator.
/ * What's the use of it when your programmer cries? @Nonename * /
When the test device appeared, I decided how much to do. So I realized that a good specialist always has with him new devices and the latest versions of OS. And at home has the same set of programs as at work.
/ * When I started writing this, only God and I understood what I was doing. Now there is only God * /
I want freedom, I want to live in my own apartment, I want to get to work on the bike for half an hour. But I have no desire to hunch 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 myself and this moment that separates me from my future. Although I was very attracted to work in a large office, besides, again in the center, despite the tips and persuasions of my colleagues and friends, I leave everything and leave for a startup.
The result was a cardinal change of course: Peter was replaced by Moscow; development of games on mobile platforms in C # has given way to the backend on NodeJS; typical office man in the street transformed into a startup.
To be continued…