way 1
«Какое решение будет правильным?»

Путь разработчика. Часть 0х1. Удалить, нельзя, допиливать!

Российский геймдев
10 марта, 2015
9 минут(ы) чтения

Если контент не отображается, включите VPN.

Программирование — это частный случай поэзии: здесь так же важна читаемая структура, соблюдение правил синтаксиса и гармонии. Прежде чем делать публичные релизы, надо сперва узнать своего пользователя, быть одновременно и переводчиком, и историком, чтобы некто из другой сферы IT смог прочесть написанный ранее код. Сам программист учится в своём ремесле сочетать характеры писателя, изобретателя и испытателя. Тысячи разработчиков сливаются в огромные мега-проекты, что невозможно представить, например, у художников, где каждый со свойственным только ему стилем облицовывает собственное полотно.

Код соединяет несоединяемое

Реалии сегодняшнего дня — проучиться несколько лет пониманию тонкостей одного языка, чтобы затем перейти на совершенно другой язык. Обучение JavaScript’у и HTML5-окружению становится для меня решающим в карьере, это происходит, когда я получаю в одной крупной конторе работу над большим гнилым проектом. Но об этом я поведаю дальше, ниже по тексту…

У меня была задача в получении диплома, той самой книжечки, которую дают когда ты заканчиваешь универ. Чтобы это сделать, ещё надо было пройти три последних квеста:

  1. Закрыть сессию
  2. Пройти госэкзамен
  3. Защитить дипломный проект

Так начался снежный 2013 год. Уже подросший, со снятыми недавно брекетами, я пытаюсь в третий раз хоть как-то сдать «Параллельное программирование», что в итоге со всем этим стрессом оставляет во мне достаточный осадок, чтобы на всю жизнь возненавидеть C++, MPI, OpenMP и прочее.

Зато госэкзамен на удивление оказывается простым. Предложенная мной тема звучала мощно, по крайней мере тогда. Технологии на то время являются самыми современными, препод подобран самый нормальный. Всё в кураже. Аккурат, во время весеннего финансового обострения друг помогает с работой. Итог: на дипломный проект почти не остаётся времени.

Каждый выпускник технического вуза после учёбы хочет попасть на работу, где будет современный стек технологий. Вот только это могут позволить две категории контор:

  1. Стартапы, которые навряд ли возьмут только ощетинившегося студента.
  2. Достаточно крупные конторы, которым давно пора уходить от старой технологии в пользу приоритетной новой.

Первая официальная работа удивляет меня своим ужасным HTML 4.01 — сайтом, прямиком из начала нулевых, с его жуткими инлайновыми скриптами и стилями, отсутствием вменяемой архитектуры, единого стиля написания и отсутствием любой документации. С этим я начинаю постигать дзен веб-девелопера, читая неуклюжий код написанный мозгами сипипишника или яваиста.

Семантическая поэзия

Мой типичный день в конторе описывается простым чек-листом:

  1. Взять major задачу в JIRA
  2. Несколько раз уточнить её
  3. Найти и внести коррективы в огромном солюшене
  4. Протестировать во всех браузерах
  5. Прибить баги грязными хаками
  6. Скомпилировать
  7. Перенести обновленные DLL на продакшн
  8. Дождаться обновления кэша
  9. Отправить тикет на тест
  10. ????????
  11. GOTO 1

Так должно продолжаться 8 часов в день, 40 часов в неделю, съедая 11 месяцев в году…

image
Ожидание/реальность

Путь человека — это постоянное столкновение его страхов и его надежд. Трудно заниматься полезными вещами, когда нужно подвинуть кнопку, в десятый раз подкрутить валидацию, постоянно следить за временем в JIRA, крепко пообедать и поучаствовать в очередном митинге. На работу не остаётся времени. Настоящую работу делает Senior, то есть тот, кто всё ещё помнит, зачем в коде «этот чертов Magic Number», и Middle, который умеет успешно обновится до следующей версии .NET, поломав менее 24% написанного говнокода. Пока я лишь джун, единственная мысль которого, по приходу на работу — это переписать весь этот пиздец с нуля.

image 1
Нельзя просто взять и добавить новый функционал в дырявый проект

Каждый будний день я хожу на работу в почти самый центр гордо вылепленного Питера, мимо тесно сжатых друг к другу низких домов с огромными окнами, под которыми красуются чистые дорогие иномарки, стоящие на полуразрушенном асфальте. Я схватываю на лету нетипичные для приезжего кадры: вот бодрая старушка с пирсингом рассекает дорогу на самокате; вот меня подрезает на дешёвом раритетном велосипеде миловидная фиолетоволосая девушка с большими и, наверное, дорогими наушниками; или как слушает Black Metal пожилой водитель троллейбуса… Именно такие моменты постепенно превращают меня в кого-то другого, кем бы я никогда не стал, оставшись сидеть в родной провинции.

