Программист в госкомпании: уверенная стабильность или «непробиваемая бюрократия»?
Максим Епихин пишет веб-приложения в государственной организации. Он рассказал, чем ему нравится работа на государство и кому она подойдёт.
Иллюстрация: Катя Павловская для Skillbox Media
Максим Епихин
об эксперте
Максим Епихин — PHP-разработчик. Вдохновляется природой и отдыхом за городом. Любит хоррор-сериалы и геймдев, ведёт канал на YouTube и блог maximepihin.ru.
С раннего детства мне не нравились правила игр: всё казалось банальным и неинтересным. Я хотел придумывать свои правила. А когда познакомился с компьютерными играми, то загорелся идеей создать свою.
Как я попал в веб-программирование через игры
В школе я собрал на Construct Classic 2D-игрушку наподобие Mario — про путешествие жирафика, который ищет дом. Потом создал ещё две игры, но это было хобби, а не серьёзная разработка. Я показывал проекты друзьям, мы их обсуждали и обменивались идеями.
Позже один из друзей тоже увлёкся геймдевом и рассказал мне о движке Unity 3D. Я сделал на нём несколько 3D-игр с ландшафтами, а для одной даже решил создать сайт — так и познакомился с вебом.
Сначала я изучил вёрстку на чистых HTML и CSS, а потом приступил к программированию на PHP и JavaScript. Сайт, который я сделал, понравился одноклассникам, и меня попросили написать похожий. Я стал пилить сайты для лабораторных по информатике и зарабатывать первые деньги на веб-разработке. А уже в универе создал сервис «Шаблонджер», на котором студенты создавали и размещали свои сайты.
Так я полюбил веб и решил развиваться в этом направлении. Мне по душе пришёлся бэкенд, поэтому я серьёзно взялся за PHP. Обучение проходило не гладко: я много раз забрасывал, возвращался к геймдеву и обратно. Но когда понял, что в вебе можно хорошо зарабатывать, начал искать работу.
Как я устраивался в ФГАНУ ЦИТиС им. А. В. Старовойтова
Когда в ноябре 2018 года я возвращался домой с очередного собеседования, мне позвонили из ФГАНУ ЦИТиС им. А. В. Старовойтова и пригласили на интервью. Я как раз находился в 20 минутах ходьбы и сказал, что готов прийти хоть сейчас.
Собеседование пролетело довольно быстро — в отличие от предыдущих, где нужно было пообщаться с HR, пройти интервью по софт-скиллам, а в финале встретиться с техлидами — беспощадными «вершителями судеб». В ЦИТиС тоже много умных и опытных разработчиков, но общаются они гораздо дружелюбнее. Мы сразу уселись за большой стол и провели общую беседу с HR, ведущими программистами и техлидом. У меня спрашивали, что я умею, какое есть образование, дипломы и сертификаты. Затем проверили знания в PHP и базах данных и посмотрели портфолио.
Почти сразу мне предложили работу, но я попросил пару недель на ответ — был ещё оффер из Roistat, поэтому хотелось спокойно подумать. Как вы уже догадались, я выбрал ЦИТиС — уж очень понравилась дружелюбная атмосфера на интервью. Несмотря на крепкие скиллы, мне сначала предложили должность с минимальным окладом — чтобы посмотреть, как буду справляться.
Мой отдел разрабатывает веб-системы по госзаказам. Поначалу меня пугал масштаб проектов, сложность и обилие legacy-кода, поэтому уже спустя три дня я захотел уволиться. Но, как известно, сдаются только слабаки, поэтому я стал расспрашивать начальство, других разработчиков и потихонечку втянулся в проект, а позже стал за него отвечать. Мне понадобилось два месяца, чтобы привыкнуть к процессам — потом стало гораздо проще.
Классическое образование vs настоящая работа: какие знания пригодились
Я окончил бакалавриат и магистратуру в РЭУ имени Плеханова. А потом поступил в аспирантуру на единственное бюджетное место. С точки зрения программиста знания, которые я получил в университете, не пригодились на работе. Зато они помогли мне как начальнику, аналитику и просто в жизни. Я стал думать более структурно и логично.
Мы изучали управление информационными системами и консалтинг в IT. Сейчас проходим системный анализ, управление и обработку данных. Полноценной разработки ни на одном предмете не было — она не входит в учебную программу. Зато на «Математическом обеспечении» ребята, кажется, кодили днями напролёт. Но туда было сложнее поступить.
Я пошёл в магистратуру и аспирантуру, чтобы вовремя получить все нужные бумажки и не попасть в армию. Я не питал особых надежд и понимал, что ничему новому меня там не научат. На семинарах мы рисовали схемки BPMN и ERD, а всё, что нужно для работы, я изучал самостоятельно.
Бесполезно пытаться освоить разработку без сильного желания учиться. Возьмите заведомо непосильный проект, который не сможете выполнить с имеющимися знаниями. Тогда вы будете вынуждены изучать новые технологии и библиотеки. Так я осваивал PHP, объектно-ориентированное программирование и шаблоны проектирования.
Я хотел написать с нуля систему блога. Учился по YouTube-каналам WebForMySelf и урокам Дмитрия Елисеева, советам и материалам из свободных источников. Потихоньку у меня складывалось цельное представление о веб-разработке. Да, при таком подходе придётся миллион раз переписать проект, но будьте уверены: после каждой итерации он будет становиться лучше. Конечно, если вам это нужно.
Считаю, что найти работу можно с обычным стеком:
- HTML — язык разметки, на котором создают структуру веб-страниц;
- CSS — каскадные таблицы стилей;
- JavaScript — язык фронтенд-разработки, рекомендую учить по javascript.ru;
- PHP — скриптовый язык для бэкенда. Учить можно по официальной доке — она у языка довольно подробная.
Изучите операторы, циклы, основы ООП и работу в связке с JavaScript. Ещё нужно хотя бы на базовом уровне понимать, как работают HTTP-запросы, уметь их отправлять и получать. Остальные инструменты можно освоить уже в процессе работы.
Если вы изучаете трендовые технологии, они обязательно пригодятся в работе и вы сможете попробовать их на практике. Когда я только пришёл в ЦИТиС, мы писали на своём фреймворке и чистом PHP, но решили уйти в сторону более современных и продуманных решений. Остановились на Yii2 — его знали большинство наших программистов, и он подходил под наши задачи. По счастливому совпадению, именно Yii2 я изучал в свободное от работы время.
Какие инструменты я использую в работе
Хоть я работаю в государственной компании, у меня довольно стандартный набор инструментов для веб-разработки:
- PhpStorm — это основная IDE для редактирования и написания кода.
- DataGrip или бесплатный DBeaver для баз данных. Они позволяют корректно управлять базой данных, составлять запросы, иметь наглядное представление о данных и работать с ними.
- Postman — чтобы тестировать HTTP-запросы и смотреть, как их отрабатывает база данных.
- Стандартные линуксовские утилиты для системного администрирования, Apache, PostgreSQL, MySQL и другие.
В ближайшее время я планирую познакомиться с Go. Думаю, каждый PHP-разработчик рано или поздно переходит на него или хотя бы пробует. Ещё хочу поработать с MariaDB и MongoDB.
Также изучаю Slim — фреймворк для создания API. Это интересный и простой инструмент, но для достижения более качественных решений приходится вникать во множество смежных технологий, что меня и коснулось. Если же у меня возникают вопросы, то я иду на PHP Standards Recommendations и Stack Overflow.
Как построена разработка в госкомпании
Мы работаем с информацией ограниченного распространения, поэтому всегда ездим в офис. Так как мы совместно разрабатываем большой проект, задачи часто пересекаются и нам приходится тесно общаться и помогать друг другу. Поэтому софт-скиллы у нас в приоритете. Нужно уметь работать в команде, адекватно реагировать на критику и соблюдать субординацию.
В самом начале я решал простые задачи и писал много кода. Но со временем моя работа стала более стратегической — задачи усложнились, и я стал тратить больше времени на обдумывание решений. Когда меня повысили до лида, я стал менторить новичков, управлять командой и проводить собеседования. Кроме того, теперь я решаю сложные архитектурные задачи, общаюсь с заказчиками и провожу системный анализ.
Когда первоочередные задачи решены, я помогаю коллегам или занимаюсь самообразованием. У нас в компании это поощряют и даже оплачивают обучение. Так я прошёл курсы по безопасной разработке ПО от «Эшелона» и разработке под Astra Linux.
Плюсы и минусы работы на государство
Начнём с недостатков. Я вижу всего два:
Невысокая зарплата. Наши зарплаты гораздо меньше, чем в частных компаниях. Но у нас есть повышения и премии. А ещё здесь более лояльное руководство, чем в коммерческой компании, и действительно дружный коллектив.
Невозможно быстро внедрять новые технологии. Мы разрабатываем современный продукт, но не можем быстро внедрять современные технологии, даже версии языка. Ведь сейчас в стране высокий спрос на безопасность, и выходить за рамки ГОСТов запрещено. ГОСТы сертифицируют конкретные версии технологий, поэтому часто они могут быть устаревшими.
И всё же это не такая страшная проблема, как может показаться на первый взгляд. Всегда можно договориться с вышестоящими инстанциями и согласовать новую версию технологии. Надо только объяснить, зачем нужна именно она.
Теперь к плюсам:
Стабильность. Я точно знаю, что завтра меня не сократят и компания не обанкротится. У нас нет увольнений из-за пандемии или карантина. Наоборот — многих в этот период даже повышали.
Контакт с начальством. Наша организация не погрязла в бюрократии — можно поговорить с начальником любого уровня, спросить, посоветоваться и что-нибудь предложить. Начальники выслушают, вникнут в вашу проблему и даже пойдут навстречу.
Дружная команда. У нас классный коллектив, в котором нет токсиков и никто никого не подставляет. Даже наоборот: приходишь на работу и чувствуешь себя как дома. Бывший коллега ушёл работать за гораздо большие деньги в частную компанию и очень жалеет, что потерял такую атмосферу и дружелюбный коллектив.
Резюме
Если для вас главное — много зарабатывать, а условия не столь важны, идите в коммерческую разработку. Но если хотите стабильный средний доход, быть уверенным в завтрашнем дне и планировать на много лет вперёд, то работа на госпредприятии — для вас. Конечно, я тоже хочу зарабатывать больше, но всё же отношусь ко второму типу. Мне нравится, что я могу заниматься личными проектами в свободное время и совмещать основную работу с фрилансом.