Прошлым летом мы запустили рубрику «10 вопросов программисту», и на протяжении 10 выпусков в ней было довольно весело. Хорошие люди, у которых не всегда есть доступ к огромной аудитории, смогли высказаться. Кто-то нашел понимание, кто-то наткнулся на критику.
Перед 11 выпуском мы брали небольшую паузу, которая затянулась слишком надолго. Исправляемся, возвращаемся. Теперь у вас снова есть возможность интересно о себе рассказать. Формат почти тот же, мы всего лишь немного обновили вопросы, и будем делать это в каждом следующем выпуске.
Если вам есть что о себе рассказать или назрел мощный вопрос, над которым поломает голову все сообщество — пишите в личку мне или baragol.
А в первом выпуске Дмитрий Яворский (ekabandit) из Екатеринбурга. Он рассказывает, как спасал РЖД от вируса WannaCry, отвергал офферы Сбербанка и как бы законодательно повлиял на индустрию.
1. Расскажи рабочую историю, которую будешь с гордостью пересказывать внукам
Я на всю жизнь запомню, как в первый раз остался исполнять обязанности начальника в РЖД — управлять 50 сотрудниками разных возрастов — как раз в момент атаки вируса Wannacry.
Дело было вечером пятницы. Я был уже дома, только открыл пиво, как в СМИ начался спам про всемирную вирусную атаку. Потом информация перешла в корпоративные диалоги. Я быстро допил бутылку и поехал на работу. Мы отключились от интернета, заражений зафиксировано не было. Проведя на работе еще два часа без дела, я решил, что ничего серьезного не произойдет и снова поехал спать.
В семь утра начальник отдела безопасности уже выдавал мне огромный список серверов, где нужно обновлять Windows. Еще через 3-4 часа Microsoft выпустила обновление на windows 2003, который не поддерживался несколько лет. Список серверов, которые нужно обновить, заметно увеличился, и пришлось вызывать всех свободных людей. К тому времени, мы оставили попытки оживить WSUS, который по непонятным причинам не работал, и стали обновлять сервера вручную.
За обновлением мы весело провели все выходные, быстро развертывали с нуля 2-3 сервера, которые уходили в синий экран после установки обновлений, смотрели хоккей на проекторе (кстати в те выходные Россия обыграла Словаков 6:0), удаляли десятки забытых серверов.
В итоге — отличное мероприятие для сплочения коллектива, и не одного заражения сервера в Екатеринбургском ЦОД.
То, что буду работать в IT, я знал еще со школы — хотел пойти по стопам родителей. Несмотря на то, что я учился в литературном классе, у нас была сильная учительница по информатике. Участие в различных олимпиадах давало возможность периодически прогуливать уроки. Там нас учили писать на Pascal. Помню, отец рассказал мне про оператор GOTO, за использование которого я регулярно получал на уроках.
Учительница на тот момент имела связи в Яндексе и предлагала пойти на стажировку или учебу. Но я со своим юношеским максимализмом говорил ей: «Мне не нравится Яндекс, я пользуюсь Гуглом». Вернуться бы назад и дать себе подзатыльник.
После школы я поступил в ЖД университет по целевому (с последующей отработкой на РЖД) на специальность «Информационные системы и технологии». Думал, что буду продолжать развиваться в программировании, но за четыре года (и два года магистратуры после) был только семестр программирования на ассемблере на листочке и семестр Delphi.
С 3 курса я начал работать на РЖД, где первое время был эникейщиком. Много рабочего времени уходило на подготовку курсовых и игру в CS или Warcraft. После того как я проработал какое-то время, мне стали больше доверять, и тут я познакомился с большим миром администрирования. Больше всего меня зацепила IBM WebSphere, в последствии я даже входил в экспертную группу в РЖД по этому продукту.
2. Джуновский случай, за который до сих пор стыдно
Помню, в начале карьеры администратора разворачивал сервер для каких-то своих нужд и решил, что на нем нужно обновить конфигурацию Apache Tomcat с продуктивного сервера.
Подключившись к обоим серверам сделал все ровно наоборот — обновил Tomcat на продуктивном сервере. Через пару минут, когда пришел инцидент, я перешел на резерв, а на продуктивном сервере настроил все заново. Я все успел сделать минут за десять, обвинив систему мониторинг в ложном срабатывании.
Мой обман вскрылся через полгода, когда пользователей перевели на этот сервер, и у них ничего не заработало, потому что я забыл скорректировать конфиги.
Как у разработчика таких случаев не было. Хотя ходили слухи, что написанный мной сервер мониторинга периодически клал одну из важных систем РЖД из-за большого количества запросов, но я в это не верю.
3. Самая больная из твоих текущих проблем, которую пока не получилось решить
Сейчас для меня большая боль — это понять Rx.js с его Observable и pipe. Для меня это какое-то наследие Angular. На конференциях и в туториалах говорят, чтобы понять Rx.js нужно изменить образ
Сейчас у меня с РЖД идет судебное разбирательство. Я учился по целевому и ездил на курсы, а это предусматривает оплату, если не отработать некоторое количество лет после учебы. РЖД не предоставили мне рассрочку, которая полагается мне по их нормативным документам. Жаль, что некоторые отдельно взятые руководители не умеют хорошо расставаться с сотрудниками. Из этого складывается мнение о всей компании, хотя за время работы я успел познакомиться с людьми из разных городов и разных профессий, и люди там действительно крутые. Вообще в РЖД очень развитая молодежная политика и отдельные подразделения вкладывают очень много сил в развитие софт-скилов сотрудников.
4. По какому принципу ты выбираешь работу
При выборе работы рассматриваю только варианты на своем стеке. Сейчас это React, Redux и в ближайшее время не планирую с них слезать.
Второй важный фактор это команда. Я предпочитаю работать с коллегами выше меня по скилу, у которых есть чему поучиться. В последнее время стал обращать внимание на размер и профиль компании. Если она большая, а ИТ — основной профиль, тебе не придется на должности программиста быть сисадмином.
Ну и думаю стоит упомянуть — хотя это уже и стало стандартом для программистов — плавающее начало рабочего дня, возможность работать из дома или взять отгул в любое время. Остальное это вопрос денег.
5. Почему хороших программистов стало так сложно найти в последние годы?
(Вопрос от Ивана Шмакова ishmakov из Voximplant)
Я вижу несколько причин:
- Сейчас понятие хороших программистов сдвинуто в сторону медийности.
- Существующее образование не дает тебе возможности устроиться даже не позицию джуниора. При этом разрыв знаний с каждым годом увеличивается из-за устаревания учебной программы и быстрого развития сферы.
- Много людей становятся программистами из-за относительно высоких зарплат и просто большого хайпа отрасли.
- Опять же из-за нехватки программистов, сейчас даже в топовых Российских компаниях HR используют активный хантинг. И если специалист действительно хороший, то помимо вашего у него наверняка уже есть 2-3 оффера, при чем он даже может не находиться в поисках работы.
6. Представь, что градации Junior, Middle, Senior не существует. Какую шкалу ввести для обозначения компетенций разработчиков? Куда ты себя в ней поместишь?
(Вопрос от Лизы Швец Schvepsss из Додо пиццы)
А она существует? Нет общепринятого перечня скиллов для каждого грейда. Как не крути, все сводится к переименованию этой градации. Ну, например, если рассматривать с позиции менеджера, то уровни будут такие:
- Самостоятельно не решит большую задачу.
- Самостоятельно решит задачу, но качество кода и скорость оставляет желать лучшего.
- Хорошо и быстро решит задачу с приемлемым качеством кода.
- Помимо прочего пункта сможет обсудить фичу с заказчиком (прокаченные soft скиллы + понимание бизнес-процесса).
Оценка себя выглядит довольно не объективно, но все же поставил бы себя на третий уровень.
Мое самое запоминающиеся собеседование было в Сбербанке на Middle Frontend разработчика (именно сбербанк, а не сбертех). Когда меня пригласили на интервью, у меня уже был оффер из другой компании, но я все-равно решил сходить — наверное больше для опыта.
Там все проходило в несколько этапов. Сначала я отвечал на вопросы по JS, через три дня поговорил с руководителем подразделения. С ним мы говорили про мои фотки в VK с Шерегеша и на каком горнолыжном курорте лучше кататься, про мой опыт участия в проектах как руководителя, дипломы, грамоты.
Через пару дней мне выслали оффер, который был ниже других. Я отказался. Потом прошла еще одна встреча с руководителем, и мне выровняли оффер по средней сумме за год с учетом квартальных и годовых премий. В последнем телефонном разговоре меня пригласили побеседовать с сотрудниками сбера, которые ушли из компании, от которой я принял оффер. Они должны были мне описать, почему туда не стоит идти. Я понимаю, специалистов на рынке не хватает, но это очень черный ход.
После этого собеседования я сделал вывод, что большие компании охотнее смотрят на дипломы, знания и сертификаты, чем на реальный скилл.
7. Какие фичи должны быть в идеальном языке программирования/фреймворке/другом инструменте и чего там быть не должно?
Идеальная «фича» для языка — это хорошая документация от создателей. Взять в пример Javascript. Есть очень подробная спецификация ECMAScript, она безусловно подходит для того, чтобы разобраться в аномальном поведении отдельных частей кода/функций, но учить язык по ней, думаю, не стоит.
Каждый язык хорош, пока он решает твои задачи. С появлением идеального языка произойдет остановка развития, и появится человек (возможно компания), которая будет управлять отраслью. А для дальнейшего развития важная конкуренция.
8. Если у тебя появится возможность законодательно влиять на индустрию — что ты сделаешь?
Введу налог на создание фронтенд фреймворков. Шутка.
В России для начала я бы выложил код государственных ИС в opensource. Думаю, сообщество решило бы много проблем с доступностью и багами в государственных системах, которыми нам приходится пользоваться.
Открыл бы, где нибудь на юге России, особую зону для развития ИТ компаний с пониженным налогообложением. Могло бы получиться что-то вроде Кремниевой долины. Я считаю, это хороший ход в плане открытости Российского сообщества для мира, удержаний толковых специалистов у нас в стране и, раз уж сейчас выстроился такой тренд, то проведения импортозамещения.
9. Будь у тебя неограниченные ресурсы (время, деньги, мощности, люди), каким бы был твой личный проект?
Я бы занимался разработкой умного города. Начал бы с Екатеринбурга, с проблем, которые вижу в повседневной жизни сам. Например, дороги. Сейчас я добираюсь на машине до работы 20 минут, обратно 60 минут, а то и больше. Я бы реализовал искусственный интеллект, который в зависимости от загруженности дорог и наличия пешеходов регулирует работу светофоров во всем городе.
10. Что ты скажешь ИИ, который стал умнее тебя?
Я бы заставил учить себя. Или предложил ему спроектировать жизнь экспериментального города под управлением ИИ и рассказать, к чему это приведет.
Автор: arttom