Я нутром чуствую, не смотря новости и прочий бред, что контора рушится и принимаю верное решение валить (спустя полгода эта контора с эпической новостью рухнет). Так начинается переходный этап в поисках лучшего места. Полуразрушенный офис в центре города меняется аутсорс-кабинкой. Я работаю неделю на дому, пока конторка перебирается в новый бизнес центр. Внезапно мне приходит интересное приглашение из неизвестной геймдев конторы. Я еду на метро в перду города, захожу в БЦ класса В+. Что-то мямлю охраннику, поднимаюсь на лифте, сажусь на диван, жду. Мне любезно приносят только что сваренный горячий кофе, я трачу 30 минут на собеседовании и иду обратно в свою комнатёнку.

Мне приходит оффер. Я меняю Lean на Scrum, платформу ASP.NET на платформу SmartTV и ограничиваю себя подписью в контракте. Чувак мне говорит: «Из геймдева будет очень сложно уйти». Сейчас я могу сказать, он был чертовски прав! Геймдев — это путь в сторону, и чтобы передумать, придётся идти обратно, сократить дорогу не получится. Теперь в будничный день я из центра выезжаю на другой конец города, сопровождаемый массой тленно читающих какую-нибудь книгу или бездумно рубящихся в популярную мобильную игру обывателей.

Сомнение – стена отделяющая тебя от удачи

Маленькая студия — это большая проблема. Когда проектов становится слишком много, графики летят к черту. Иногда почти нет работы и сотрудники вынуждены брать неоплачиваемый отпуск. Все «верхние» ребята друг друга «нагибают», будь-то заказчик или сотрудник звеном повыше тебя. Гибкий график — это средство скрыть тот факт, что часто придётся задерживаться из-за постоянных срывов дедлайна. Единственная вещь, способная удержать человека в геймдеве — его личное стремление написать игру. Лучше — свою собственную.

Если ты не понимаешь задачу полностью, тебе не стоит за нее браться

Когда хобби становится работой — одним хобби становится меньше. Игровая индустрия похожа на особый вид лотереи. Если задержишься, можешь потерять больше, чем приобрёл. Но обилие молодых ребзей, которые пытаются совмещать учёбу и работу, доставляют радости больше, нежели пятничные поглощения пиццуни и алкоголя в окружении брачных людей. Многих удерживает на работе дружный коллектив, где по пятницам совершенно нормально начать бухать со своим шефом, узнавая по ходу пьянки много чего интересного. В этом значимое отличие говнаря-инжинера от манагера, который выглядит словно вылизанный винтик в белой рубашке, с основной задачей беспрекословно идти намеченным курсом, день за днём чекая статистику твоих работ.

Шёл второй год моей рабочей жизни. Я уже мог разобрать в будничной тишине звуки кулера работающего компьютера, шаг каждого коллеги и ерзание чей-то задницы в кресле в  нашем общем просторном опенспейсе. Уже давно приелись раздражающие монотонные стуки клавиш, открытие и закрытие дверей с одинаковым писком, воздух от кондиционера, который продолжает бить прямо в правую щеку.

Недельные митинги чередуются каждодневными стэндапами. Руководство всё чаще говорит про деньги, заманивая людей в дыру безысходности, даже не понимая, что показывает тем самым их истинный, нищебродский облик. Сотрудники хотят делать игры, а руководство хочет делать деньги. Вместо AAA проектов ты делаешь что-то безобразное, что, возможно, понравится домохозяйкам. Это работающие законы маркетологов, неприменимые к среде разрабов и дизигнеров. Но всё же, юные падаваны продолжают по инерции дергать за мышечки, в надежде успеть к пятничному дедлайну, когда усталый взгляд бывалых просто желает заслуженного отдыха обязательно где-нибудь в Европе. Поэтому нужно всегда быть навеселе, сковать братство, общаться, пить, курить, быть со всеми, быть сильнее, не остывать и не оставлять никого. Когда кто-нибудь будет нуждаться, нужно помочь ему выкарабкаться. Именно здесь я узнаю настоящую цену своей работы, которая стоит гораздо выше той серой зарплаты, которую я получаю два раза в месяц.

Честно говоря, сам факт работы в игровой индустрии довольно захватывающий. Но суть не в этом, главное для меня остаётся выход первой игры — отдать дань тому маленькому мальчику, который конструировал собственные миры, сидя в трамвае, автобусе и авто, непрерывно смотря в окно, а приходя домой, переплетал фантазии и реальность, уходя во сне в новый, магический мир грёз. И пусть выпущенная игра на самом деле полный «ацтой», я верю, что именно благодаря играм мы все учимся, обретаем опыт и движемся вперёд, подготавливая себя к предстоящей за окном будущей жизни. Надеюсь, мой скептицизм к современным играм когда-нибудь улетучится, а на место сегодняшним казуальным развлечениям придут игры, в которых, как и прежде, будут царить дух настоящих побед и неиллюзорных поражений. Может, этого уже не случится, потому что я теперь всё меньше смотрю на мир за окном…

Вот ты наговнокодишь и тебе приятно работать с говном?

V7T
office
Прототип системы всегда нужно выбрасывать.

Приходя рано в офис видишь картину повергающую в шок. Десятки людей по-одиночке идут с одинаково большой скоростью в Зикурат, где проведут треть дня, погруженные в рабочий анабиоз. Заходя в здание, поведение людей, ничуть не меняется. Девушки гладят локоны волос, поправляют новую юбочку и мило уходят от взглядов. Все нелепо мониторят инфу лифта, молча выжидая его прибытия. По прибытию, народ быстро расползается по нему, создавая давку. Влезть всем нельзя. Кто-то пытается войти — но из-за перегрузки тихо материт собственный фейл и уходит обратно. Теперь в замкнутом квадрате мы вчетвером. Меня окружают люди которых я видел уже сотни раз, но ничего не знаю о них. Кто-то из них упрямо смотрит в свои ботинки, кто-то разглядывает зеркало, кто-то проверяет телефон или поправляет прическу. В лифтах не принято заводить знакомства.
Выходя, следующие девять часов выпьют из тебя все амбиции дав взамен эквивалент собственного бессилия и чужого благополучия, нервы и жизненные силы воплощённый в материю — деньги.

Типичный рабдень в зикурате:

  • 10:00 Респаун
  • 10:30 В зависимости от приближения дэдлайна: похерфейс/нервное рычание на моник
  • 10:45 Полировка рабместа, протирание очков, тщательное сдувание пыли с клавы
  • 11:00 15+ минутный полустоячий стандап
  • 11:40 Утренняя прокурка / заседание в башиме (бывший башорг) / мемчиков
  • 14:00 Обед
  • 14:40 Поход по магазам в поисках коржиков
  • 15:00 Выяснение отношений с начальством
  • 15:30 Борьба со школотой, студсотой и пр. зергами в инете
  • 16:00 Игра в плейстейшн / осмотр тытуба / залипание имиджбордов
  • 16:00 Срывание сроков / сдача проекта
  • 16:30 Распитие чая / кофе с булочками
  • 17:00 Доделка вчерашней работы
  • 18:00 Почта / скайп / соцсеть/ чтение новостей / хабралента
  • 19:00 Чье-либо празднование / покидание офиса

Я думаю что каждый работник, который работает в конторе все больше и больше времени, должен иметь больше преимуществ перед новым работником. Раньше я говорил про уменьшающийся рабочий день, сейчас я дополню список.
Ничего нового, просто все вкусняшки не нужно давать сразу. ДМС — после года работы, подарочный ноутбук, планшет или телефон после двух лет. Возможность играть в приставку в обеденный перерыв — после 5 лет. Думаю, так сотрудники будут реже «перебираться» в другие конторы. В этом есть некое начало игрофикации офисной жизни. Где с каждым левелом, ты получаешь не только больше очков, но и больше способностей.

В какой-то момент начало было положено. Когда сообщают что компания планирует продаваться, становится не по себе, особенно, когда полугодом ранее ты, общаясь с Senior HR, смутно понимаешь это и нутром чувствуешь недоговорки, а то и на прямой вопрос следовует ответ: «Тебя это не касается». Вот именно, что касается. Такими тупыми решениями маленькие конторы теряют своих лучших людей. По мне, отношение между людьми гораздо важнее, чем приманка гринкартой и переезд в новый офис в центре. Даже если станет лучше, ты будешь помнить, как тебя могут поиметь. Когда компания нанимает множество дешёвых сейлзов и не нанимает годных прогеров — прикидывай продажу. Эти новые люди должны повысить стоимость конторы в глазах покупателя. Во-первых, из-за большего числа людей контора будет тупо стоить дороже. Во-вторых, с бегающими по офису джунами можно нахватать несколько новых заказиков, в случае неуспеха поглощения. Хитрая многоходовочка.

Время движется, я изучаю различные подходы, читаю литературу и обучаюсь, сам себе отвечаю на возникающие вопросы уже без форумов и прочей херни. После испыталки страх увольнения утихает, и ты можешь начать «запускать жука», познавая вещи в дебаге, словно хирург осматривать внутренности софта. В какой-то момент приходит ощущение потолка, значащее, что ты вырос, тебе нужно что-то более сложное, прыжок веры, выше своей головы. Именно в этот момент я начинаю проходить собеседование за собеседованием, страх перед которыми постоянно уменьшается, и это даже становится моим хобби.

Попасть на работу в мировую контору чрезвычайно сложно. Обычно стеклянные офисы таких контор находятся рядом с хреном города, с близлежащим фитнесом. Заходя внутрь, тебя ожидают молодые охранники, чтобы дать бейдж. Ты заходишь и ждёшь. Ждёшь достаточно, чтобы появилось желание вернуться назад. Возможно, это часть интервью, но дальше всегда будет что-то невероятно тупое. В основном, тупыми будут вопросы, задачи и само интервью в целом. Да и вообще тупо искать уверенного в Linux-пользователя, знакомого с Bash и Python, в совершенстве владеющим Angular, умеющего быстро разобраться в неизвестной ему NoSQL базе данных и написать REST на NodeJS. Всё за 60 минут. Интересно было бы пообщаться с таким труъ Full Stack программером с мозгом математика. После сабезы я понимаю, что никакой я ни программист, ни бэкэндщик, ни фронтэндщик, ни знающий английского, простой обычный разработчик, чудом потерявшийся в окружении огромных плазменных панелей, окруженный от мира чудаковатыми гиками и нердами. Чувство обиды и сжатых сроков нахлынули на меня.

Приходи пораньше, отсыпайся пока никто не видит и уходи пораньше

Коллега

Мне стукнуло двадцать три

Я проснулся взрослым человеком с осознанием того, что всё запланированное не сможет стать реализованным. Единственный верный путь в такой ситуации — убрать всё лишнее и оставить лишь самое необходимое; то чем ещё пользуешься и чем планируешь пользоваться ближайшее время. Я начал с каталога игр и удалил с десяток тайлов, которые решительно хотел пройти прежде. Затем в корзину пошли программы, которые не успели выделить меня — всякие музыкальные секвенсоры и различные редакторы, на обучение которых у меня так и не нашлось времени. Я как никогда понимал, что жизнь следует схватить за гриву и отрубить на бегу всё то, что меня держит, найти наконец нечто, что меня ждёт. У меня не было кредитов, ипотеки и постоянной девушки. Меня ничего не держало. Вернее, держало. Я врос в этот город, меня держали проекты на работе и самые лучшие девушки России, на которых иногда оставалось незначительное время.

Какой в этом толк, когда твой программист плачет?

Каждый вечер я возвращался на Ваську, каждый вечер там меня ждали новые люди. В один момент я прошел мимо человека, одетого в костюм бутера, и остановился в раздумьях. Повертев голову в разные стороны, я понял, почему. Понял, насколько нелепо и обидно видеть как служат технологии, математика, биология, химия на идеи маркетинга…

Проект закончился, меня переключили на iOS-разработку. Опять C#, Unity3D (который я пытался изучать, будучи на 3-ем курсе) и совершенно новый для меня облачный бэкэнд. Прошло менее месяца, я остался в проекте один на один заканчивать приложение полуторагодовалой давности с отсутствием документации, как в старые-добрые времена. В Xcode у меня не было никакого опыта, да и тестового устройства к тому же не оказалось. Нельзя что-либо писать, имея лишь эмулятор. Когда тестовое устройство появилось, я прифигел, сколько всего надо сделать. Так я понял, что хороший специалист всегда имеет при себе новые девайсы и последние версии ОСей. И дома имеет тот же набор программ, что и на работе.

Когда я начинал это писать, только Бог и я понимали, что я делаю. Сейчас остался только Бог.

Кто-то из интернета

Хочу свободы, хочу жить в собственной квартире, хочу на байке добираться на работу за полчаса. Но у меня нет желания горбатится десять лет ради этого. Всё что у меня есть – только я сам, и то мгновение, что отделяет меня от моего будущего.

Благодаря другу, который работает в стартапе, решаю поехать в Москву. Хотя меня очень сильно влечёт поработать в большой конторе, лучше снова в центре Питера. Несмотря на уговоры коллег и друзей, я оставляю всё и чуточку больше, и прихожу на работу в шаговой доступности от Красного Октября.

Продолжение следует…

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

way 0
Предыдущая статья

Путь разработчика. Часть 0х0. Начало или что я должен сделать?

way 2
Следующая статья

Путь разработчика. Часть 0х2. Шаг в стартап