Елена Правдина

Говорят, в IT много платят

Как построить успешную карьеру разработчика, оставаться востребованным и не выгорать

Серия «Книги-драйверы»

© Правдина Е.В., текст, 2021

© Оформление. ООО «Издательство «Эксмо», 2021

* * *

Вступление

«Дверь не закрыта!»

Расслабленный тон демонстрации многообещающего приложения по управлению умным домом моментально испарился. Обновляя экран телефона с только что выкаченной версией и вглядываясь в статус своего жилища, глава разработки за столиком в баре напряженно пытался осознать – дело в его забывчивости или же в просто-напросто севшей батарейке домашнего дверного датчика.

Знание внутреннего устройства приложения позволило тогда спокойно продолжить вечер. Квартира была надежно заперта. И если вы хотите сэкономить деньги на такси или время на общение со службой поддержки из-за очередного странного поведения вашего заказа – порой не лишним будет понимать, существует ли проблема в действительности или это всего лишь очередной баг.

Сейчас IT все теснее переплетается с повседневным миром вокруг. Либо вы уже пишете код, задаваясь вопросами своей карьеры, выгорания и счастливой пенсии, либо же знания о том, как устроена сфера программирования, как работают приложения и создаются магические строки, понадобятся вам в обозримом будущем. Тоньше настроить под себя умный дом. Отдать ребенка в «правильный» IT-кружок. Вовремя сменить бесперспективную или наскучившую профессию.

Эта книга – сборник ответов, рекомендаций и забавных историй. Она призвана помочь и направить по верному пути желающих начать, а для тех, кто уже начал – сохранить любовь к работе и профессионализм на долгие годы, отбросить сомнения и дать подсказки по всем основным этапам карьеры и жизни в IT. Грамотно расти. Быть ближе к изменениям, что проникают в наш быт. Создавать, оставаясь увлеченным разработчиком. Или хотя бы понимать. Больше, чем те, кто никогда не бывал за кулисами.

Я не известный человек – я обычный, самый настоящий разработчик, не испорченный излишним медийным шумом.

За первые 10 лет работы успела пройтись по всем тропам и поджидавших на них граблям карьеры фронтендера. Окончила с отличием профильную специальность. И да, правда, это никому не нужно. Начинала с завораживающего причастностью тогда и ставшего немодным теперь: работала в инженерной поддержке далеких от IT сотрудников библиотеки, собирала из коробок и настраивала десятки рабочих станций за день. Писала запросы на невообразимом сейчас французском к стандартной специализированной БД для библиотечных систем. Верстала под легендарный Internet Explorer 6. Писала на порицаемом ныне PHP. Грешила фрилансом: немецкое модельное агентство еще держит мое имя в IT-команде, а лучшие скутеры и мотоциклы и по сей день продаются в моем родном городе сквозь написанные в студенчестве строки, с дизайном, достойным места в музее IT.

Трудилась в лучшей компании онлайн-интернет-вещания. Разрабатывала ТВ-приложения под Samsung/LG/Philips, когда Smart TV только зарождался на рынке. Писала видеоплееры для всем известных и высоконагруженных проектов. Реализовывала стандарты видеорекламы – подводные части ежедневно наблюдаемых вами десятков баннеров, пре-, мид– и пост-роллов. Делала простые сайты и сложные порталы. Создавала адаптивные – для каждого браузера, любого устройства – интерфейсы, борясь за каждый пиксель по макетам. Проклинала зоопарки напичканных багами мобильных.

Изведала радости и муки руководства фронтендерским отделом. Собеседовала, взращивала кадры, как могла, скатывалась в психологию, принимала уходы как личные потери – и вырастала, чтобы не принимать.

Попала в одну из самых желанных IT-компаний нашей страны.

Да, поработать за навеваемой модой границей не успела. Хотя порывалась. И даже ступала одной ногой. Просто поняла, что мне это не нужно.

Зачем я написала книгу? Затем, чтобы помочь всем причастным избежать ошибок на своем пути, идти к намеченным целям без поворотов на лишние тропинки и, конечно же, стать профессиональнее и счастливее.

И еще, чтобы показать ежедневную рутину, жизнь, какой ее видят профессионалы IT, вставая утром и ложась вечером. А чаще – ночью. Мир, которому отдано ХХ часов в сутки, отдано всё, что есть у нас: молодость и энтузиазм. Где мы существуем в светлое время суток. Что видим вокруг. Что думаем о мире. Как общаемся. Влюбляемся и выгораем. Находим смыслы и идем дальше.

Мне писали. Студенты профильных специальностей и опытные разработчики. Полицейские, экономисты и даже сборщики корпусной мебели. Все они находили в книге мотивацию продолжать. Подтверждение своим мыслям, способы выхода из сложных ситуаций. Понимание, что ждет их в IT. Всего один опубликованный на Хабре[1] пост привел к тысячам скачиваний. Искренне надеюсь – вы из тех, кто найдет для себя в книге что-то важное и полезное.

Для кого эта книга

Для тех, кто хочет связать свою жизнь с IT, для начинающих и думающих, быть или не быть. Информация, очищенная от моды, онлайн-курсов и инфобизнеса.

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

Для тех, кто измучен рутинной работой, наскучившей или потерявшей актуальность в стремительно меняющихся реалиях. Кто, желая, но терзаясь внутри сомнениями и, быть может, не веря в себя, хочет попробовать в IT. Начать, сделать поворот рабочего кресла к настоящему программированию, тестированию, управлению – любым граням серьезной IT-разработки.

Для джуниор-, мидл-разработчиков и опытных профессионалов – как сборник советов по каждому этапу карьеры и очередной биографический нон-фикшн: посмеяться над историями, увидеть себя, задуматься, признаться себе, не согласиться со взглядами.

Структура книги

Мы все проходим определенные этапы на своем жизненном пути, равно как и на пути профессиональном. Трудно отделить их – влияние второго на первый в судьбе достойного разработчика колоссально. На каждом из таких этапов свои цели и задачи, свои советы и опыт уже прошедших ранее по этому пути. Поделиться последними и вдохновить на новые свершения и призвана эта книга. Хочется верить, ее структура сформирует некий Advice Driven Behaviour – поведение, управляемое советами, по аналогии с TDD – Test Driven Development – известной всем разработчикам методологией, основанной на написании успешно проходящих тестов, а затем уже самого программного кода.

Книга поделена на части, согласно этапам IT-карьеры и жизни: от обучения и начала до профессионализма и руководства, выгорания и переосмысления. Название каждой части базируется на аналогии с основными стадиями создания и работы программного обеспечения. Части содержат разделы, посвященные важнейшим вопросам на данном этапе.

DESIGN – проектирование. Часть о периоде с момента зарождения цели о вступлении на путь IT до формирования четкой картины о шагах по ее достижению.

«Когда начать», «С чего начать», «Как выбирать информацию и отсеивать ненужное» – в этих разделах разобраны проблемы места и времени старта, обучения, правильных источников. Так ли важен возраст и профильное образование? Какие книги помогут, а какие курсы стоит обходить стороной? На что обратить внимание, как выстроить мышление и почувствовать себя на шаг впереди остальных. А это зачастую отличная мотивация, чтобы продолжать захватывать мир. По крайней мере, для нас, амбициозных программистов.

Мы знаем, что заказчик всегда меняет требования. Учесть все пути, по которым пойдет развитие продукта, – задача практически невыполнимая даже для разработчика с бородой, длиною во всю историю развития IT. Так что и здесь – о шагах самых первых, пока жизнь и ваши цели не внесут свои разумные коррективы.

WRITE – написание кода. Часть посвящена основному этапу создания своих навыков, активного изучения теоретических основ, периоду начала программирования на популярных и не очень языках, средах и фреймворках. В случае более-менее классического сценария развития событий – данный этап посвящен обучению в вузе.

Как найти вдохновение и проверить, есть ли оно у вас, насколько важны усердие и глубина, какие типажи успешны в IT и как использовать конкуренцию – раздел первый «Базовый класс: основы успеха» — о ключевых столпах достижений.

Факультативы, научная деятельность, спортивное программирование и увлечения – раздел второй «Расширяем роли: смежные активности» — о вариациях IT-пути и дополнительных занятиях, дающих необходимое сейчас в IT разностороннее развитие.

Личные отношения и сила их воздействия на ваш рост как человека и профессионала – раздел третий «Первая весна Естественного интеллекта» — о судьбоносных формах влияния на начальных этапах.

COMPILE – сборка и запуск. Часть о начале работы, первых шагах по применению полученных навыков в промышленных масштабах. О разрыве обучения с реальностью и приведении их в гармонию.

Как поддержать страсть к разработке и не навредить будущей карьере – раздел первый «Выбор сборщика» — о выборе первого места работы.

За какие задачи браться, как не распыляться, что станет плюсом, а что скорее помешает дальнейшему росту – раздел второй «Примеры бинарников» — о выборе между мелкими и крупными компаниями, опенсорсом, фрилансом и заказами для знакомых.

Как вести себя в команде и к какому микроклимату стремиться – раздел третий «Оптимизация поведения», об отношениях в коллективах.

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

На что обратить внимание в поисках лучшей работы – раздел первый «Выбор движка» — о серьезных проектах и компаниях.

Как управлять разработчиками – раздел второй «Между 0 и 1: карьера и руководство» — о становлении признанными лидерами и уважаемыми сеньорами.

Как выстроить крепкую и позитивную профессиональную атмосферу – раздел третий «Личные взаимоотношения» — о поведении с коллегами.

Что сделать для подготовки и как вести себя в ходе рекрутинга – раздел четвертый «Собеседования» — об извечных и порой диссонансных IT-интервью.

Сколько получают IT-шники – раздел пятый «Цена себе: зарплата и справедливость» — о критериях формирования зарплаты и путях её повышения.

Нужна ли вам релокация – раздел шестой «Работа за границей» — о немаловажных факторах при выборе между трудом на родине и за рубежом.

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

DEBUG – отладка. Часть о проблемах разработчиков со стажем. Многие сознательные и ответственные специалисты признаются, что уставали. Думали открыть свою мастерскую по изготовлению шкафов, или, скажем, автомойку. Посвятить себя фотографии. Да и, в конце концов, – выползти из шкуры «детей подземелья» на свежий воздух, под лучи солнца и ароматный ветер. Иными словами, бросить к черту всё и уехать в путешествие на накопленные остатки.

На что обратить внимание, когда кажется, что все известно и хочется перемен – раздел первый «Поиск: проблемы дальнейшего развития» — о частых ошибках профессионалов на пути к росту.

К чему приходят разработчики, с какими мыслями борются. Как выбраться, потеряв смысл, стряхнуть пепел и продолжить – раздел второй «Профессиональное выгорание» — о предупреждении выгорания, его признаках и борьбе с ним.

REFACT – приведение в порядок. Часть о построении более-менее гармоничных отношений накопленного опыта с внешним миром и полноценной жизнью.

Как найти и отсечь лишнее, установить границы – раздел первый «Анализ» — о поддержании баланса между жизнью и работой.

Какие проблемы нарастают в IT, и что ждет всех причастных в будущем – раздел второй «Горизонт событий» — о хобби, семье, отношениях, детях и жизненных векторах зрелых специалистов.

Куда уходят разработчики, дизайнеры и менеджеры – раздел третий «Что кроме» — об изменчивости мира и примерах успеха IT-специалистов в других профессиях.

Польза от прочтения

Вы узнаете, когда и с чего начинают свой путь в IT, как выбирать место работы и выстраивать отношения в жизни и на проектах. Что важно, а что лишь информационный шум, что даст вам фору, а что никогда не приведет к статусу высококлассного специалиста.

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

Почувствуете, как стать тимлидом и руководить, «побеждать» на собеседованиях, бороться с выгораниями и развиваться. Где искать вдохновение, как попасть в компанию мечты и оставаться жизнерадостным разработчиком.

Найдете мысли, подсказки и, быть может, ответы по всем основным аспектам своего карьерного пути, чтобы продолжить существовать в IT профессионально и счастливо.

DESIGN

От зарождения идеи добиться успеха в IT-разработке до первых действий

Когда начать

Is there right time for?..

«Уже слишком поздно», «Смогу ли я?», «С моим экономическим факультетом?». Герои меняются: гуманитарный диплом, непрофильная профессия, цены ненужных курсов, возраст сомнений.

Одна напутственная фраза стартовых дней моего IT-обучения прочно врезалась в память:

«Ты никогда не сможешь соперничать с мужчинами – пока они будут писать код и совершенствовать свои навыки, ты будешь жарить котлеты».

Я вспоминаю ее и по сей день. То чувствуя на миг, что стою в шаге от принятия той безнадежности и смирения, то, и гораздо чаще, – упиваясь осознанием, что да, я смогла: избежать, добиться. И вы – никогда не допускайте первого.

Мой путь в IT начался классе в десятом, когда в сознании начал всё серьезнее вырисовываться вопрос поступления. Стоит отметить, что я выросла в семье, состоящей по большей части из врачей, и по меньшей, но столь же значимой для меня, – преподавателей. С детства все разговоры, шутливые вопросы и представления о моем будущем витали вокруг профессий доктора и учителя. Да и я сама была искренне убеждена, что продолжу семейную традицию и стану хирургом или лором, как бабушка, акушером-гинекологом, как дедушка или, в самом близком и понятном мне случае, – терапевтом, как мама. Каждый из них отдавал всю свою жизнь профессии и становился одним из лучших в своем кругу, занимал руководящие должности: управлял отделением или был заведующим консультацией. Их путь хоть и был требующим массы сил и отдачи, но оставался прозрачным и понятным. Одна специализация, одно место работы, одни глубокие знания – и на всю жизнь. Каким любопытным и тяжелым для меня позднее станет осознание: в IT всё не так. Попытки проецировать профессиональный опыт другой сферы и иного поколения на представления о будущей жизни и работе добавили сложностей принятия на начальных шагах карьеры. В области, где за год твои навыки и знания могут устареть достаточно, чтобы перестать вызывать блеск в глазах рекрутеров, да и в глазах собственных, где появляются и уходят в прошлое фреймворки, мода на стили и пути решения одних и тех же ежедневных задач. Перемены происходят так стремительно, что спасают лишь гибкий ум, глубокое понимание базовых концептов и непрерывное, ежечасное, ежеминутное погружение, самообучение, чтение, развитие – и практика, практика. Но, впрочем, обо всём по порядку.

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

Пожалуй, такое время серьезного старта – средние и старшие классы, с прицелом на вуз – одно из самых классических. Еще лет 15 назад, когда этот старт совершала я, то было время и вовсе раннее: мало кто знакомился с азами программирования сверх школьной программы информатики. Да и в общественном представлении «хайпа», как это принято говорить сейчас, вокруг IT – с тем кадровым голодом и космическими зарплатами – не предвиделось. Никаких фронтенд-разработчиков[2], IT-дизайна, понятий UX/UI и бригад тестировщиков программного обеспечения не существовало в массовом сознании отрасли. PhotoShop не предугадывал появления толп веб-дизайнеров, ринувшихся отрисовывать макеты динамических страниц в продукте, предназначенном для обработки статичных растровых изображений. ВКонтакте еще не был запущен, Falcon только пыталась выбраться из фантазий инженеров в бескрайние слои атмосферы, а устройство повседневного средства связи и аппарат для создания снимков, само собой, ничего не знали о возможном единении.

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

Доступ в Интернет осуществлялся по телефонным модемам и заветным карточкам на ограниченное время, а лабораторные работы те счастливчики, у которых были более-менее честные уроки информатики, приносили на дискетках. Переформировать свое сознание на higt-tech-восприятие и включиться в бесконечную гонку технологии тогда требовало некоторых усилий.

Сейчас всё проще. Даже если вы решите начать одновременно с поступлением, и, тем более, если уже начали, – вы успели впитать очень многое. Незаметно для себя. IT теперь вокруг нас, с детства, каждый день. Пусть прогресс нещадно меняет формы – вектор развития уже в вашем сознании. Вы знаете множество терминов. Ежедневно вы стоите по ту сторону барьера для разработчиков – на темной, пользовательской, половине. Вы видите удобные приложения и тормозящие интерфейсы, увлекающие дизайны сайтов и неработающие ссылки. С большой вероятностью – знаете разрешение и название ОС вашего телефона, хотя бы раз натыкались на страницу 404 и пользовались HTML5-плеером. А значит, вы уже чувствуете, что есть «хорошо», а что стоит сделать, чтобы получить разгневанного пользователя. Да, детали изменятся, но сам принцип мышления и нужный угол взгляда на мир – уже с вами. Сейчас вы достаточно сознательны, чтобы самостоятельно направлять обучение в близкое вам русло, и достаточно увлечены, чтобы создавать Фейсбук ночами в общежитии.

«А если я хочу начать раньше?»

Средний возраст прихода в фигурное катание будущих олимпийских чемпионов – порядка 4 лет. Старт в юные годы дает вам огромную фору. И это прекрасно. Но важно помнить, что IT и разработка продуктов – это не только скорость набора символов и крутость вашего приложения. Это также учет требований конечных пользователей, решение их проблем. Увы, в погоне за техничностью и модой на инструменты разработчики забывают, зачем они здесь собрались. А вот зачем: решать проблемы людей. Делать их жизнь проще. Позволять каждому тратить больше времени на то, что получается у него лучше, чем у любого другого.

Для эффективного достижения таких целей нужно глубокое понимание предметной области. Для этого, в свою очередь, необходимы зрелость и широта взглядов. Вы будете удивлены, как революционно могут помочь любые знания из совершенно неожиданной сферы. Будьте спортсменами и оттачивайте технику: кто посмеет сказать, что научиться как можно раньше – это плохо? Но не забывайте, как важно сохранить увлеченность работой на всю оставшуюся жизнь, а еще – не упустить за программированием с малых лет тысячи других областей и терабайты знаний об устройстве мира. Ведь именно они с большой вероятностью позволят вам создать новые решения, увидеть скрытое от «программистов-аутистов» и стать лучшим разработчиком, тимлидом, руководителем в Google или создателем стартапа, который изменит мир.

Илон Маск много читал в детстве, путешествовал и, что более важно, жил в среде расового противостояния и сохраненного рабства на землях ЮАР. С раннего возраста он не посвящал свою жизнь изучению программирования, хотя первая его игра увидела свет еще в довузовский период. Нестандартный жизненный путь и широкий взгляд на мир с иного угла дали результат, недостижимый одним лишь корпением над документацией всё свободное время. Ричард Фейнман с самого детства собирал радиоустановки на чердаке. Но в более поздние годы не сидел, запершись в кабинете физики, а осваивал игру на барабанах и ходил с парадами по Бразилии.

Помните, раньше – значит надежнее, но в долгосрочной перспективе не значит результативнее, разумнее, профессиональнее. Да и вообще, мало что значит. И последующие истории тому доказательство.

«Хочу поменять профессию. Что, если начать позже?»

Уже окончив вуз по иной специальности, проработав некоторое количество долгих лет вне IT… У вас есть тот самый кругозор, который создает уникальную комбинацию способностей и может привести к революционным решениям. И да, у вас гораздо больше воли, мотивации и целеустремленности – ибо такой выбор серьезнее, он требует кардинальных перемен в жизни – переезда, перестраивания семейных отношений. Да и делается куда более осознанно, нежели выбор школьного абитуриента.

История первая

Первый техлид, с которым мне довелось поработать, казалось, мог всё.

Спортивный и подтянутый, быстрый в каждом движении, Саша был не прочь подзадорить коллег отвлеченным разговором и собрать всех вокруг на чашку несущего передышку чая. Несмотря на разницу в возрасте с нами, новичками и стажерами, он не угнетал авторитетом повидавшего жизнь разработчика, а делал атмосферу легкой, мотивирующей и оперативной. Манера насмешливо журить за упущения и незнания нисколько не сковывала начинающих интровертов. Самым психологически сложным оставалось обратить на себя внимание: призывно размахивая руками, вынудить его снять неизменно надетые наушники.

Когда приходилось настраивать рабочее окружение и сталкиваться с ошибками, в которых Stack Overflow оказывался бессилен, – достаточно было позвать Сашу. Любая проблема с npm-пакетами, версиями gem-ов, последствиями кривых рук в Linux, настройками серверов решалась за пару минут. Когда нам поступила задача быстро завести партнерский интернет-магазин на PHP, наиболее глубоко знакомым с этим непрофильным для компании языком – разработка у нас велась на Ruby – снова оказался он. Именно Саша занимался ведением основного продукта – высоконагруженного сервиса для известного медиахолдинга. Между делом он грамотно воспитывал стажеров, многие из которых вырастали в успешных разработчиков. В свободное время вел технический блог, находил любопытные решения, пробовал, настраивал новые инструменты. В рабочее – успешно рассчитывал мощности и конфигурации серверов для поддержания устойчивой архитектуры видеоплатформы. Стоит добавить ко всему легкость коммуникаций: редкая общительность для традиционного типажа того времени – замкнутых программистов – шутки над коллегами мимоходом, инициация обеденных групповых вылазок командой на турники с подтягиваниями, отжиманиями и хардкордной «планкой». Последняя, к слову, была показана им как образец, и никем более на тот момент не осилилась к повторению.

Казалось, вот так должен выглядеть профессионал, наслоивший на хорошо усвоенные академические знания практический опыт нескольких лет работы. Да-да, даже не десяти, пятнадцати или двадцати – ему было всего тридцать с небольшим. Каково же было мое удивление, когда я узнала, что академического IT-шного образования в этой истории нет и вовсе! Более того, нет даже хоть сколько-нибудь смежного технического. А по своему диплому наш лучший техлид:

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

– Ни за что бы не подумала… – все, что растерянно я смогла выдавить из себя тогда.

«Как тебе это удалось?», «Давно ты начал?», «А как ты вообще оказался в IT?» – удивленные вопросы посыпались со всех сторон.

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

История вторая

В компании остро стоял вопрос найма новых кадров.

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

Шли собеседования, ротировались кандидаты, разочарование росло. Никто не мог справиться с задачей на приемлемом уровне. Причем затруднения вызывало логическое мышление: способность рассуждать, строить жизнеспособную модель решения. Кандидаты, требовавшие неприличные для себя зарплаты, специалисты по искомым фреймворкам, – все терялись и оказывались неспособны отойти от стандартных приемов. Они старались применить «прецедентный подход» и, не находя готовых решений из своей практики, что зачастую оказывалось синонимом «не вспоминая нагугленного ранее», – становились бессильны. Единственным справившимся со всеми заданиями кандидатом оказался разработчик, переехавший из другого города. Немногословный, сдержанный молодой человек, чаще с сосредоточенным и немного напряженным, будто что-то обдумывающим, выражением. Последние года два он работал в веб-студии, а до этого честно строил карьеру агента по недвижимости – иными словами, являлся профессиональным дипломированным риелтором.

На данный момент, спустя несколько лет, он продолжает работать на всех наших основных проектах, участвует в создании Smart TV-приложений, видеоплеера и иных высоконагруженных сервисов.

История третья

В наших кругах телевизоры – не самая модная отрасль, потому, когда успешно поборовшим задание на разработку приложения Smart TV стал пусть и непрофильный кандидат, я была безгранично довольна. Те, кто застал времена зарождения части «smart» в составе TV в не такие уж далекие 2010-е, возможно, помнят настоящий коэффициент IQ тех девайсов. Под капотом «умные» приложения содержали в себе обычный веб-браузер – казалось бы, что может быть проще. Но нет: видимо, опасаясь восстания машин, производители того времени прилагали значительные усилия по созданию всевозможных препятствий к торжеству ТВ-интеллекта. Документации и гайды по разработке тщательно запрятывались от незнакомцев, индусская поддержка брала недельные паузы на медитации, а сборка приложения и его тестирование на реальном телевизоре представляли собой путь из 9 кругов ада. Сюрпризы оказывались в самых неожиданных местах. Фокусы не ставились на элементы, стандартный HTML-ный select отказывался назначать выбранный элемент через JS, свойства CSS выделывали трюки уровня старых IE, а встроенные медиаплееры с их непредсказуемыми обработками сиков и сдвигов live-трансляций позволяли разработчикам медленно, но неотвратимо постигать дзен. Особенно отличался Philips, не желавший перезапрашивать и отрисовывать даже несколько небольших тумбнейлов на странице за небольшой промежуток времени и благополучно «вешавшийся» на этом так, что не срабатывала даже перезагрузка.

SDK, ОС платформ и их версии, системы сборки и тестирования на ТВ постоянно менялись. В каждом аппруве в стор оказывались какие-нибудь новые удивительные требования. Появлялись то лишние десятки полей, то дополнительные чек-листы, которые надо было заполнить. А еще требовалось подготовить 2 презентации в PowerPoint с картинками каждого экрана, таблицами элементов на нем, их подробным описанием на уровне «что должна делать каждая кнопка и каждый компонент приложения». Прошедшее все муки разработки – порядка нескольких месяцев! – приложение попадало в руки прилежных корейских или индийских тестировщиков. Спустя пару недель оно неминуемо возвращалось с замечанием вроде «ваша текущая выбранная кнопка недостаточно заметно обозначает фокус на себе с расстояния нескольких метров». После чего под крупные слезы дизайнеров рамка становилась еще жирнее и краснее. Продукт заново отправлялся на очередной цикл тестирования. Кстати, хочется снять кепку перед специалистами тестирования Индии и Кореи – как они проверяли функционал приложения на русском языке во времена отсутствия Google Translate по фото – для меня до сих пор остается загадкой.

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

…среди выпускников кафедры машиностроения. До прихода к нам Игорь уже поработал несколько лет во фронтенде. Живость ума и самообучение позволили освоить верстку и JavaScript на профессиональном уровне, сохранив при этом совершенно не похожую на разработчика индивидуальность. Уникальный юмор, порой излишняя прямота, молодость и подчас пугающий менеджеров оптимизм выделяли его среди «типичных программистов». Широта принятия и познания в других слоях жизни отлично вписали его в коллектив, очертив ореолом легкости и позитивного мышления. А еще – нередко несли нам спасительную перезарядку.

Именно Игорь справился с гибридной, аппаратно-фронтендерской, спецификой Smart TV успешнее многих. Сначала выполнил тестовое задание по написанию несложного ТВ-приложения, с нуля разобравшись со всей платформенной инфраструктурой. Затем практически единолично разработал для нашего крупного заказчика проект с не самым тривиальным интерфейсом, платежными сервисами, VoD и live-видео.

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

История четвертая

Смена работы выглядит волнительной вдвойне, если сопряжена с переездом в другой город и выходом в одну из самых желанных компаний нашего IT-рынка. На деле же все гораздо комфортнее. Крупные корпорации несут в себе отлаженный процесс. Меня ждали теплая встреча, экскурсия по атмосферному, живому и бесконечно уютному офису. Место с видом, заставляющим хотеть покорить мир: на Неву, Литейный, полный историй и духа побед-центр. И уже подготовленный с учетом пожеланий персональный ноутбук. А главное – уникальные люди, такие, каким оказался Рома – мой будущий напарник.

Молодой, со стильной прической и холеным внешним видом – немецкие корни удивительным образом переплелись с сибирским происхождением. Его выделяла открытость, а желание поделиться знаниями полезных утилит и важными тонкостями проекта захватило меня с головой на весь оставшийся день.

Здесь, в Яндексе, больше всего меня поразило умение разработчиков молниеносно ориентироваться в любом инструментарии. Быстро пробовать, настраивать – не важно, насколько полна документация. И это-то при всеобщей редкости подобных навыков для типичного фронтендера. Казалось бы, нужно сочетать в себе познания DevOps, где-то становиться немного админом и бэкенд-специалистом, чтобы умело манипулировать системами выкатки и развертыванием на серверах. Среднестатистический, порой даже опытный, мидл-фронтенд-разработчик зачастую стремится избегать подобной деятельности, не чувствуя себя в ней как рыба в воде и, пожалуй, слегка побаиваясь.

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

Лучше всех знакомый с проектом, Рома был назначен мне ментором. Как руководитель в прошлом, я сразу оценила верный педагогический подход: преподнесение информации, немаловажный начальный ввод в курс дела, пояснения по каждой из первых задач, экскурсии по кодовой базе и полезным внутренним инструментам. Присутствовали и необходимые рассказы на вечную тему: «Почему именно в этом месте “так исторически сложилось”». Хотя на тот момент я работала фронтенд-разработчиком дольше него и считала себя опытнее в плане обучения сотрудников – с легкой долей зависти про себя пришлось отметить профессионализм его преподавательских действий.

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

Пока разработчики других отделов десятками решали, какие средства для тестирования выбрать, с чего начать, как вообще подойти к написанию кейсов, мой напарник успевал не только определиться, но и настроить, написать и вдобавок по собственной инициативе – интегрировать в процесс Continuous Integration. При следующей встрече не полениться набросать презентацию, демонстрирующую ключевые моменты его решения коллегам. Стоит ли упоминать, что у человека, который так горел глазами на работе и успевал так много, были и внеурочные проекты, где он не пытался зарабатывать старыми знаниями, а пробовал новинки IT-шной сферы, держал нос по ветру и стремился улучшить свои программистские подходы.

Когда в одной из задач потребовалось динамически менять заголовки страниц, он подсказал мне релевантную React-библиотеку.

– Посмотри Helmet, – нетрадиционно для привыкших к чатам разработчиков вслух произнес напарник. Максимальное время живого общения голосом было любопытной деталью нашего взаимодействия. Десятки фич и сотни строк рефакторинга доехали до пользователей в разы быстрее благодаря такому незамысловатому подходу.

– Как-как? – переспросила я, не зная подобного слова и, как следствие, не найдя аналогий с решаемой задачей.

– Как шлем по-английски, – доходчиво пояснил мой ментор.

Английским я занималась то параллельно, то последовательно всю сознательную взрослую жизнь: вместо, пыталась читать оригиналы, смотреть фильмы, использовать для общения в поездках за границей. Да, асом не была, но всё же. Та ситуация со шлемом меня задела. Неужели всё зря, и для всех, но только не меня, очевидно, как будет шлем по-английски?

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

Его история еще одно яркое доказательство: университетская профессия и время старта не так важны, как желание, природная гибкость ума и огонь в глазах.

Не все истории смены своей текущей специализации на работу в IT успешны. Не все долговечны.

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

Минуточку, скажете вы, там, парой страниц выше, было нечто такое, что зацепило меня, резко выбилось из общего вполне себе политкорректного контекста. Что-то такое, не очень приятное на глаз и слух. Ах да, «программисты-аутисты»… Позвольте, звучит как оскорбление! К чему же это?

Компания, в которой я провела самые яркие карьерные годы, была выстроена не то чтобы с нуля, а скорее даже с минуса. Малоприбыльный регион – Орловская область, недостаток высокопрофессиональных кадров. Первый офис в подвале, где ведрами приходилось вычерпывать воду. А сейчас «Инвентос» – известные каждому клиенты, серьезные решения в своей нише, команда глубоких и мыслящих профессионалов и собственное здание компании.

Большинство выпускников-программистов начала 2000-х с радостью погружались в дебри отрешенного от мира кодирования только-только набирающей обороты отрасли. Но, к счастью, случались редкие и поворотные исключения. Наш генеральный директор и основатель компании обладал решающим для IT тех лет талантом – умел объединять людей. Профильное образование, нежелание «кодить» и поразительное чутье в вопросах того, за что стоит браться и что выстрелит в перспективе, привели к созданию многих прорывных продуктов. Одним из них стал будущий Rutube, проданный впоследствии холдингу «Газпром-медиа».

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

Когда я впервые услышала то сравнение – «программисты-аутисты» – из уст «отца», моему возмущению не было предела. Разве можно относиться так к своим сотрудникам, тем, кто отдает большую часть своей ежедневной жизни на благо бизнеса? Масштаб эмоций усилился атмосферой: знаменитая фраза прозвучала на ежегодном выступлении в канун новогодних каникул перед всеми трудившимися в компании разработчиками. Только позже я смогла понять, насколько жизненно и справедливо то сравнение и насколько дальновидным было его озвучить.

Признание проблемы – половина решения. Услышав подобное, мне захотелось не быть тем ограниченным человеком, не умеющим общаться с внешним миром. Да, задачи требуют концентрации, но для великих продуктов всегда приходится выходить из зоны комфорта. Выбираться за рамки, чтобы было куда расти. Достроить карту за дверцей дома и не упасть в пропасть. Важно мыслить нестандартно, комбинируя знания и опыт. А к человеку, открывшему после запуска IT-компании не менее успешный ресторан, свою радиостанцию, отстроившему современный офис и спроектировавшему научный городок, – стоит как минимум прислушаться.

«Так когда начать?» – спрашиваете вы. Будучи родителем и беспокоясь за будущее своих детей, думая, что сделанный ими или настоятельно рекомендованный вами выбор в пользу IT вечен, как набитая подростком татуировка, – вздохните и расслабьтесь. Надеюсь, приведенных примеров силы последующей и осознанной смены специальности достаточно. Если же вы школьник или представитель иной профессии, сомневающийся в сроках начала, то у меня для вас, как читателей этой книги, хорошие новости. Вы уже начали.

Советы в конце подраздела

–› Определитесь как можно раньше.

–› Срок вторичен, сбалансированное развитие первично. Ставьте на первое место кругозор, не жертвуйте всем ради одного.

–› Не беспокойтесь о четкой точке старта. Постепенно окружайте себя связанными источниками. Уже сейчас.

С чего начать

Создать вокруг себя правильную атмосферу так важно и так непросто поначалу. Попасть в хорошие руки. Сформировать победное чутье.

Переделать – почти всегда значит устранить последствия, вернуться в начальную точку и сделать заново. Чем ближе к началу было совершено неверное ветвление, тем больше ресурсов потребует нормализация ситуации до желаемой. Только ли вы задумываетесь о поступлении на IT-специальность, ищите ли первый источник материалов о программировании, или же выбираете стек посовременнее для нового крупного проекта – отнеситесь к первым шагам втройне внимательнее. Но и не тяните. Если время идет, а видение не приходит – возможно, у вас просто недостаточно операционных данных. Сделайте любой интуитивно перспективный первый шаг и со временем дорога возникнет.

Вспоминая себя в школьные годы, могу сказать, что информатика и математика мне нравились всегда. Я выделяла их в числе любимчиков, однако никаких особых планов вокруг не строила. Школа значилась как лицейская, с веяниями современных подходов, и по ряду предметов полагались факультативы: некие кружки с углубленным изучением отдельных аспектов. Так, среди прочих дополнительных занятий по математике и английскому, я записалась на курсы программирования. То событие и послужило мощным толчком моего дальнейшего пути. Да, мы, программисты, любим быть впереди. А любые дополнительные курсы как нельзя лучше этому осознанию способствуют.

В самой программе тех школьных факультативов не содержалось ничего примечательного. По правде сказать, я не могу вспомнить никаких занятий, кроме двух: на одном мы программировали знаменитую черепашку ЛОГО, на других – осваивали Всемирную сеть и возможности коммуникаций в WWW. Но именно подобное чувство причастности к неизвестному многим, коллекционирование десятков мелких кусочков знаний подогревали интерес, заставляли больше смотреть, читать, впитывать и вне часов курсов. Каждый нюанс, каждый новый навык дает незаменимую фору, и кто знает, как она пригодится вам спустя многие годы. Пусть даже и в ничтожных бытовых мелочах. Почтовый сервис Mail.ru предлагает сейчас скидки от партнеров, процент по которым вычисляется по формуле, учитывающей стаж регистрации в почте. Максимальной скидкой ныне я обладаю исключительно благодаря тому, что на одном из тех школьных факультативов мы регистрировали почтовый ящик именно на этом самом, тогда относительно недавно появившемся сервисе.

Для всех, кто только мечтает кодить или уже работает и ищет точки роста, можно выделить основные формы деятельности и рекомендации, способствующие погружению в правильную и сильную атмосферу. Они могут сформировать надежную основу, если вы новичок, а если заказчики и релизы уже успели помотать ваши нервы – посмотрите на него как на чеклист профессионализма и дальнейшего развития. Виды занятий и принципы поведения во многом схожи на разных этапах пути, их же наполнение выбирайте исходя из своего текущего уровня.

Посещайте факультативы. Записывайтесь в онлайн-школы. Ходите на мастер-классы. Смотрите видеоуроки – самое популярное и легкодоступное образование для самых первых шагов. Действенная, с быстрой обратной связью методика наполнения себя новыми знаниями. Сами разработчики крупных фирм, опытные профессионалы ищут своим детям курсы, отдают их на занятия в IT-школы. Почему, если знают больше многих преподавателей? Один из моих коллег-тимлидов, водивший сына на занятия по Arduino и робототехнике, объяснял это так: «Нет времени придумывать, как увлечь». В школах же – готовые проработанные программы, отточенные на сотнях учеников. Специальные материалы, красочная атрибутика, наборы тех же конструкторов и наглядные схемы, плюс дух соперничества с равными, который не воспроизвести, – ребенком ты подсознательно понимаешь: твой проигрыш отцу-профессионалу простителен. Да и преподавательский талант есть не у каждого разработчика.

С другой стороны, на волне популярности появляется масса некачественного контента, видеоуроков, онлайн-школ, находятся нечестные и непрофессиональные организаторы курсов офлайн. В Яндексе есть отличная возможность узнать у огромного числа коллег совет по волнующей тебя проблеме – не только рабочей. И одним из поднимаемых жизненных вопросов, которые мне доводилось застать, был поиск достойных подростковых курсов по программированию. Нет ничего удивительного в том, что и умудренные разработчики задаются подобными вопросами: важно развить и подогреть интерес школьника, без сухой теории и с грамотными лекторами. Даже если подросток уже сам пытается изучать и пробовать языки.

Читайте новости. Начните с лежащих на виду популярных источников, используемых ежедневно профессионалами с любым стажем. Пусть даже вы пока не можете понять почти ни слова. Зачем? Чтобы держать руку на пульсе, понимать, в какие области стоит углубиться именно вам. Вдохновляться разработками других, препарировать работу «черных ящиков»: отдельных методов, браузеров, баз данных и фреймворков. Читайте иностранные, англоязычные сайты. Блоги известных разработчиков, авторов фреймворков, например, Дена Абрамова; авторов топовых IT-шных книг, евангелистов профильного мира и энтузиастов: Лию Веру, Сару Суадан и др., – причастных к разработке браузеров, таких как Вадим Макеев; создателей языков: Дугласа Крокфорда из мира JS, Страуструпа из века С++, легендарного Сэнди Метца и др.

Изучайте чужой код. GitHub, Bitbucket, примеры в статьях влиятельных авторов, выдержки из документаций. Как маленькие дети слагают свою речь, еще не понимая всей глубины отдельного слова и составляющих его букв, так и вам стоит принимать авторитетные фрагменты кода как слова, из которых сформируется вся программа. Пусть понимание отдельных нюансов придет чуть позже – окружайте себя готовыми классическими решениями и используйте их в своих работах. Старайтесь не просто копировать и вставлять, а самостоятельно набирать фрагмент – так стандартные решения быстрее отложатся в голове, подкрепившись моторной памятью. И в следующий раз, при написании своего кода с чистого листа, рука сама потянется добавить «content:»»» для псевдоэлемента или проверить на undefined переменную перед обращением к свойству.

Учите основы. Да, пусть это скучно, но необходимо. Без них вы никогда не станете уважаемым профессионалом. Представьте, к вам подходит подопечный джуниор-разработчик с вопросом: почему “2” + 2 = 22? А вы не можете ответить, потому что не знаете про механизм приведения типов и наличие toString () у прототипа объекта Number. Сложно представить? Правильно, потому что у таких программистов подопечных не бывает. Более того, сейчас всё стремительнее сменяются фреймворки и дополняются возможности языка. Без понимания, что там «под капотом», практически невозможно быстро переключаться над высокоуровневыми реализациями. Угнаться за темпом IT не получится, запоминая только методы популярного на текущий момент фреймворка: завтра он сменится другим, ваши познания превратятся в тыкву, а цена на рынке как специалиста уйдет в –1. Все крупнейшие IT-компании уже давно просят кандидата на собеседовании написать алгоритмический код, зачастую без привязки к языку, а если и спрашивают конкретику, то исключительно про подводные камни, языковые тонкости и их комбинации, требующие глубокого понимания того, «как работает мотор».

Старайтесь понять. Думаю, предыдущего упоминания процессов отбора на работу IT-корпорациями достаточно, чтобы отказаться от сладостной мысли выучить/запомнить и попытать свое счастье в отрасли. Часы университетских лабораторных или стоящих курсов призваны заставить пробовать написать самому, наткнуться на проблемы, задуматься, почему так, понять и исправить. При необходимости – повторить. Но, увы, никак не «скопипастить» готовый код, как принято наивно полагать у многих не слишком прилежных студентов. Любой успешный разработчик проводил порой десятки минут, раздумывая над логикой создателей языка, причинными связями, устройством браузера, взаимозависимостями нового материала и уже известных ему фрагментов знаний. Только понимание, как происходит рендеринг страницы, как влияют на него заданные вами СSS-свойства, помогут исправить «тормозящий» интерфейс. Без глубокого осознания нет качества, нет надежности, а часто и нет самого результата – столкнувшийся с неизвестным разработчик не в силах предпринять что-либо, ведь малейший шаг по диагонали делает его совершенно беспомощным в мире, законы которого он так и не осознал.

Впитывайте best practices. Как известно – devil in details. То, как написан код, насколько он читаем другими разработчиками и расширяем по мере жизни и развития продукта, – главные отличительные черты новичка от профессионала. Чтобы преодолеть этот путь быстрее, лучше взять велосипед, собранный по проверенным чертежам и отшлифованный до мельчайших деталей, нежели начать выяснять, овальное или круглое колесо лучше зарекомендует себя для комфортных путешествий. Знакомство с Бандой Четырех, принципами DRY, SOLID, классикой вроде «Рефакторинга» Мартина Фаулера, Стивом Макконнеллом с его «Совершенным кодом» и «Чистым кодом» Роберта Мартина – ваш необходимый чеклист по данному пункту.

Не замалчивайте возникшие вопросы. Непонятно – гуглите, ищите в Яндексе, добирайтесь до сути. Такие знания – базовый каркас, ваш алфавит, не освоите – никогда не сможете заговорить.

Смотрите конференции. Сейчас их число неизменно растет, а уровень спикеров из-за конкуренции в сфере проведения подобных мероприятий повышается. Highload, HolyJS, Dev Conf – нет смысла перечислять конкретные названия, они изменяются и дополняются каждый год. Да, большинство стоят немалых средств, но видео спустя несколько месяцев, как правило, выкладываются в открытый доступ. Для вас как для абсолютного новичка подобная задержка не играет ключевой роли, поскольку объем другого, еще неизвестного материала остается достаточно велик.

Интересуйтесь научно-популярными источниками, изучайте прикладные отрасли. Любые книги по созданию лекарств или поиску вирусов. Сфера автоматизации рутины уже пройдена, на первый план выходят биоинформатика, исследования на стыке IT, химии и физики – все, где фундаментальные науки и высокоинтеллектуальные сферы могут вобрать в себя информационный прогресс. Очень мало математиков, биологов и медиков, способных двигать развитие робототехники и исследований ИИ, мало и тех, кто обладает научными знаниями и кому по силам скрестить их с миром программирования. Найдите смежную область, станьте экспертом – еще есть шансы создания революционных разработок, идей и алгоритмов, способных перевернуть мир.

Изучайте биографии, автобиографии и труды авторства великих людей как из мира IT, так и из иных знаковых исторических и научных сфер. Стив Джобс, Марк Цукерберг, Павел Дуров, Илон Маск, Айзек Азимов, Никола Тесла, Луи Пастер, Крис Хэдфилд, Ричард Фейнман, Стивен Хокинг. Ход мыслей, ситуационные решения, масштаб целей, организация их достижения – всё полезное на примере их жизней, что готовы разглядеть именно вы. Только не обольщайтесь – еще ни один, прочитавший биографию создателя Apple, не стал вторым. Таких, как Джобс, – единица. Но десятки и тысячи крутых профессионалов в сотнях значимых для каждого человека компаний ежедневно вносят решающие вклады в то, каким вы встретите новое утро. Глупо рассчитывать повторить личность. Еще одним Биллом Гейтсом не стать, но можно стать вторым и третьим крутым разработчиком в вашей области. И я очень надеюсь, что собранные здесь советы, подчас пусть и кажущиеся явными, на пути не единичного, но предстоящего большинству, – помогут вам куда более гарантированно сделать мир лучше.

Учитесь общаться. IT – коллективная работа. Крупнейшие компании индустрии при оценке своих сотрудников учитывают отзывы коллег. Яндекс, Google, Avito проводят регулярные ревью уровня разработчиков. Один из первых этапов процесса и конечная составляющая успеха – фидбеки от менеджера или product owner’a, тестировщиков и коллег, с которыми вам хоть сколько-нибудь приходилось взаимодействовать. К сожалению или к счастью, психология межличностных отношений такова, что ваша уникальность и высокий профессионализм вряд ли помогут услышать восторженные отзывы коллег, если ежедневно вы, не проронив приветствия, гордо размещаетесь в своем рабочем углу, последовательно воздерживаясь от участия в общих дискуссиях, ходите обособленно обедать в другое кафе и не утруждаетесь поздравлением коллег со знаменательными событиями.

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

На очередной из таких встреч мне довелось пообщаться с разработчиком одной из ключевых частей продукта – поисковой выдачи. Приятный внешне парень с располагающей улыбкой и добрым приветливым взглядом. Краткость и содержательность отличали его речь от многих других моих оппонентов, ничуть не вредя при этом теплоте и глубине беседы – с ним хотелось говорить. Он выглядел довольно скромным молодым сотрудником, недавно пришедшим в компанию. Легкое недоумение, «почему именно он» составляет ядро сложного продукта, быстро сменилось угрызениями совести за свою предвзятость. Так, в ходе разговора речь зашла о соревнованиях по программированию, в том числе чемпионатах мира. Случайно всплыло имя общего знакомого, и выяснилось, что мой собеседник – также участник и финалист международной олимпиады ICPC – читай: программист с логическими способностями и алгоритмическими знаниями выше среднего. И вне стен текущего места был частью создания сложнейших систем, обеспечивающих безопасность в нашей повседневной жизни. При этом располагающий и простой для коммуникаций человек. Именно такой – подкованный и сливающийся с командой – ценен каждой престижной IT-компании, стремящейся изменить мир и перестроить процессы будущего. В таких корпорациях зачастую мечтают работать профильные студенты и начинающие свой путь в отрасли. Позволить своим мечтам сбыться вы сможете, научившись быть органичной частью целого. Подчас вам придется менять линию поведения на приносящую продукту максимальный успех в счет собственного квалифицированного эго. Знайте многое, показывайте по необходимости.

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

Воспитывайте самоорганизованность. Вы должны уметь встроить в свой ежедневный рацион час чтения новостей, изучения новой технологии, выбирать верные объекты освоения вне основной работы. На рабочем месте, в свою очередь, уметь спланировать свой день и неделю так, чтобы все требуемые фичи были реализованы в срок. Например, я начинаю свой рабочий день с анализа панели задач таск-трекера. Затем просматриваю почту и мессенджеры. Это позволяет не пропустить срочные вопросы, пришедшие поздно вечером, ночью или рано утром, и скорректировать план на день. Быстрое и важное сначала, крупное и плановое – «в рабочем порядке». Каждый срочный запрос предварительно переосмысливается и фильтруется – действительно ли здесь «горит» для пользователей и продукта, не имеет ли место наносной человеческий фактор? В точках взаимодействия с коллегами придерживаюсь принципа максимально оперативных «спрашивать и отвечать». Если вы точно знаете, что под конец разработки фичи вам понадобится дополнительное железо или дизайн новой иконки – запросите сразу. Распараллельтесь, узнайте о рисках раньше, чем возникнет неожиданная задержка от смены процесса выдачи квот или внезапная болезнь дизайнера. Со своей стороны, быстро выданная вами информация помогает не тормозить работу других команд и не навлечь справедливый негатив их ненароком сорванными сроками.

Современные методологии разработки, используемые в серьезных IT-компаниях, такие как Agile или Scrum, требуют адекватной оценки, планирования и обеспечения выполнения в оговоренный срок самим разработчиком. И если раньше менеджеры несли вину за срывы сроков, сейчас всё больше культура компаний ведет к тому, что ответственность за оценку времени и их соблюдение перекладывается на программиста. Если же вы, выбирая IT, грезите фрилансом и удаленной работой – самоорганизация понадобится вам вдвойне. Например, во фрилансе вы сами себе и менеджер, и руководство – необходимо верно рассчитать свою нагрузку и сдавать вовремя без лишних мотиваторов. А трудясь удаленно, без рабочей атмосферы офиса и темпа, задаваемого вашими коллегами бок о бок, приходится противостоять соблазнам и раздражителям, переключающим ваше внимание.

Начните с малого – плана на день. Научитесь полностью выполнять его. Честно отвечайте себе, почему не смогли. Были недостаточно быстры? Оттачивайте мастерство, используйте вспомогательные инструменты. Запланировали слишком много? Отделите желаемое от действительного, учтите предыдущий опыт выполнения подобных дел для понимания требуемого времени. Нашлись более срочные дела? Оцените важность всех задач и выберите меньше, но из самых нужных.

Привыкайте брать ответственность и проявлять инициативу. Тренируйтесь на других сферах – подумайте, как оптимальнее пройти от дома до работы или университета, как передернуть привычный шаблон поведения в стандартной ситуации, как сократить время сбора утром. Попробуйте мыслить нестандартно, организовать расстановку книг в домашней библиотеке или провести небольшой митап в известной вам области. Зачем? Затем, что это именно те важные софт-скилс, которые все чаще желает видеть в своих сотрудниках индустрия ПО. Методологии построения рабочего процесса, равно как и критерии оценки сотрудников, – быть может, сами того не осознавая, – исходят из наличия у топовых сотрудников способности предлагать улучшения, внедрять их в команде и… отвечать головой, если твой «улучшающий код» внезапно отправил сервера прилечь на пару часов на незаслуженный отдых. Подход управления разработкой Scrum поощряет участников команды, склонных брать на себя дополнительные роли, например, роль scrum-мастера. Подход с наличием начальника-надзирателя, увы, устарел. Сейчас до разработчика спускается задача, детали реализации которой, ожидается, предложит он сам. Более того, всё больше распространяется презентация результата заказчику напрямую самим разработчиком. А это значит, что вы должны уметь собрать информацию о проделанной работе со всей команды и красиво ее подать, общаться и выступать перед людьми, держаться уверенно, ориентироваться в моменте и немного быть политиком, отвечая на неудобные вопросы заказчика. Выступления на конференциях, написание статей, предложения по организации процессов учитываются наравне с ответственным и качественным программированием нужной фичи – прямой обязанностью разработчика. Проникнитесь, насколько нужные здесь качества далеки от стандартных базовых черт хорошего разработчика. По моему опыту, компании склонны нанимать «человека, умеющего говорить», чем подчас более глубокомысленного и вдумчивого специалиста с яркими чертами интроверта. Как по мне – уход не на ту тропинку с главной дороги, но реалии таковы, и вы должны быть к этому готовы.

Обозначьте верные приоритеты. Сейчас жизнь IT бурлит и кипит, отнимая у наиболее увлеченных кадров всё свободное время, занимая их молодые умы. Я видела многих, кто сгорал на работе. IT-успех – удел молодых, амбициозных и азартных. Регулярно сидеть, день и ночь дописывая захватывающую фичу, доделывая нестандартный проект, – сродни зависимости. Образ небритого и немытого, физически мало развитого молодого человека органично примеряется и на паренька-геймера, и на талантливого программиста, потому что грань отчасти стирается. IT может поглотить, увлечь и завладеть вашим разумом гораздо больше, чем на рабочие 8 часов в сутки.

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

Советы в конце подраздела

–› Поймите, интересна ли вам эта сфера. Да. Раз вы читаете эту книгу.

–› Убедитесь, что можете. Трезво оцените силы и способности.

–› Подумайте, обладаете ли нужными софт-скилс и готовы ли развивать их в себе.

–› Вникайте, переосмысливайте стандартные школьные/университетские материалы.

–› Ходите на курсы. Пробуйте. Давайте второй шанс. Бросайте, если нет искры.

Как выбирать информацию и отсеивать ненужное

Меня всегда раздражали онлайн-уроки, выложенные неизвестно кем на YouTube, книги вида «Осваиваем PHP за неделю» и прочие сочные источники, своими заголовками больше напоминающие новостные статьи желтой прессы. Всегда возникал вопрос: зачем вы тратите время на многочасовые просмотры сомнительных видео и чтение подобных книг? Просто пойдите и сделайте. Смотреть 60 минут урок, где пишут 1 строчку кода – что может быть менее эффективным! Соберитесь, почитайте документацию, напрягите мозг. Вы же не развлекаться сюда пришли и смотреть видео с котиками. Займитесь делом. И если после этого заявления вы всё еще здесь – отлично. Сойдемся на том, что кому-то такой подход ближе и, смотря затянутые часовые ролики про вывод «Hello, world!» от эникейщика, вы вдохновляетесь и верите, что способны перерасти в высококлассного специалиста, – что ж, «на войне все средства…». Но для серьезного подхода нужны качественные, профессиональные и глубокие источники.

Закладываем фундамент

Скучная теория? Увы, она важна. Форму над содержанием можно несколько скрасить, но суть останется неизменной – вы должны впитать, осознать, выстроить в своем сознании базис.

Если вы начинаете с нуля и самостоятельно, найдите фундаментальные источники:

• программы мировых университетов. Массачусетский технологический институт, Калифорнийский университет, Стенфордский, Кембриджский и Оксфордский, университеты, Национальный университет Сингапура, Австралийский национальный университет, Мельбурнский университет и другие признанные мировым сообществом учебные заведения. Посмотрите актуальный рейтинг IT-вузов и интересующих вас специальностей, зайдите на их сайты и сообщества, найдите план обучения, списки источников и рекомендуемые материалы;

• списки книг по базовым дисциплинам, признанных лучшими интернет-сообществом. По теории языков программирования, в т. ч. актуальные учебники для вузов; по алгоритмам – хотя бы знаменитый Кнут и его серия «Искусство программирования»; по машинному обучению и искусственному интеллекту – например, «Машинное обучение» Хенрика Бринка, Джозефа Ричардса и «Верховный алгоритм» Педро Домингоса, труды по информационной безопасности, сетевым технологиям, web-программированию в контексте интересующих вас языков;

• курсы на Coursera – достаточно древние, с хорошими рейтингами, от уважаемых лекторов;

• в конце концов, школьные учебники по информатике!

Если вы студент профильной специальности, данный шаг можно опустить – система сделает основное за вас. Однако студентам бывшего СНГ и не-западных стран стоит дополнительно проделать всё вышеописанное с программами вузов США, Европы, Израиля – скорее всего, там вы найдете более современные источники, что поможет проще адаптироваться к реальным практическим условиям впоследствии.

Если вы начинаете с минус одного и самостоятельно – тогда, так и быть, позвольте себе посмотреть несколько вышеупомянутых поверхностных и легких лекций или онлайн-уроков: по IT-сфере в целом и отдельно по перечисленным выше базовым направлениям. После чего вернитесь к пункту ноль и обратите свое внимание на менее развлекательные на вид, но жизненно необходимые фундаментальные данные. Ряд современных методик эффективного чтения советуют сначала внимательно изучить оглавление, вдумчиво прочитать название каждого раздела и подраздела, затем бегло пролистать книгу. Такие действия направлены на создание в мозге некоего базового структурного каркаса, который будет расширяться деталями и наполнять ранее подготовленные ячейки памяти более подробными материалами. Аналогично просмотр «поверхностных лекций» выполнит функцию формирования скелета материала, который впоследствии потребуется обернуть в релевантные ткани. Тогда к следующему этапу вы уже что-то осознаете, и знания будут наслаиваться, встраиваться в уже осмысленные аналогии.

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

Старайтесь понять концепты вглубь, осознавайте, представляйте в голове. Перечитайте несколько раз, поставьте на паузу и пересмотрите. Запоминайте по правилам когнитивных искажений: делая нелепые аналогии, создавая неприличные связи. Рисуйте образы на бумаге. Остановитесь и найдите взаимоотношения нового с известным. Не продолжайте, пока не поймете. Способы обучения не тема книги – но всё вышеперечисленное срабатывало лично для меня, и я считаю нечестным не обратить на них ваше внимание.

Поскольку сфера IT меняется с космической скоростью, книги как источник информации почти всегда не имеет смысла выбирать для операционных детальных знаний – для этого существуют документации, о чем поговорим позже. А вот как раз для базовых знаний и осмысления концептов: искусственного интеллекта, теории языков, истории IT, – наиболее уместным источником информации являются книги легенд IT, создателей языков программирования, базовые пособия по теории, например, по организации сети, ПК, ядра Linux и т. п.

Выбирайте в качестве авторов успешных программистов, основателей всемирно известных IT-компаний, уважаемых профессоров университетов, создателей популярных open-source решений, признанных лекторов и простых близких вам по духу разработчиков – всех, кто добился многого сам, всех, кто вас мотивирует и кто способен правильно разложить костер, который вам останется зажечь своим усердием, острым умом и мечтой.

Выстраиваем стены

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

Рутинный труд. Одинаковые кирпичи.

Например, вы изучили основы языков программирования, алгоритмы и веб-устройство. Вы хотите обучиться фронтенду. Тогда найдите все известные достойные книги по Javascript и CSS. Прочитайте их. Найдите сайты – обучающие порталы по теме вроде learn.javascript.ru и изучите их, найдите менее известные и более узкие книги по «лучшим практикам JS», с решением повседневных задач CSS, старомодные, но небесполезные для нулевых знаний книги, уроки, сайты по JQuery. Чем дальше, тем сложнее находить новое в материалах. 90 % информации будут похожи – они дадут вам то самое повторение, а 10 % будут новой крупицей, только у этого автора, этого источника. И продвинут вас вперед среди прочих. Нельзя прочитать только одну книгу по теме. Возьмите вторую, третью, четвертую, отсейте субъективизм автора, твердо запомните общее.

Стройте параллельно – задействуйте альтернативные каналы: помимо классических книг и фундаментальных лекций подключите к своим источникам статьи, книги «среднего звена» и те самые курсы. Но вот последние в современном мире отбирайте тщательно.

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

Но не для профессионального становления. Учение не игра, не сборка машинки. Иначе – это поддержание инфобизнеса и средства заработка предприимчивых любителей быстрого дохода. Да, и от таких курсов/лекций/семинаров для вас может быть польза, отличная от нуля. Только если хотите идти по такому пути – сначала копайте глубже. Заложите тот самый фундамент. Это позволит построить базис, по которому вы сами сможете делать выводы и строить новое. Данный факт можно использовать в качестве самопроверки. Дают или дадут ли вам нужные знания, не пытаются ли сделать заложником? Не придется ли за любым советом обращаться на отдельных условиях и продолжать дальше только у них? Хорошая система должна уметь учить. Закладывать основу, поднимать на уровень выше, или, как принято в IT – на мета-уровень, – уровень более высокий, чем вам нужно для решения демо-задачи. Вы должны понимать, что за этим стоит.

Вот вам мой случай с тем же Arduino, но для взрослых. Для меня с детства радиоэлектроника была чем-то таинственным, страстно желанным и по стечению моды того времени прошедшим мимо меня. Признаться, уже в университете мне впервые довелось взять паяльник в руки и смастерить под чутким надзором примитивнейшую схему из резистора, лампочки и батарейки. Моему восторгу не было предела, но тогда дело на том и закончилось. Несколько позже я даже пыталась честно освоить советские книги по радиоэлектронике. А потом настал бум плат Arduino, Raspberry Pi и готовых наборов. Я с огромным воодушевлением стала обладательницей одного из них и занялась поиском в сети уроков для новичка. Нашлось много платных, а из бесплатных первым попался курс, где к каждому уроку прилагалась волшебная бумажка. Ее следовало наложить на плату и проколоть в обозначенных точках контактами деталей, закрепив их таким образом в нужных местах. Но зачем?! Моему возмущению выбранной методикой не было предела. Чтобы, наигравшись, заказать еще бумажек? Это плохой пример. А вот хороший. Объяснить, как построена панель и как проходят дорожки – где земля, где питание. Научить, как самому понять, в какие разъемы крепить деталь. Рассказать, как кодируются резисторы – да-да, это те самые разноцветные полосы на корпусе. Каждая из них – один разряд, третья – количество нулей. Именно такой способ верен, а не «возьмите коричневый цилиндрик из проданного нами набора».

Точно так же очень многие онлайн– и офлайн-IT-курсы сейчас страдают вырванностью из контекста и состоят из задач, которые зрелищны и интересны, но дают лишь быстрый «вау-эффект». Это неплохо. Чтобы заинтересовать. Но вы уже и так заинтересованы! Сделайте волевое усилие, перейдите на новый уровень. Не играйтесь, учите. Подводная часть айсберга намного больше видимого завораживающего верха. Не стоит забывать про нее.

Еще один плохой пример. Курс по CSS, построенный так, что уже уроке на третьем, после самых азов синтаксиса и имеющихся свойств, обучаемому предлагаются анимации. Да, это красиво. Но если дело заканчивается на выполнении бездумно скопированного кода, максимум с возможностью поиграться с параметрами продолжительности и направления, – это малополезно. А какой же вариант хороший? Тот, где объяснят, как работают анимации, как используют ресурсы, чтобы вы не затормозили интерфейс для пользователя и не оказали ему медвежью услугу. Где расскажут, какие существуют альтернативные решения, например, анимация на JS, научат структурировать и повторно использовать CSS-правила и приведут примеры в конце.

Хочется призвать относиться серьезнее к обучению в IT и к выбору источников в частности. Плоды деятельности разработчиков ПО нам приходится всё чаще пожинать в повседневной деятельности. И пока нас спасает то, что массовость разработки сосредоточена по большей части в развлекательных сферах жизни. Исследовательская деятельность, высокоточные разработки в сфере хирургии и роботостроение пока еще сосредоточены в очень узком кругу высококлассных разработчиков. Страшно представить, что жизненно важные строки кода будут написаны выпускниками вот таких курсов, где нужные последовательности символов для занесения в редактор, может, и были названы, но не оставили ни малейшего понимания о последствиях их выбора.

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

Во времена программирования на ассемблере или базовых версиях языка С разработчики жили в условиях почти «блокадного Ленинграда». Каждый кусочек памяти, каждый байт и принятое решение – тщательно выверялись и продумывались. Можно было смело запускать спутник с загруженной программой, перезалить которую годами не было возможности, и она продолжала работать как часы, без переполнения памяти и критических ошибок, в течение долгих месяцев. ПО такого качества вы вряд ли найдете теперь даже в весьма критичных сферах безопасности и медицины. Да, время снимает свои жесткие ограничения, но однажды такой кредит доверия может обернуться серьезными последствиями. Будьте ответственны, не гонитесь за модой, а если взялись – выбирайте такие источники и учитесь так глубоко, будто ваш код станет частью системы управления космического корабля, уносящего ваших детей во имя спасения человечества.

Настелим крышу

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

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

Писать каждый день, пробовать на практике вычитанное решение, применять потенциально полезный инструмент, заменять устаревшие фрагменты знаний новыми и латать замеченные дыры – постоянный труд, без которого всё вышеперечисленное – бесполезная и безжизненная заготовка. Помню, однажды мы проводили собеседование с тогдашним техническим директором в поисках нового фронтенд-кандидата. Однажды он задал тогда показавшийся мне неожиданным вопрос: а когда вы прочитали некую статью, скажем, как сверстать кнопку новым способом, – как вы поступаете в дальнейшем? И наиболее успешный кандидат был склонен давать ответы вроде: “Пробую сделать, поиграться, сразу же набрав в редакторе/консоли”. Менее успешные: “Запоминаю, беру на заметку на некое будущее”. Почему последнее не работает – потому что поток информации огромен, и мало кто способен действительно воспроизвести увиденное в дальнейшем – а часто даже не способен вспомнить или найти первоисточник! И потраченное на чтение время превращается в тыкву. Практика склонна увеличить шансы на воспроизводство полученной информации в дальнейшем, связав ее с моторикой.

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

Добавим деталей

Что отличает мастера? Знание 1000 и 1 нюанса, способных в корне изменить результат. Когда 90 % золота добыто из рудников, очень сложно выискивать 10 % крупиц, рассредоточенных в десятках кусков породы. Так и с мелкими секретами IT.

Подписывайтесь на блоги известных разработчиков, евангелистов, лекторов. Имена будут меняться, суть их важности – нет. Благодаря им вы узнаете, как лучшим образом выровнять текст или скруглить уголки при определенном стечении условий. Читайте новостные сайты, в первую очередь зарубежные. Не забывайте знаменитый Хабр. Читайте в соцсетях «разработчиков-предпринимателей»: Илона Маска, Марка Цукерберга, Билла Гейтса… Именно там может встретиться та самая крупица, которая дополнит ваш багаж и позволит создать лучшее, профессиональное решение.

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

Обсуждайте. Информация, полученная в разговоре, уникальна. Здесь вы можете стать счастливым пожинателем плодов мозгового штурма – при порой шуточном и абсурдном обсуждении с коллегой статьи, новости или доклада может родиться поистине уникальная идея. Мысль, решение, которое вы больше не найдете нигде.

Мнение другого тем ценнее, что оно есть результат его личного опыта, редкой комбинации смежных областей – неповторимый гибрид, обладающий тем самым гетерозисом. С другой стороны, отрасль не насыщена, динамична и креативна: в отличие от суровых законов биологии здесь все еще возможно зарождение жизни, новых форм, способных изменить традиционные взгляды, и как знать, быть может, и весь мир.

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

Слушайте подкасты. Найти их сейчас труда практически не составляет. Однако помните основные критерии их выбора: профессионализм докладчика, оперативность и новизна материала, либо же – его фундаментальность. Десять минут за завтраком – и в этот день вы станете счастливым обладателем пищи не только для тела, но и для ума. Пять минут перед сном – и детские советы про зубрежку на ночь снова в действии: мысль записана на подкорку, процесс в фоновом режиме запущен. Пробежка, прогулка до офиса – любое удобное для вас время со свободными головой и ушами.

И пусть вам сопутствует мысль: только расширяя информационный шар вокруг себя, можно охватить всю Землю.

Советы в конце подраздела

–› Выбирайте тщательно. Очень тщательно.

–› Заложите сильные основы. Это не игра.

–› Изучайте альтернативные источники.

–› Фильтруйте инфобизнес.

–› Devil in details. Цените детали, как и фундамент.

WRITE

Обучение и переход к профессиональному коду

Что ж, базовые ценности заложены, что хорошо, что плохо, известно наперед – редкая роскошь! – а значит, можем начинать.

Базовый класс: основы успеха

Подобно созданию программы, вы должны создать себя. Базовую абстракцию, расширять которую придется всю последующую профессиональную жизнь. Средства проектирования ясны: университеты либо самообразование. Мой путь пролегал через профильный вуз.

Вдохновение

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

Когда на часах три ночи, идет первый месяц лекций, а ты сидишь с книгой по IT, не в силах оторваться, – вот оно – отличное начало.

Помню, как с трепетом подходила к книжным полкам магазинов, заставленным литературой по программированию. С какой радостью выбирала новую книгу. Дешевая бумага, мягкий переплет и заголовок: «HTML 4.0». Я читала от корки до корки, включая предисловия с историей создания Интернета, WWW и заключения с благодарностью. Каждый тег и его свойства старалась заучить, как ценную крупицу знаний. И хотя последнее позднее оказалось почти бесполезным в мире стремительно меняющихся стандартов – важно было одно: горящие глаза, азарт и вдохновение возникли из ниоткуда. Мотивацию и смыслы не надо было искать – возможно, здесь мне повезло. Но что делать, если описанных симптомов нет? Не ищите их искусственно. На этом этапе, самом первом и важном, как при встрече двоих: химия либо есть, либо нет. Не стоит притягивать ее насильно. Вы не станете хирургом с мировой известностью, ненавидя людей. Если вдохновения нет сейчас – возможно, лучше сразу свернуть на другую дорогу.

Внушительный томик по HTML был одним из порядка десяти жителей заветной полки в единственном личном шкафу. Каждый раз я смотрела на нее с трепетом – хотелось уделить минуту, устроиться поудобнее и погрузиться в логичный и интеллектуальный мир IT. Среди всех особыми любимцами были по наследству переданные родственниками первые издания книг по С и ассемблеру. Вникая в команды записи из ячейки в ячейку, сокращения регистров, ты чувствовал, как становишься обладателем тайных для подавляющего большинства знаний. Чувство причастности – к секте ли, к секретным ли данным – еще один отличный двигатель и удочка, на которую можно попасть или которую можно найти и использовать в своих целях. Тот факт, что мой дядя был победителем школьных олимпиад по математике и здорово соображал в IT – и это-то во времена фактического отсутствия обучения ему в вузах, – вызывал у меня всяческое уважение, придавал особенную ценность, вдохновлял быть похожей, учиться и мыслить.

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

С началом лекций по высшей математике отец отдал мне свои старые справочники и учебники. Держать их в руках и листать ветхие страницы было особым удовольствием. Присутствие столь дорогих мне книг и уважение к отцу окружили скучный для многих предмет особой магией для меня. Хотелось читать их, а значит – понимать больше остальных. Естественное чувство конкуренции смешалось с осознанием причастности.

Если вы родитель, преподнесите ребенку набор Arduino или книгу по программированию в особой торжественной обстановке. Создайте магию. Если вы тот самый ребенок, студент или начинающий в IT – чтите авторитеты, храните в душе уважение, и тогда подобная магия сработает для вас.

Книги, ум, авторитеты – то были мои примеры наркотиков. Но я встречала разные истории зарождения вдохновения и увлечения IT.

Так, не секрет, что IT-отрасль считается сейчас одной из самых высокооплачиваемых. Причем средний возраст и стаж в индустрии специалиста весьма низки. А значит, даже новички в сфере при должном уровне самообразования, рвения и усидчивости могут обеспечить себе состоятельную жизнь. Знакомые мне менеджеры в сфере IT, знавшие о такой особенности и более стесненные в средствах, стремились зарабатывать больше и всё свободное время посвящали изучению основ программирования и верстки сайтов. Деньги и материальные ценности – отличные мотиваторы для многих. Желание жить лучше, войти в другой социальный слой, решить свои жилищные вопросы или поддержать родителей-пенсионеров. Стоит ли говорить, что один из двух упомянутых менеджеров уже через год упорного вечернего самообучения получил предложение на позицию full-stack разработчика с зарплатой в 4 раза больше, чем он бы заслужил, по-прежнему добросовестно исполняя свои менеджерские обязанности.

Деятельность программистов в целом и фронтендеров в частности, несмотря на суровое техническое образование, нередко приравнивают к работе конструктора, дизайнера и даже художника. На протяжении своей карьеры я застала порядка десяти случаев ухода коллег с хорошо оплачиваемых позиций в собственный бизнес. Один из бэкенд-разработчиков, переехавший на Бали, основал успешный и, пожалуй, оказавшийся особенно востребованным в пандемию, стартап: онлайн-сервис психотерапии. Пропустив через себя медитации и релевантный опыт, он сделал знакомство с консультациями психологов проще и удобнее для пользователей. И даже оказался упомянут в журнале Forbes Life – как пример одного из прибыльных российских стартапов психологической поддержки.

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

Что стоит на другой чаше весов с творчеством? Тонкий расчет, холодный ум – бизнес. Ваши амбиции в этой сфере могут быть в полной мере реализованы в IT. Информационные услуги, так нелюбимые мной, но всё же… не слушайте, следуйте своим амбициям. Онлайн-магазины, видеошколы, продвижения в YouTube и соцсетях, игры – неполный список ниш, сделавших своих разработчиков миллионерами. Неудивительно, что на вопрос одному junior-разработчику популярного тревел-сервиса о том, что вдохновило его из менеджера переквалифицироваться в программиста, последовал ответ: желание впоследствии создать свой сайт, который будет работать, пока я отдыхаю. Выстроить пассивный доход, создав некий сервис или мобильное приложение, – популярный тренд даже среди профессиональных разработчиков, мотивирующий их изучать смежные сферы, вроде СЕО и интернет-аналитики.

Мечты об успешном бизнесе – что ж, достойный двигатель, и вы также на верном пути.

Что еще способно вдохновить? Однажды мне довелось общаться с новой молодой сотрудницей, выпускницей непрофильного вуза. Толковый аспирант, инженер, одной ногой шагнувший в работу по своей не-ITшной специальности. Буквально пару месяцев назад и не помышлявший о работе в крупной программистской компании. И вот сейчас – стажер-тестировщик одного из ключевых продуктов. Что случилось? Просто друзья попросили проверить их новый сайт и, обрадованные серией разумных замечаний, озвучили ей существование в мире такой специализации, как ручное тестирование. Настолько горящих глаз я не видела давно. За 60 с небольшим дней были освоены инструменты тестирования мобильных приложений, терминология и прочие азы. На вопрос: «Что дальше?» – последовал ответ вполне себе прочувствовавшего сферу специалиста и ярого фаната своей работы: «Хочу освоить автоматизированное тестирование. А потом, может, и программирование – они ведь тесно связаны. Сейчас я выхожу с работы – и у меня улыбка на всё лицо, просто чувствую себя счастливой – что может быть лучше, чем иметь любимую работу!» И почему-то чувствовалось, что путь этой девушки обещает стать ярким. Такие огонь, желание и вера повисли в воздухе тогда. Мне осталось только почувствовать себя совершенной старухой с рутинным на тот момент 8-летним опытом, грустно вздохнуть об ушедших лучших годах азарта и тихо позавидовать в душе.

Старайтесь поймать свой драйвер, свою мотивацию.

Книги, события, созидание, самореализация, деньги… люди!

Наш преподаватель по языку С на первых курсах университета нравился, пожалуй, всей женской части группы. Молодой, принципиальный, вдобавок ходивший с костылем – ореол загадочности, подпитывавший некую витавшую вокруг коллективную симпатию и тем самым окончательно растопивший девичьи сердца подсознательным чувством жалости. Притом – весьма сообразительный и требовательный: его уважение хотелось заслужить. Отношение к преподавателю негласно влияет на отношение к предмету и, жизненно важно, – к языку, практикам и теориям, изучаемым в нем. Возможно, отчасти поэтому С на тот момент стал моим любимым языком. Я с редкостным рвением прочесывала книжные магазины в поисках серьезной литературы, с трепетом изучала экземпляр «Языка программирования С», написанного его разработчиками Керниганом и Ритчи. К лабораторным я готовилась заранее, стараясь просматривать темы наперед и знакомясь с решениями типовых задач из скупленных мной изданий. И вот, на одном из практических занятий мне посчастливилось, наконец, быстро запрограммировать задачу, пользуясь готовым алгоритмом одной из моих книг. Каково же было удивление, когда, преисполненная чувством гордости и предвидя похвалу и признание, я получила в ответ подозрение в списывании и поставках решений от старших курсов, а потом была вынуждена оправдываться, демонстрируя книжный экземпляр. Хотя тот случай и не потешил мое самолюбие, любовь к С, предмету и желание быть еще лучше, убедительнее – без всякий сомнений – остались со мной.

Уважение и влюбленность в преподавателей – мощнейший двигатель. Настолько, что не зазорно, если подобной любви нет, найти ее себе. Сильные чувства, в том числе, – индикатор верного выбора профессии. Если вас восторгает то, как человек делает, рассуждает, что знает, – значит, предмет применения его навыков в вашей системе ценностей важен. Вас вряд ли поразит и станет объектом подражания специалист, отличающий гусеницу махаона от гусеницы павлиньего глаза, хотя подобные умозаключения подчас требуют многолетнего обучения и практики. Или искусствовед, по серии мазков точно определяющий автора картины. Энтомологические и художественные подвиги не трогают и не мотивируют вас – ибо вся область не кажется такой привлекательной. Но вот мальчик из соседней комнаты общежития находит дыру в сетевой безопасности и выводит дерзкое сообщение на сайт университета. И вам хочется быть таким же. Виртуозно видеть слабые места в вебе, обходить системы защиты. Значит, вы на правильном пути.

Однажды на главной странице одного из сделанных мною на заре карьеры дружеских сайтов гордо разместилось приветствие малазийских хакеров. И хотя древность версии использованного фреймворка и надежность настроек дешевого хостинга могли многое объяснить, я завороженно смотрела на красные буквы поверх классического черного фона во весь экран. Тот случай стал отличным поводом научиться успокаивать испытавших еще более острые эмоции и далеких от IT заказчиков. А заодно стимулом побольше почитать на досуге про различные атаки.

Используйте вспышки влечения – бросайте себе вызов, чтобы стать лучше, узнать больше. Желание действия – ценнейший дар. Незаметно для себя, в попытке понравиться тому соседу (или подружиться с ним) и завести с разговор, – вы уже постигнете суть современных уязвимостей веб-сайтов. А ваш общий интерес, подпитываемый азартом, кто знает, быть может, однажды заведет вас в гараж на сборку неуязвимого робота нового поколения.

Действуйте, как только страстно пожелаете стать профессиональнее. Неважно, что примешано – любовь, почитание или, быть может, зависть. На войне все средства… и все эмоции.

Усердие и глубина

Итак, первые дни, месяцы, курсы. Есть ли что-то настолько же важное, как мотивация? Непременно. Следовать учителю. Вы знаете мало, слишком мало, чтобы оценивать и критиковать систему образования по данной специальности. А потому – впитывайте всё. База нужна, и если даже она устарела – что ж, тем дальше в прошлое будет простираться ваше понимание развития IT. Как знать, может, в будущем более широкий исторический временной интервал поможет вам принять максимально разумное решение. В моем случае такая схема работала вполне.

Любую лекцию старайтесь прочувствовать, понять все детали. Найдите дополнительные источники, изучите информацию по теме. Если вам неясна формулировка – перечитайте снова.

Следите за логикой подачи: как из заданных предпосылок вытекает следствие. Верно выстроенное умение мыслить поможет вам, как качественно подготовленный раствор цемента строителю, вынужденному собрать из сотен разрозненных кирпичей надежный особняк. «Научиться учиться» жизненно важно для разработчика. Конкретика устареет через год-два. Как помните, динамика развития и изменений отрасли носит экспоненциальный характер, поспеть за которым можно, лишь быстро осознавая новое. Или же тратя на это всё свободное время, выделенное для жарки котлет. Ускорить процесс поможет грамотно выстроенное логическое мышление, умеющее, даже не зная о существовании нужного метода в API, сделать верный вывод о его наличии, сигнатуре или же предсказать нужное поведение системы без ответа менеджера.

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

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

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

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

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

Изучайте непрофильные предметы из серии естествознания и истории для общего кругозора, но максимально быстро соблюдайте формальности. Не стоит кропотливо прорабатывать реферат для доклада на рядовом практическом занятии по культуре речи, где половина группы будет играть в морской бой. А если подобная деятельность доставляет вам удовольствие – возможно, вы ошиблись с выбором профессии. Да, это те самые верно сформулированные приоритеты.

Как типичный отличник, добросовестно готовившийся в равной мере и к культуре речи, и к философии, я с сожалением должна признать сейчас, что могла бы потратить то драгоценное время гораздо более перспективными способами. Покопаться в устройстве современных инструментов, изучить работу браузера, поиграть в сисадмина или, в конце концов, выбрать беспроигрышный вариант – заняться спортом. И так как наша цель здесь – изучение чужого, в данном случае скромного моего, IT-шного пути для избегания тех же граблей – не повторяйте моих ошибок. Будьте мудро дерзкими, копайте в глубину, нарушайте правила и делайте действительно важное для вашей цели, профессионализма и успеха.

Для тех, кто вообразил себе весьма распространенную у начинающих IT-шников крайность – раз в учебе много наносного, а не пойти ли мне работать сразу и углубляться в практику? – приведу пару историй.

В команду, где я работаю, приходит стажер. Он полон энергии и энтузиазма. Еще бы – крутая компания, он только перешел на второй курс, а тут реальные задачи. И он неплох, старается, разбирается, фиксит баги и делает мелкие фичи. При этом проводит на работе почти полноценные 8 часов. На вопрос – почему так много, есть же лекции, отвечает: в «инсте» делать нечего. Фактически перестает посещать пары уже на втором курсе. Пропускает многие небесполезные фундаментальные дисциплины. Не исключено, что получает массу проблем с угрозой отчисления. Не имея более-менее широкой технической картины отрасли, сосредотачивается на частных знаниях. Только вот 95 % процентов полученных знаний могут оказаться методами самописного внутреннего фреймворка, который нигде более не будет использоваться, а также вкусовыми и крайне субъективными замечаниями наставника-ревьюера о том, где лучше ставить запятые, а где лучше использовать другой метод. В результате стажировка завершается, заветная «настоящая» работа не получена, а учебному процессу нанесен ощутимый урон. Не лучшее вложение на долгосрочную перспективу.

Другая история. Молодой человек с первых курсов находит подработку, у него всё получается, и он решает оставить вуз. В итоге его «кидают на деньги», он вынужден искать новое место. Очевидно, оно оказывается не настолько высокооплачиваемое, как у полноценного выпускника. На очередной найденной позиции, так случается, его труд в итоге вновь оставляют без материального поощрения. Результат: потраченные нервы, худший уровень жизни и менее концентрированный профессиональный опыт в единицу времени. Характер рабочих мест в таком кейсе, как правило, небольшие фирмы с IT-отраслью в прикладной роли: ИП, мелкие магазины государственного отделения, – или отчаянные студенческие стартапы. Лучший ли это выбор в годы наибольшей восприимчивости и обучаемости, горящих глаз, органичного принятия менторства и сил покорить весь мир – решать вам. Вряд ли вас сильно вдохновят или обучат вышеописанные окружения местечковых фирм. И хотя с героем этой истории наши пути сошлись в одной точке в одно время – мы оба оказались в крупной уважаемой IT-компании мечты, а значит, результат один, – но зачем? Пробираться через тернии, променивать материальный достаток и душевное спокойствие на борьбу, растрачивать силы и энтузиазм, когда вы можете пустить их на что-то большее и созидательное! Не стоит ходить зигзагами, если есть прямая дорога.

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

Типаж

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

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

А значит, как и в любой области, в IT можно сформировать некий портрет разработчика, склонного достигать успеха. На тренингах по подбору персонала, которые мне доводилось посещать, составление подобного портрета и вовсе считалось необходимым шагом к успешному найму. Список требуемых качеств делится на профессиональные навыки и личностные характеристики. Поскольку, уверена, следуя прочим советам, вы справитесь с подготовкой себя как специалиста – поговорим о личных чертах, характере и поведении, способных привести вас к победе.

Мы все хотим максимума. Стать лучшими. Потому встречайте портрет первый: технический директор.

Его обязанности предполагают руководство компанией в части её стратегического технического развития. Такой человек – лидер для всех разработчиков, определяющий, какие технологии, инструменты и аппаратные части будут использоваться в масштабах всей организации. Технический директор агрегирует в себе глубокие знания программирования и бизнеса. Он решает, как выстроить архитектуру продуктов на верхнем уровне, организовать взаимодействие проектов, если их несколько и выиграть от интеграции. Как обратить техническую конъюнктуру конкурентов себе на пользу, не упустить их лучшие решения и предвидеть развитие отрасли. Он же – активный участник управления высшего звена, ведущий переговоры с партнерами и обеспечивающий наличие перспективных контрактов.

Для работы на данной позиции вы должны сначала воспитать в себе черты всех низлежащих типажей, пусть и в быстрой манере. А затем…

Интуиция, умение видеть наперед. Широкий кругозор и ваша сформированность как личности. Как устроен иммунитет, почему Intel сворачивает линейку новых процессоров, что такое опцион – вы должны быть образованным стратегом. Если вам удается живо интересоваться, глубоко понимать процессы экономики и инженерии и вдохновлять людей – есть шанс. Если в играх вы не терпите поражений, продумываете ходы наперед – стоит попробовать.

Вы должны быть психологом второго уровня. Манипулировать людьми, понимать людей, программировать. Знать НЛП – пусть и неосознанно и не под таким названием. Уметь заводить связи и окружать себя перспективными людьми.

Уверенность, сдержанность и осознание «сейчас» и «завтра», недоступное остальным. Естественная манера держаться, речь, энергетика лидера – зачастую они либо есть, либо нет. Признайтесь себе честно, фальшь чувствуется всегда. Ни Маск, ни Гейтс или Цукерберг – никто из них не отталкивался от внешней формы. Внутреннее содержание и сила личности уже как следствие дают нужный внешний эффект.

Что еще? Вы должны быть энергичны, быстры. Лучшие техдиректоры, которых доводилось мне встречать за карьеру, поражали способностью адаптироваться, легко принимать и пробовать новое. Разобраться в неизвестном пакете и за минуту прислать разработчику верную наводку, молниеносно обновить конфиг – отчасти следствие профессионализма как разработчика, но во многом – особо верное отношение к изменчивости мира. Если вам присуща косность мозга, вы консервативны и предпочитаете посиживать в персональной зоне комфорта, закутавшись в уютный плед с чашечкой смузи, – вам не сюда.

Амбиции – это прекрасно, что-то из вышеперечисленного вы сможете воспитать в себе, но не лучше ли изначально честно понять себя и грамотно воспользоваться своими главными чертами? Когда перед глазами нет образцов, когда вы юны и смутно представляете, что ждет профессионала-программиста через 10–20 лет, надеюсь, подобная информация поможет вам осознаннее выбрать цель и направленнее двигаться к ней.

Портрет второй: техлид проекта, руководитель группы.

Обязанности «главного на проекте» – выбор инструментов, фреймворков и решений, оптимальных для своего продукта, и координация действия подчиненных разработчиков. Техлид следит за целостностью, скоростью работы и качеством программного кода проекта, а также обеспечивает профессиональное развитие своих сотрудников.

Уметь быть авторитетом и учителем. Вам придется в первую очередь воспитывать вчерашних студентов или перекраивать под нужды продукта вновь пришедших более опытных разработчиков. Техлидов редко нанимают: ими не приходят – ими становятся лучшие гибриды профессионала и руководителя. Вы староста группы, с легкостью входите в командную работу и эффективно советуете, как разделиться, чтобы выиграть? Легко находите выход из спорных ситуаций, сохраняя хорошие отношения с обеими сторонами? Тогда вам стоит взращивать эти качества и дальше.

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

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

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

Помню, однажды мне предложили выкатить релиз, заведомо содержащий довольно ощутимые баги. Первая реакция – непонимание: шутка, диверсия? Разрыв шаблона для разработчика – как может подняться рука отправить в продакшен очевидно сбойный код? Но у столь смелого предложения был свой расчет: перед выкладкой приложение тщательно ревьюилось и почти всегда возвращалось на доработку в силу бюрократического и слабо детерминированного процесса в сфере тогдашнего Smart TV. Объем изменений релиза был велик, а вероятность возврата – высока, в то же время было важно соблюсти срок сдачи для заказчика. А значит, мы могли отдать на аппрув приложение уже сегодня, продолжить доработки, а затем внести их в продукт с прочими мелкими замечаниями, после почти гарантированного возврата. Тем самым ускорив попадание релиза к потребителям в конечном итоге. Ловкость ума и никакого мошенничества.

Я встречала немало крутых технических лидеров и руководителей небольших групп или продуктов. Типаж успешных людей всегда схож: уравновешенность и сдержанность, холодный ум и легкая хитрость, дальновидность и техничность. Вариации с поправкой на темперамент случались – но, так или иначе, всем лучшим были присущи описанные выше черты.

Досконально изучили язык или фреймворк для лабораторных и знаете, какие из возможностей применить для лучшей презентации задания? То, что нужно! Но помните, если вы не есть хороший разработчик – пусть не виртуозный, но как минимум хороший, – успех не заглянет к вам в гости. А значит, для начала следует воспитать в себе и нижеприведенные черты портрета разработчика-профессионала.

Портрет третий: виртуозный разработчик.

Главные обязанности программиста – создание надежного, поддерживаемого и расширяемого кода. Оптимизация скорости, рефакторинги, обновление версий пакетов и актуализация инструментов – одни из основных сопутствующих зон его ответственности.

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

Вы обладаете рациональным мышлением, с легкостью проходите IQ-тесты, оставляя далеко позади других участников, в дружеских отношениях с точными науками, не прочь поизучать статистику и математику без лишних принуждений, любите собирать собственно разработанные инженерные конструкции, паяете или тесно дружите с радиоэлектроникой? Тогда – добро пожаловать.

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

Самодисциплина – еще одна неизменная черта лучших представителей данного вида IT-специалистов. Быть в курсе: максимально обновлять операционные знания, впитывать всё новое и держать в голове большой набор информации «в ширину» – неизбежная «домашняя работа» успешного программиста.

На моем пути встречались разные типажи программистов-исполнителей, вызывавших восторг, легкую зависть и понимание, что ты среднестатистический посредственный представитель своего IT-шного вида на их ярком фоне.

Победители и участники международных олимпиад по программированию, досконально знающие все базовые алгоритмы и их модификации – те, кто со студенческой скамьи днями просиживал за решением задач спортивного программирования. Они способны комбинировать, совершенствовать непростые для понимания структуры данных, оптимизировать алгоритмы, молниеносно находить наиболее подходящий вариант для описанной ситуации. Скорость набора, горячие клавиши – каждый нюанс создает сложнодостижимый уровень. Именно такие разработчики оказываются в ядрах ключевых для мира продуктов, способных двигать отрасль и прогресс человечества вперед. Они – те, кто тратит всё свободное время, личную жизнь на погружение в абстракции. Чаще, сродни ученым и творческим личностям, увлекаются диаметрально противоположными сферами: фотографией, музыкой, и следуют им с той же маниакальный щепетильностью, добиваясь результатов не хуже многих профессионалов. Нашли в такой картине себя? Обратите внимание на недостающие мазки – и, быть может, вы впишете свое имя в историю разработки ПО.

Но есть и другие виртуозы, оставившие алгоритмику и олимпиады в стороне. Разработчики бизнес-решений, популярных сервисов – те, кто качественно и надежно переносят процессы реального мира в мир виртуальный. Не всем дано, не каждому интересно манипулировать алгоритмами и приближать свою ежедневную работу к реалиям спортивного программирования. Но вы всегда можете конкурировать иным непобедимым оружием – качеством.

Легко продумываете граничные случаи, чувствуете связь автоматизации с предметной областью, учитываете всё до мелочей, планируете в повседневной жизни ваши действия на случай, если что-то пойдет не так в каждой итерации? Звонка в Хьюстон от вас не дождаться? Вероятно, вы станете уважаемым бизнес-разработчиком.

Они всегда адекватно оценивают сроки для менеджеров, указывают им на забытые подводные камни, отдаленные последствия принимаемых сегодня решений. Их ценят в коллективе и носят на руках владельцы продуктов. Принципиальны и ответственны, способны принять лучшие многофакторные решения с учетом как технической, так и продуктовой составляющей и обеспечить в срок MVP или даже больше. Продукт, созданный ими, удобен для внесения изменений с появлением новых фич – понимание сферы приложения позволяет верно расставить точки расширения программ на первых итерациях. Надежность, внимательность, вовлеченность – одни из главных черт. Такие программисты болеют душой за дело, приходя домой, могут с любовью рассматривать на продакшене выложенный новый релиз. Готовы корректировать поведение других в команде, прививать им тщательность, неумолимо заставляют на ревью переделывать недостаточно качественные решения. Со своим искренним отношением и верой качеству, что на рынке фирмам стоит положения, такой разработчик становится почетным представителем своей профессии.

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

Кем быть вам – выбирайте. Главное, не будьте никем.

Конкуренция

«Критика – завтрак чемпионов».

Дхармеш Шах, основатель HubSpot

«Все мы родом из детства». Не отрицаю, что поводов оспорить истинность данного утверждения у вас может найтись немало. Но жизнь на моем пути многократно доказывала его верность.

Отец с ранних лет заложил во мне любовь к логическому мышлению, здоровый дух соперничества и стремление к конкуренции – причем в ее самом полезном проявлении: борьбе с самой собой.

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

Желание не уступать себе вчерашней и все так же бойко доходить до назначений деталей инструмента в работах с отцом – детский азарт и конкуренция с самой собой – постепенно перетекли в школьную, а затем и университетскую жизнь.

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

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

Я всегда была отличницей – и не единственной. Особенно благодарна всем талантливым школьникам и студентам, что окружали меня, – без вас я бы не стала тем, кем являюсь сейчас. Десятки микроусилий в попытке остаться лучшей, прыгнуть чуть выше головы, выучить стих на пару четверостиший длиннее, сделать презентацию зрелищнее, доклад – интереснее. Все это учит изобретательности, заставляет преодолевать барьеры, не лениться, быть собраннее и развиваться на грани своих текущих возможностей, переходя на новый уровень, и… это входит в привычку. Сделайте стремление остаться лучшим своей привычкой.

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

Мне первой за всю историю существования дисциплины в университете поставили автомат по Теории Программирования. Почему? Сортировки, поиски, базовые алгоритмы и их усовершенствования – завернутые в лекции материалы часто представляли собой лишь предмет судорожного переписывания студентами с доски. Гораздо сложнее успевать следовать за цепочкой последовательных улучшений и догадываться о следующих самим. Приятный десерт для преподавателя – верные ответы и предположения на тему «What’s next?». И если бы не один сообразительный юноша с потока, быть может, мой интерес к озвучиванию правильных рассуждений быстро бы иссяк – но желание опередить, перещелкнуть тумблер в голове быстрее заставляло внимание и нейронные связи оставаться настроенными на генерацию верных умозаключений. Дополненное ответственностью со сдачей работ в срок, такое простое пребывание в конкурентном тонусе дало свои плоды: признание, автомат и никогда не лишнюю разминку алгоритмического мышления.

Помню, как на самом первом занятии самого первого университетского дня встал вопрос выбора соседства за партой. Будучи меньшинством, мы, девушки, подсознательно постарались найти друг друга, и одной из них методом внутренних исключений – но, впрочем, весьма спонтанно – я предложила составить мне компанию. Впоследствии моя напарница оказалась одним из умнейших людей, с которыми мне доводилось когда-либо встречаться, как жизненно, так и технически. Мы просидели вместе всего год, после чего она поступила в сильный технический университет и уехала учиться в Израиль. А затем на последних курсах подрабатывала в израильском офисе Intel. Мы продолжали общаться и поддерживать связь, и мне довелось узнать множество любопытных фактов про страну иудеев, религию и сравнительный уровень образования – увы, не в нашу пользу. Актуальные языки: уже применимый в реальности С вместо тогда еще популярного в наших вузовских программах устаревшего Паскаля, жесткий контроль за отсутствием копирования лабораторных с помощью специальных программ и более высокая сложность проектов заставляли меня порой побеспокоиться о своей будущей ценности на мировом рынке. А спустя несколько лет в признательном порядке я узнала, что тогда – в самый первый день – я не показалась моей потенциальной соседке достаточно умной, и она весьма желала составить компанию другой девушке, учившийся впоследствии несколько слабее. Из чего я сделала два неутешительных для себя вывода: первое – я не произвожу впечатления интеллектуального человека, второе – упорство и конкуренция способны дать фору гораздо более развитому уму.

Советы в конце подраздела

–› Ищите вдохновение, как первую любовь. Погрузитесь в омут с головой.

–› Следуйте учителю.

–› Отдайтесь конкуренции.

–› Трудитесь.

–› Будьте глубоки.

Расширяем роли: смежные активности

Факультативы

Тот, кто знает свою область лучше других, бесспорно, великий мастер. Кто сможет обойти гуру? Лишь тот, кто знает не только ее.

Сейчас в университетах организуется множество различных факультативов, дополнительных курсов, начиная от разработки своих сайтов и изучения человеческих языков, заканчивая секциями по театральному мастерству и репетициями команды КВН. Внимательно присмотритесь к ним – тем, что ближе всего связаны с вашей будущей профессией, – и обязательно сходите.

Зачем мне эта суета вокруг? Безусловно, если вы катастрофически не справляетесь с основной программой и ваши мечты стать вторым Дэном Абрамовым рушатся на глазах, – отложите смежные активности. Однако при малейшей возможности не упускайте сей замечательный шанс догнать и сфотографировать сразу трех зайцев: новые знания, перспективные знакомства и осознание своих пристрастий.

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

Придут те, кто похож на вас. Но они другие. И своей разницей – поразившими их фильмами, поворотными книгами, живыми увлечениями – способны заразить вас. Так же, как и вы способны обогатить истории людей: в чем-то схожих с вами и обладающих теми же интересами, а значит, более склонными поверить, попробовать и принять ранее неведомые знания и хобби. Павел Дуров, Ричард Брэнсон и сотни других примеров успеха начались из дополнительных студенческих активностей в кругу счастливо повстречавшихся им единомышленников. Мы не общались бы во ВКонтакте, если бы Дуров не писал на досуге интернет-проекты для вузовской жизни: библиотеки рефератов и форум университета. А главное, если бы один из учившихся в США друзей не познакомил бы его с Facebook, вдохновив на использование для студенческого форума реальных имен. Мир не обрел бы прогрессивную авиакомпанию и истории дерзких перелетов на воздушном шаре, если бы Брэнсон не жаждал реализовать себя в бизнесе вместе со своими приятелями. Разведение и продажа попугаев, неудачи с выращиванием рождественских елок привели его в конце концов к выпуску успешного студенческого журнала Student, давшему старт множеству проектов мирового уровня.

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

Здесь, на этапе ухода от выстроенного за вас и спускаемого сверху шаблонного расписания – школьной программы, университетских пар – вы можете почувствовать, что интересно именно вам. К сожалению или счастью, раньше многих из наших родителей распределяли на рабочие места по окончании учебы в вузе. Им не нужно было сильно заботиться о выборе, размышлять, в чем их призвание. Сейчас же умение находить дело себе по душе, видеть компании, в которых вы готовы работать, понимать свои сильные стороны и знать, что вам точно не станет интересно, – жизненно важно для чувства гармонии и комфорта в будущем. Чем раньше вы научитесь отделять желанные и успешные для вас занятия от навевающих скуку, тем целенаправленнее, последовательнее и счастливее будет ваша карьера. Да и не только она.

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

Мне же во время обучения довелось поучаствовать в увлекательнейшем факультативе, ни названия, ни цели которого я не в силах вспомнить, однако благодаря которому я стала счастливым обладателем свидетельства о государственной регистрации в реестре собственной программы ЭВМ. «А почему бы нет?» – сказал на очередном занятии предводитель нашего факультатива и отправил нас готовить документы. Недолго думая, я выбрала одну из своих курсовых: по компьютерной графике. Она представляла собой 3D-модель университетской столовой – «бродилку» по помещению с обработкой столкновений с препятствиями, несколькими режимами рендеринга и натянутыми текстурами из реальных фотографий. Последние добросовестно делались в «полевых» условиях на кнопочный цифровой фотоаппарат – да-да, телефоны студента тогда еще не отличались наличием камер с приличными мегапикселями. Спустя месяц после трепетного заполнения необходимых бумажек пришло свидетельство о попадании моей программы в единый реестр Роспатента. Зачем оно мне? Не знаю, но эта активность запомнилась мне на всю оставшуюся жизнь и служит и по сей день источником хорошего настроения. А еще она весьма ярко смотрелась в моих заявлениях на губернаторскую стипендию и помогала в составлении иных списков подобных формальных достижений. Так что, если решите набросать геймплей с выскакивающими из-за столов общепита монстрами – проверьте, не нарушаете ли вы мою частную собственность? А иначе… лишняя сумма на путешествия мне никогда не помешает.

Публикации

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

На одном из занятий мы выстраивались в живую цепочку, изображая своей персоной конечный автомат, на другом поднимали руки как триггеры и играли роли входных сигналов. Студентам полагалось вставать при каждом ответе, и привилегию садиться обратно получали лишь авторы верной мысли. Притом, что оценка верности выбиралась весьма субъективно, неудивительно, что половина группы проводила пары исключительно стоя. Затем к лекциям прибавилась внешняя девочка – студентка старших курсов, которой было поручено записывать и конспектировать всё происходящее. Девочку было искренне жаль, но, кажется, согласие было ее личным выбором. Набор выражений на грани дозволенного, диктуемый под обязательную запись в графе жизненных советов, содержал вышеописанные фразы про яйца и мудрости вроде: «Что такое любовь? Любовь – это забота и страсть». Ряд не самых полезных терминов требовался к регулярному повторению на каждом занятии. В результате мы мало что поняли про конечные автоматы, но определение «парадигма – это свод обязательных представлений» прочно осело в памяти на всю оставшуюся жизнь.

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

Сейчас написание статей на популярных ресурсах, вроде Хабра или «Медиума», является котируемой работодателями и сообществом активностью. Контент, как правило, требует хотя бы минимального опыта и актуальности, выдать которые на первом курсе могут немногие. Научные статьи в вузовских журналах – хороший шанс попробовать себя в роли IT-шного писателя, не имея практического опыта. А еще понять, близко и интересно ли вам следовать именно научной – формализованной, «серьезной» структуре, и, в частности, оставаться впоследствии в преподавательской или аспирантской деятельности. Лично мне процесс согласования публикации в журнале твердо доказал, что я желаю держаться на максимально возможном расстоянии от подобных занятий. Бюрократичность происходящего и бессмысленность материала раз и навсегда похоронили мысль продолжить одну из семейных династий – остаться преподавателем в вузе, писать докторскую и строчить лишенные всякого смысла работы на регулярной основе. С тех пор у меня сложилось глубокое отторжение от научной деятельности вузов среднего звена – она показалась мне чересчур наигранной, фальшивой и далекой от современной реальности. Впрочем, один из журналов с моей единственной в итоге увидевшей свет статьей до сих пор хранится на домашней полке. Что ж, по крайней мере, это приятно.

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

Спортивное программирование

Азарт – главный драйвер успеха.

Мне повезло учиться в вузе, взращивавшем участников и призеров чемпионатов мира по программированию. В университете была организована команда по подготовке, курируемая целеустремленным и сведущим наставником. Участники регулярно после, а нередко и вместо, занятий собирались в небольшом кабинете и часами просиживали за решением олимпиадных задач со специализированных контест-сайтов или же предыдущих соревнований разного уровня. Традиционные языки написания на тот момент: С или Паскаль – знание английского языка выше среднего уровня сверстников, необходимое для понимания всех оттенков постановки задачи на международных турнирах, логика, смекалка, внимательность, скорость набора и… алгоритмы, алгоритмы, алгоритмы. Если первые задачи подобных соревнований способен решить сообразительный студент без специальной подготовки, то последние и самые ключевые по баллам – невозможно выполнить без знания всех базовых алгоритмов обхода деревьев, сортировок, их модификаций под конкретный оттенок задачи, а также умения комбинировать и дорабатывать их, либо же редкой гениальности, если участник никогда ни о чем подобном не слышал.

Обо всем вышеописанном процессе я не имела ни малейшего понятия, когда, увидев объявление о вузовской олимпиаде по программированию, решила проверить свои силы, с наивностью закоренелой отличницы, и поучаствовать в ней.

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

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

На наступившей межвузовской олимпиаде я справилась с несколькими базовыми заданиями, но ключевые алгоритмические сдала без боя. Я до сих пор с улыбкой вспоминаю одну задачку, звучавшую примерно так: «У сороконожки сорок ножек. Если сороконожка делает шаг правой ножкой, то она наступает себе на 1 ножку, если левой – на 2 ножки. <далее, кажется, шли еще некоторые дополнительные условия.> Сколько ножек останется у сороконожки, если она начнет ходьбу с левой ножки? <и прилагалось, как водится, описание формата входных и выходных данных программы для прохождения тестов>». Суть решения данной задачи сводилась к набору единственной строчки кода, посылавшей в поток вывода цифру (нет, не 42): 40.

Итоговым местом той олимпиады похвастаться весьма сложно. Немного успокаивало наличие в конкурентах тех самых участников и финалистов международных олимпиад, щелкающих последние задания с профессиональным мастерством. Однако я была рада появившейся определенности в своем нежелании серьезно углубляться в спортивное программирование, прорешивать часами, как мне казалось, узкоприменимые задачи и становиться виртуозом оптимизаций алгоритмов. И еще немного тому, что сороконожка оказалась не по силам многим участникам, в том числе занявшим позиции в топе.

Важнее всего, что я не почувствовала энтузиазма и интереса, достаточных для достижения успеха. А где вы видели чемпиона, страстно не желавшего им стать, будучи никому не известным? Таких не существует в спорте. Без стартового рвения и инерции вам будет вдвойне трудно бороться с нарастающей сложностью позже. Честно оцените, готовы ли вы и способны ли углубляться в данную область на долгую перспективу.

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

Если у вас есть такая возможность, попробуйте.

Спортивное программирование для меня – отрасль, на 90 % оторванная от жизни, учебы и работы среднестатистического программиста. Единицы достигают успеха, но зато оказываются и востребованы на уникальных серьезных позициях в крупных компаниях.

Сейчас такие люди – участники и победители олимпиад – основа штата ключевых продуктов IT-отрасли, связанных с Big Data и машинным обучением. Все алгоритмически зависимые области – поисковые системы, оптимизации, рекомендации и задачи распознавания – в мировом сообществе так или иначе двигаются людьми, на «ты» обращающимися с каноническими алгоритмами и умеющими их модифицировать. Они – те, кто стоит во главе прогресса и кого с жаждой расхватывают Яндекс, Google и все главные игроки планеты.

Каждый выбирает, что ему ближе: стать ключевой фигурой в технической части передовых и поворотных продуктов – само собой, при трезвой оценке возможностей и наличия способностей – или же качественно решать массовые бизнес-продуктовые задачи, облегчая жизнь людей и радуя пользователей удобными интерфейсами и автоматизацией их потребностей.

Однако, даже если вы относите себя ко второй категории, опыт спортивного программирования почти гарантированно пригодится вам на собеседованиях. Особенно в масштабных и известных корпорациях. На удивление, вас будут просить набросать программу, сортирующую все числа, кратные трем, инвертировать строку или применить алгоритм обхода бинарного дерева и поиска в ширину. Тенденция такова, что сейчас – но, надеюсь, «пока еще» – ни в одной крупной компании вас не спросят о лучшем способе внедрения новой фичи в продукт, качестве ваших тестов, актуальности применяемых методов и не оценят адекватность выбираемых бизнес-решений, ответственность и инициативу. Хороши ли вы как специалист, будут с 90 % вероятностью судить по наброску кусочка алгоритмического кода. А значит, набитая в спортивном программировании рука и осознавший его в свое время мозг могут стать вашим пропуском в желанные вакансии. Пусть и потом вам почти наверняка не придется столкнуться с реализацией очередного оптимального поиска.

Наркотик многих – спорт, скрещенный с интеллектом, – опасная и чарующая смесь.

Не бросайтесь в омут с головой, если не уверены, что это ваше. Доучитесь, обретите базовый запас знаний, опыт подработок. Обеспечьте себе тыл традиционной программистской деятельности. Научитесь общаться с коллективом, называть переменные, длиннее a, b, с, d, и писать «долгоживущий», поддерживаемый и расширяемый код. А если вы тот самый, талант спортивного победителя, – я искренне восторгаюсь вами и, признаюсь, немного завидую. А еще – рада, если вы находите в моих изложениях для себя что-то небесполезное в иных сферах.

Играйте по правилам. Но с опытом всегда подвергайте их проверке. Это значит – учитесь прилежно, будьте ответственны и впитывайте всё, что может дать вам образование. Но если вы нашли в себе талант олимпиадника или здраво видите, что участие в факультативе либо иной смежной активности принесет вам больше пользы для последующей карьеры, здоровья или финансовой независимости, – позвольте себе стать нарушителем. Стоя на дороге вузовского образования, посматривайте на другие тропинки. Окажитесь послушным учеником на первых курсах, начальных этапах овладевания профессией, но помните – система не успевает за изменениями. На старших курсах станьте ответственны за прокладывание вашего собственного пути. Пропустите ненужное занятие ради собеседования. Двигайтесь в сторону реальной работы.

Параллельные миры

Вначале вы не погружены в разработку с головой. Не снабжены осознанием необходимости огромного багажа для успеха в любом деле. И с равной верой в свои силы новичка примеряете на себя немало других занятий в окружающем мире. С опытом смежные отрасли могут начать казаться вам чем-то далеким, не свойственным привычному кругу. Не закрывайтесь от них, отдаваясь всецело IT, но грамотно распоряжайтесь на пользу своему профессионализму.

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

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

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

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

Насколько мне известно, никто из группы тех студенческих КВНщиков и активистов не преуспел в исходной цели: не стал котируемым IT-специалистом и не построил карьеры в серьезных компаниях.

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

В то же время не стоит ни в коем случае думать, что вам нужно запереться дома и день и ночь писать программы, помните о балансе и святом граале – вашей успешной разносторонности. Той, что сделает вас уникальным гибридом знаний в разных областях и, как следствие, незаменимым IT-специалистом.

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

Сейчас, когда на горизонте явно просматриваются голосовые интерфейсы, домашние роботы, биоинженерные технологии – и сотни, тысячи иных сфер жизни, комбинируемых с достижениями IT, – вы можете с легкостью стать ключевым двигателем нового направления. Как минимум ценным специалистом, а может, тем, кто изменит мышление людей и нашу повседневную жизнь.

Бизнес-стратеги силиконовой долины, приобретшие важность, пусть и микро-, уникальности и первопроходства, одержали немало побед. Основатель PayPal Питер Тиль в своей книге «От нуля к единице» доказывает успешность свежих идей на стыке дисциплин – важно построить то новое, чего нет у других. Путь же от единицы ко многим останется для вас приятной бонусной прогулкой напоследок.

Сложность востребованных смежных сфер автоматизации повышается по мере прогресса в IT и остальных сферах жизни. Если раньше ценились знатоки основ бухгалтерского учета – бывшие отнюдь не редким видом, – чтобы создать теперь уже незаменимые продукты вроде 1С, то сейчас все низкорастущие персики уже собраны. Знания медицины, биологии, органической химии или физики – вот что нужно для эффективных моделей нейросетей, их обучения, разработки лекарств от рака, создания биопротезов. Безусловно, имеющаяся диверсификация – скажем, химики налево, IT-шники направо – позволяет сейчас выживать и двигаться отраслям. Но серьезных прорывов не может быть, пока вы как разработчик не заговорите на одном языке с физиком или биологом, не пропустите через себя предметную область. Выбирайте нужные параллельные миры и стремитесь нарушить школьную аксиому – заставьте их пересечься.

Советы в конце подраздела

–› Играйте по правилам в начале, не бойтесь нарушать в конце.

–› Не ешьте одно блюдо – здоров тот, кто пробовал разное.

–› Подумайте, какой еще параллельный мир вы способны захватить.

Первая весна Естественного Интеллекта

Миром правит любовь.

Пока программист не сочтет это багом.

Свесной мне повезло. Кажется, в моей истории она приобрела неожиданные краски, и где-то посреди подснежников вырос выразительный чертополох, и в ходе увлекательной прогулки обронилась косточка вишни, запылавшая спустя пару лет гордым деревом в цвету, – правда, обреченным впоследствии на бесславное падение.

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

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

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

Само собой, чрезмерное увлечение отношениями не идет на пользу ни учебе в вузе, ни погружению в программирование, требующему сосредоточенности, холодной головы и 90 % процессорного времени мозга, неделимого ни с чем другим. Обуздать эмоции студенческой жизни и не допустить вредного влияния на ваше последующее положение и карьеру непросто. Но этот урок важно пройти. Контролируйте ситуацию, не отплывайте далеко от берега и, самое главное, если попутному ветру ответных эмоций суждено было случиться, – используйте его во благо. Нет ничего плохого в симпатии к преподавателю или коллеге, пока она заставляет вас писать код качественнее, делать лабораторные внимательнее, проявлять инициативу на работе и, в целом, – созидать. Если же, увы, ветер против вас – боритесь и закаляйтесь. Радуйтесь вдвойне: страстное желание доказать оппоненту его неправоту: – он вас не воспринял всерьез! – куда более мощное оружие и предвестник гораздо более масштабных открытий, нежели трогательный портрет или красивое стихотворение. Стремясь добиться объекта вожделения и не получая взаимности, мы жаждем сделать что-то большее, перевернуть весь мир, стать еще лучше – ведь, наверное, сейчас мы были недостаточно хороши. И пусть это всего лишь психологические ловушки сознания – но и они способны дать вам продуктивный толчок к прыжку выше головы, изменению себя, созданию продукта или бизнеса, которые принесут вам славу и непременно заставят обидчика кусать локти. Все ведь смотрели фильм «Социальная сеть»? Выдумка в части личной, но такой характерной для нас.

Мне довелось встречаться с сокурсником, быть в отношениях с преподавателем, состоять в браке с программистом. Я попадала в нездоровый интерес местного легендарного лектора пенсионного возраста. Находилась в отношениях с теми, кто работал в других компаниях, и с теми, кто бок о бок строил продукт в непосредственной близости со мной 9 часов в сутки. Отказывала коллегам, сохраняя теплые отношения. Влюблялась до потери интереса к жизни. Воспитывала силу воли и самообладание, не идя на увольнение, когда отношения не сложились. Гордилась, что смогла. Сидела сутками в одной комнате с людьми, связывающими меня в любовную геометрическую фигуру. Участвовала в совещаниях с еще большим числом вовлеченных. По крупицам восстанавливала производительность, абстрагируясь от личных аспектов. Надевала маску отстраненного профессионализма, обсуждая рабочие вопросы. И в целом стала невосприимчива к каким-либо нерабочим перипетиям в компаниях, покидать которые по душевным причинам было бы верхом глупости и карьерного провала.

Но именно первые, студенческие времена, личные взаимоотношения, были самыми мотивирующими и, пожалуй, оказали на мой путь в IT наибольшее влияние. Или, по крайней мере, стали яркими историями для рассказов.

Так, образцом первого, мотивирующего, типа в моем опыте стали отношения с преподавателем. Мне кажется, ни один из предметов я не знала так хорошо, как теорию реляционных баз данных. Яркие и неразгаданные отклонения от нормы манят многих, вдохновленных первыми успехами погружения в мир IT. Личность, непохожая на остальных, будоражит жаждущие завоевания мира юные умы. И неважно, что стоит за этой непохожестью – умение видеть глубже остальных или банальная шизофрения. Желание развития и приближение к раскрытию тайн – сильные мотиваторы. Олицетворяющий их молодой, целеустремленный и нестандартный преподаватель – то, что легко способно заставить лица противоположного пола стремиться проявить себя и всячески привлечь внимание. Это побуждает читать лишние материалы, обдумывать лекции тщательнее прочих, напрягаться в моменте, дабы дать верный ответ на заданный вопрос, и принимать все смежные вызовы и предложения: будь то предоставление дополнительной литературы, совместное написание статей или решение заданий «со звездочкой».

Так и я, почувствовав интерес к молодому аспиранту-преподавателю вышеозначенного курса, сознательно (и не очень) старалась быть лучше. Лекционный материал осмысливался с особенной внимательностью. Лабораторные представлялись в лучшем виде. И вот, под конец семестра поступило последнее задание, которое, как уверял объект моего повышенного внимания, не осваивал ранее никто. За его выполнение обещалось упрощенное прохождение экзамена. Несколько вечеров до глубокой ночи я потратила на его решение. Суть технически заключалась в написании алгоритма генерации всех возможных подмножеств заданного множества функциональных зависимостей. Помню, как я мучительно сидела в потугах изобрести оптимальную часть такой генерации вместо многочисленных переборов. Внезапно мне вспомнились принципы функционального программирования. Нечто похожее было увидено мной в механизме исполнения функций на языке Пролог. Именно воспроизведение ранее понятого принципа функциональной программы натолкнуло на решение. Полученная нетрадиционная реализация сделала свое дело: внимание и признание были получены. А заодно – и автомат по вышеупомянутому предмету.

Обратный интерес ко мне, зарожденный теми усилиями с лабораторной, оказался гораздо глубже. Каково было мое удивление, когда я, зайдя в экзаменационную аудиторию и получив свой автомат, вслед за этим получила предложение помочь принять экзамен у своей же группы! Впервые, всего на втором курсе, я оказалась по ту сторону баррикад, выслушивая ответы и проверяя практические задания студентов. Весьма любопытный опыт, чтобы прочувствовать важные точки поведения для успешной сдачи. Надо сказать, что одногруппники выглядели удивленными не меньше моего. В свою очередь, крайне трудным было удержаться от желания шепотом подсказать ответ или апеллировать к выставлению им более высокой оценки моим напарником-преподавателем.

Так, одному из наших ребят, формально не отличавшихся высокой успеваемостью, принципиальный аспирант ни в какую не хотел ставить что-либо выше двойки. Несдача вызвала бы для моего товарища по группе ряд неприятных бюрократических проблем. Мне удалось убедить экзаменатора поспрашивать еще и в итоге выставить положительную оценку – точно не помню, может даже четверку. Позже обрадованный одногруппник предложил мне пройти стажировку в компании, где он уже активно трудился ruby-программистом. Этой компанией был тот самый «Инвентос» – концентрация лучших разработчиков нашей области. Моя стартовая площадка в карьере фронтендера, бесценный 6-летний опыт разработки в области видео, Smart TV, SPA, общения с крупными известными заказчиками и руководства людьми, позволивший мне претендовать на позиции в топовых IT-компаниях и приведший меня в итоге в Яндекс. Благодаря этому случаю я свернула на путь верстки и JS-разработки: изначально придя как фулл-стек или бэкенд-программист, я осталась верстальщиком в этой покорившей меня компании лишь потому, что им срочно требовался клиентский разработчик.

Кто знает, как сложились бы мои жизнь и карьера, не увлекись я преподавателем, не сделай мучительными усилиями ту сложную лабораторную, не окажись на экзамене и не поспособствуй хорошей оценке своему товарищу. Цепочки событий порой способны приводить нас к недосягаемым ранее высотам – главное стараться, не останавливаться в получении желаемого и не упускать возможностей. Личные отношения – нередко ключ к лифту до этих высот.

Во время общения при приеме экзамена мне также было предложено поучаствовать в написании статьи. Видя в этом возможность продолжения общения с интересным мне человеком, я с радостью согласилась. Материал исследования касался сравнения реляционных и объектно-ориентированных баз данных. Работа над публикацией значительно увеличила мой кругозор в данной области: еще бы, о таком не рассказывали второкурсникам – по крайней мере тогда. Бонусом стало получение в итоге первой реальной опубликованной в научном журнале статьи с моим авторством. Выпуск именно с ней до сих пор хранится на моих полках. Чувства же гордости и уверенности, победы, достижения чего-то нового, испытанные в процессе и на финише, оказались бесценны и послужили очередной ступенью роста – и личностного, и профессионального.

Общение в ходе подготовки материала еще теснее наладило наш контакт с заинтересовавшим меня лектором. Лет через пять мы даже поженились. А потом развелись. Впрочем, это уже «совсем другая история».

Случались и забавные ситуации. И благо, что они кажутся именно такими спустя пройденное время.

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

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

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

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

Сама не зная почему и пребывая в странном ступоре, я продолжала механически поддерживать беседу, отвечая, какая музыка предпочитается мной больше. Даже выслушала пошлый анекдот. Будучи человеком неискушенным в подобных вопросах, очутившись в такой ситуации и вовсе впервые, я настолько растерялась от неожиданности динамики развития событий, что, подыскивая вежливую фразу, дабы распрощаться, я машинально встала под предложение потанцевать вместе. В прострации описав несколько па и окончательно связав в мозгу, что дело гарантированно приобретает совсем дурной оборот и мне не кажется, и все эти запасы вина, шампанского, и свечи – это точно именно то, что я подозреваю, и да, точно не ошибаюсь, – я резко выпалила, что уже поздно и мне пора, и ринулась к выходу.

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

Спустя 10 лет мы столкнулись случайно на дорожке вдоль старого университетского корпуса. Он выглядел еще более обрюзгшим, но был всё еще жив. Отягощенная шестым месяцем беременности, я медленно ковыляла, размышляя о том сорте людей, кто остается жить, и о своем отце – моем стержне – бывшем моложе и год назад внезапно скончавшемся. Пользуясь положением, профессор быстро обогнал меня, бодро прыгая через лужи и усиленно делая вид, что не узнает никого вокруг. Поскольку я никогда не испытывала трудностей в выражении аналогичного, мы благополучно разминулись.

Сейчас это кажется мне невероятно смешным приключением. Действительно, когда бы я еще пожарила колбаски на балконе в подставке из-под цветов. Кстати, ни одна моя статья в профессорском соавторстве так и не вышла.

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

Советы в конце подраздела

–› Есть один тест, который вы пройдете всегда, – тест Тьюринга.

–› Будьте человеком, чувствуйте. Машины еще успеют появиться.

COMPILE

Основы карьеры

Выбор сборщика

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

Будьте готовы и после вуза, после вашего самообразования, смирить гордыню. Продолжать учиться вновь и вновь. Что бы вам ни казалось, поверьте, вы знаете немногим более чем ничего в технической части и совершенно ничего в части процессов и командного взаимодействия, что является «бо́льшей половиной» результата, способного потрясти мир.

Есть несколько типов учителей, и каждый мы рассмотрим в деталях чуть ниже. Знайте, нет правильного выбора, есть тот, что подходит вашим целям. И какой бы вы ни сделали, помните: старайтесь, впитывайте, будьте скромны и целеустремленны, вкалывайте, учитесь.

Вне зависимости от типа вашей первой работы и «сборки навыков» под жизненные реалии, старайтесь подключиться к ней как можно раньше – само собой, не в ущерб образованию. Уже с третьего курса ищите возможность подработки. Если вы чувствуете в себе силы, можете не ждать формального «первого сентября», но помните: важна надежная база. Именно ее формирует программа начальных пары лет, включая основы программирования и алгоритмики. Да и сама адаптация к вузовской жизни, сложные программы высшей математики первых курсов и нагрузки кодирования массовых лабораторных без «набитой руки», как правило, исключают сторонние работы без негативных последствий. На старших курсах – непременно объединяйте теорию с рыночной практикой. В некоторых вузах создаются рабочие места для студентов, многие крупные компании предоставляют стажировки. Узнайте, какие возможности есть вокруг вас.

Так, в моем случае один из преподавателей предложил однажды хорошо зарекомендовавшим себя студентам вакансию инженера-программиста в Научной библиотеке вуза. Я и моя подруга согласились. Это был бесценный опыт, официально пошедший трудовой стаж, бонус при устройстве на более серьезную работу по сравнению с выпускниками без навыков. В библиотеке нам выпала возможность попробовать всего по чуть-чуть. Мы работали системными администраторами, настраивая десятки ПК для сотрудников, решая их проблемы с ОС, оборудованием, сетью и учась понимать непрофильных заказчиков, общаться с ними. Писали запросы в специфической СУБД и решали реальные проблемы с поиском должников книг, обновлением данных и составлением необходимых отчетов по читателям. Выступали в роли веб-программистов и верстальщиков, поддерживая и дорабатывая на PHP сайт библиотеки и поднимая для нее свой блог на WordPress с милым названием «Литературные штучки».

Кстати, последний существует в неизменном виде до сих пор, спустя почти 10 лет! Неслыханное долгожительство в мире современного веба. Хотя, пожалуй, еще удивительнее, что и сам сайт Научной библиотеки всё еще работает и поддерживается с актуальной информацией всё с теми же версткой и дизайном, к созданию которых я подключалась в свои первые дни работы в библиотеке. Лишь аккуратно сменились логотип и название вуза на картинках, нарезанных в Photoshop еще 10 лет назад. Сердце щемит сейчас смотреть на разъехавшийся, с неверной кодировкой, задвоенным футером сайт на университетском домене – всё с теми же боковыми виджетами, что добавлялись мной еще в студенчестве. Многие страницы остались такими же, как и десятилетием ранее – с точностью до последнего символа. И только часть из них, включая новости, заботливо обновляется кем-то, не нарушая ни единого тега разметки, а лишь аккуратно добавляя новый текст. Готова поспорить, всё тем же методом: скачиванием странички по FTP, внимательным копипастом кусочка разметки до разделительной линии hr и бережной заменой текста с последующим закидыванием измененного html/PHP-файлика обратно.

Помимо веба, мы работали с макросами Excel, печатая штрихкоды, и учились не бояться нового: подключали сканеры штрихкодов, проверяя корректность считывания результата. Здесь же пришел важный опыт взаимодействия с начальством и общения с коллективом – разными людьми разных возрастов и не IT-шного образования. Походы к сотрудникам по вопросам поддержки работы БД или проблемам с их оборудованием научили чувствовать себя более раскованно в непривычной обстановке, вдали от своего излюбленного монитора, думать быстрее и решать вопросы «здесь и сейчас». Подобные подработки хороши и тем, что вы можете попасть на них вместе с друзьями или такими же студентами, – а значит, чувствовать себя менее стрессово и обживаться в специально адаптированных для новичков условиях. И, что самое важное, быть занятыми на пол– или даже четверть ставки. При найме же на фултайм-работу после вуза вам, во-первых, будет сложнее получить ее без опыта, во-вторых, гораздо труднее адаптироваться и выглядеть убедительным работником.

Самостоятельно пройдя через такой старт, я нахожу его очень выгодным – попробуйте с третьего курса найти место, ориентированное на студентов, с разноплановыми функциями. Лучше на четверть ставки.

Никогда не выбирайте место первой практики по уровню зарплаты. Умерьте свои амбиции. В библиотеке мы получали всего четверть минимальной оплаты, трудясь порой гораздо больше положенных 25 % ставки. Но мы были увлечены, получали бесценный и разносторонний опыт и реальный стаж – вот что самое важное на данном этапе. Именно это и позволило нам затем получить работу в лучших компаниях и заняться собственным делом. Ищите место с максимально возможным образовательным потенциалом, новыми знаниями, серьезной командой, востребованным опытом.

Хотя многие крупные компании сейчас предоставляют стажировки, их механизм отлажен, и часто на них проще попасть, заполнив красивую формочку, – я рекомендую вам выбирать более мелкие фирмы для первого старта. Если же подходящих небольших организаций нет на горизонте, а масштабная корпорация зовет вас в свои ряды, соглашайтесь тоже. Но концентрируйтесь на решении задач, не на избыточных, свойственных крупным компаниям, процессах. Стремитесь поначалу оказаться там, где короче цикл разработки, где результат быстрее попадает к пользователю, где нет лишних организационных моментов, встреч и где вы максимально сосредоточитесь на реальной профессиональной активности. Ценность работы, эффективное использование времени – столпы выживаемости любой малоизвестной организации. Как раз в небольших фирмах вам скорее не дадут часами просиживать на совещаниях, с вас будут спрашивать качественный результат – саму суть. Именно этому ценнее научиться сразу. Делать нужное, определять приоритеты, беречь время. Иначе компания не сможет существовать, а вместе с ней и вы лишитесь работы и средств к достойной жизни. Решать задачи в моменте, думать, принимать микрорешения очень быстро, привыкать не теряться в стрессовых ситуациях под давлением времени и держать голову холодной, находить лучшие для пользователей варианты, мгновенно фиксить баги и катить их в прод. Вы получите опыт полевого хирурга, который, спасая жизни по большей части своей скоростью, находчивостью и мастерством, выдаст в десятки раз лучший результат без малейших сложностей, подай ему только стерильную операционную с оборудованием по последнему слову прогресса и профессиональную бригаду помощников.

Мелким фирмам также свойственно давать более «технически крупные» тикеты даже новичкам. Помимо широких ролей, вы с большей вероятностью получите задачу разработать сайт компании целиком, либо реализовать личный кабинет, либо прикрутить оплату. В крупных корпорациях дробление, как правило, выше. Задачи характера разработки нового раздела идут либо к опытным техлидам, либо делятся на много спринтов между членами команды, сводя вашу роль к добавлению кнопочки или пары инпутов. Стремитесь к масштабным задачам и полноценному опыту. Наполните себя изнутри, а продажную упаковку всегда добавите позже.

Ищите, где есть сильный техлид, технический директор, за кем вы будете тянуться. Работайте с теми, кто умнее вас самих. Легкое поклонение лидеру, восхищение его скоростью и умом способны заставить вас брать новые высоты. Сделать то, что в зоне комфорта вы бы выполнить не отважились, почувствовать вкус победы от включения своего мозга и обратить его во благо своего профессионализма. Помните известную фразу: «Если вы самый умный в комнате, значит, вы находитесь не в той комнате». Игнорирование ее для новичков губительнее втройне. Найдите себе наставника и спрашивайте у него, что вы можете улучшить в решении, просите ревью кода, разбор и обсуждение вашей реализации. Стремитесь брать задачи, непосильные для вас в одиночку, новые и неизведанные области, познать которые вам способен помочь техлид.

Так, мое первое серьезное место работы – компания «Инвентос» – в том числе оказывало услуги по разработке видеоприложений под Smart TV. Поколение «умных» телевизоров только начало прочно выходить тогда, в далеких 2011–2012 годах, на рынок бытовых гаджетов. Пусть имя компании мало что скажет непосвященному в медиаотрасль, но именно «Инвентос» создал сервис Rutube, успешно проданный спустя какое-то время новым владельцам. Причем ирония судьбы заключалась в том, что разработка велась параллельно со ставшим всемирно известным YouTube и была закончена даже раньше него. Название Rutube сервис получил уже позднее. Изначально это был первый на тот момент и не имеющий известных аналогов сервис видеохостинга. Именно он мог захватить мир, и сейчас мы могли бы ничего не знать о привычном портале с красной кнопочкой play. Однако одно неудачно выбранное техническое решение – необходимость для пользователя устанавливать дополнительный плагин, чтобы просматривать видео, – стало историческим и роковым для продукта. YouTube же вышел с иной реализацией, не требующей такого лишнего действия, и впоследствии покорил все страны. Проигрыш более свежему конкуренту вынудил занять позицию догоняющего и, на мой взгляд, потеряв свою фору, ассоциироваться с неким аналогом и дублером, обретя созвучное имя Rutube.

Хотя я работала там верстальщиком – уже в пост-Rutube’ном периоде, – мне не давала покоя мысль о крутизне разработки под те самые «телики». Пока я нарезала спрайты и высчитывала пиксельные смещения для очередного редизайна портала Videomore.ru или втискивала «надцатый» пункт меню в его нерезиновый футер с морскими обитателями, тогда еще обалденно красивый реалистичностью своей прорисовки, не знавшей о грядущем духе минимализма вкупе с тотальной адаптивностью, ребята за стенкой воевали с, казалось, серьезными девайсами. ТВ-приложения по сути были обычным JS-кодом плюс версткой с горстью особой магии. Но делать такую работу тогда означало расти – не просто верстать, а продумывать и всю бизнес-логику, реализуемую в то время в случае традиционных сайтов силами отдельных программистов-бэкендеров. А значит, все вопросы архитектуры, оптимизации и ряд сервер-сайд-проблем становились актуальными и для клиентского разработчика, требуя от него гораздо больше профессионализма. Осложнялась ситуация и сыростью инфраструктуры. Документация по разработке на сайтах основных ТВ-платформ – LG, Samsung и Philips – на тот момент фактически отсутствовала. Сообщество разработчиков было крайне малочисленно. Вопрос на форумах тех самых сайтов – святых граалях всех причастных – был зачастую единственным способом приоткрыть черный ТВ-ящик и, увы, мог висеть не отвеченным техподдержкой неделями. Казалось, только суровые умудренные опытом фронтендеры могут добиться здесь решений, применимых в продакшене и приемлемых для продажи нашим заказчикам – популярным телеканалам.

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

Задание проверял мой непосредственный руководитель. Он не был сильно заинтересован в подробном фидбеке мне, испытывал основательные перегрузки и давление сроков проекта на этих самых злосчастных теликах, да и был сам относительно начинающим разработчиком, многому еще учившимся у техлида. Детально работу кандидата анализировал именно последний. На тот момент общения с главным оценивающим лицом мое рабочее флоу не предполагало. Однако, подавив всё свое смущение, неловкость и страх, я, зная, что мой непосредственный наставник передал код на ревью вышеупомянутому опытному техлиду, решила поговорить с ним напрямую. В тот же день я купила в магазине плитку шоколада Ritter Sport и предложила техлиду бартер: быстрые углеводы в обмен на критику моего задания по ТВ. Такое предложение его позабавило – и, несмотря на высокую загрузку, согласие обсудить мой код, как только будет время, было закреплено.

Фидбек на начальных этапах особенно важен. Стремитесь максимально получить оценку и комментарии по вашей работе. Это позволит сразу сформировать верные привычки и не переучиваться после, опрометчиво привыкнув писать код с не самым лучшим запахом.

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

Если поняли, что не ваше, – бегите. Иначе вас затянет, вы станете таким же. Превратитесь в людей, на которых не хотели быть похожими. Проводя 9+ часов вместе, невозможно не слиться с окружением. Вы незаметно для себя перенимаете привычки, образ мышления, местные фирменные фразочки и шаблоны поведения. Шутки, коробившие вас в первые дни, внезапно начинают произноситься вами же спустя несколько месяцев. Не хотите стать таким? Бегите, ищите своих, ловите свою страсть.

Будьте честны с собой. Если вы чувствуете, что не получаете желаемых знаний, проваливаетесь в бюрократию – время сменить учителя, время выбрать другой сборщик. В противном случае вы неизбежно утратите драйв, снизите качество. Отрасль уже, чем кажется. У рекрутеров серьезных и, возможно, желанных вами в будущем, компаний есть черные списки. Если вы, потеряв веру, сотворите сильный факап или прослывете в IT-среде безынициативным работником с дурной репутацией в давно ставшей безынтересной вам фирме, возможно, вы никогда не получите шанс попасть в компанию вашей мечты.

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

Раскрученные продукты, стильные страны для переезда – как ярко горящий фитиль – заметно, привлекательно, но… надолго ли? Посмотрите вторые, третьи места. Попробуйте проанализировать наперед, что выстрелит. Не США и Европа, но Индия и Азия, Австралия и Новая Зеландия – страны, которые заявят о себе в будущем. Они потенциальные точки роста IT-индустрии вслед за растущей экономикой и тенденциями релокаций лучших разработчиков в «райские» по климату места. Не крупные банки и корпорации на пике, но обещающие проекты по биоинженерии и роботизации. С ними скорее случатся ваши раскрывшиеся возможности успевшего раньше толпы, здоровая жизнь и разработка, не испорченная излишним пафосом.

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

Тщательно тестируйте свое решение. Сразу приучайте себя отдавать тестировщику код, который готовы смело покатить в продакшен и без него. Закончив работу, не выдыхайте довольно на последнем мазке, забрасывая кисть в дальний угол, – сделайте шаг назад и еще раз окиньте взглядом целую картину. Прокрутите в голове сценарии использования полученного решения в целом, переключитесь с роли программиста в амплуа пользователя. Оцените, удобно ли им, расширяемо ли для вас, надежно ли написанное. Для программиста дьявол кроется не только в деталях, но и в граничных случаях. Пустые списки, неавторизованные пользователи, контенты длиной в 1 символ и в 100500 – банальные примеры, от перечисления полного списка которых я настоятельно воздерживаюсь. Тренируйте свое чутье, учитесь видеть опасности для вашей конкретной задачи. Такой лишний взгляд позволит не «костылять» следствия, а пересмотреть архитектуру решения, пока не поздно.

Узнайте, какие бесплатные конференции, митапы проводятся в вашем городе. Следите за расписанием и посещайте их. Пусть не всё будет понятно вам из тем докладов, но это позволит вам увидеть пробелы, выделить предметы для самоизучения и наметить пути развития. С другой стороны, вы расширите свой кругозор о других компаниях – местах работы спикеров. Узнаете о факте существования данных фирм, сфере деятельности. Докладчик – такой же сотрудник; внимательно присмотритесь, увлечен ли он, какова манера общения и приятен ли вам его типаж, сопоставим ли возраст, интересны ли его работа и тема. Так вы сможете понять, стоит ли вам обивать пороги той компании – или же смело отвечать «нет» рекрутеру, агитирующему за присоединение к ее коллективу. Чем меньше фирма, тем достовернее окажутся ваши наблюдения. Для крупных же корпораций обратите внимание на продукт или подразделение спикера – в разных частях компании могут действовать сильно отличающиеся принципы, ценности и рабочие процессы. В этом случае полагайтесь на свои выводы, только в рассмотрении той же команды или продукта.

Советы в конце подраздела

–› Истина только одна. Не прогибайтесь под другое.

–› Отсейте мишуру.

–› Грамотно раскладывайте свой костер.

–› Работайте вначале не ради денег, а ради опыта.

Примеры бинарников

Какие же наиболее популярные и полезные варианты есть у вас для «сборки» и какой «бинарник», то есть результат, вы получите в итоге? Любая классификация недостаточно полна, но, согласитесь, попытка порядка всегда лучше хаоса. Разумеется, если вы не планируете завести новую вселенную.

Благотворительность

Университетская программа неплохо учила нас программированию. Понятие же «верстка» существовало только в бизнес-кругах и было неведомо студентам, далеким от подработки. Нас честно обучили тегам и оформлению таблиц, шрифтов и цветов на web-странице еще на первом курсе и деликатно избегали такой простой и банальной темы вплоть до вручения дипломов. Однако, придя на подработку в библиотеку и пообщавшись с сотрудницей на два года старше и уже коснувшейся реальных требований рынка, я остро осознала, что не знаю по этой части фактически ничего. Уходя и передавая рабочие обязанности мне, она параллельно старалась успеть доделать легкий редизайн библиотечного сайта. Сама нарезала изображения в Photoshop, компоновала шапку и основные элементы меню. Тогда же я узнала, что, оказывается, в «серьезных» компаниях существует отдельная должность «веб-дизайнеры», о чем нам также не рассказывали в университетских стенах. Что именно они готовят макеты страниц сайта в формате. psd, а разработчик – верстальщик – уже в точности претворяет их в жизнь. А не так вот, как делаем мы, на свой глаз и вкус причесывая вид сайта научной библиотеки. Стараясь вникнуть и подхватить начатый процесс редизайна, я с прискорбием вынуждена была признать, что тегов и базовых свойств первого курса явно недостает, чтобы добиваться желаемого эффекта хоть в сколько-нибудь диктуемых дизайном условиях. Как убрать странную однопиксельную полоску, мешающую картинкам состыковаться? Почему на мониторе начальницы вся аккуратная шапка бессовестно разъезжается? Как вместить пункт с длинным названием в нерезиновое меню? Тем не менее, подсматривая за решениями моей предшественницы и активно поглощая мудрости с просторов сети, мне удавалось одолевать все проблемы, а таинство деятельности, недоступной остальным «просто студентам», делало вкус микропобед слаще вдвойне.

Потому, когда мне предложили сделать с нуля сайт областного монастыря, я с радостью согласилась. Несмотря на высокую загруженность лабораторными, курсовыми и процессом обучения, да еще и появившейся подработкой в библиотеке, я ночами сидела над всего одной страницей, содержавшей фото монастырского здания, приветственный текст и пару контактов учреждения. Весь контент был обернут в витиеватую рамку, напоминавшую древнерусские узоры с вычурными узлами. Первая же задача – как сделать такое обрамление в далеком 2010-м, когда никаких flex-box, background-size и Grid не существовало и в помине, а о множественных background для сайта в IE6 приходилось только мечтать, – привела меня к открытию, что для этого нужно сделать аж 4 вложенных блока. В каждом из них задавалось одно фоновое изображение, позиционированное в нужном углу. Соответственно, для каждой стороны самой рамки, помимо углов, также требовался отдельный div только ради задания фона. Нарезка изображений в Photoshop заняла не меньше времени. Каким из инструментов воспользоваться? В каком формате сохранить полученный кусочек? Десятки вопросов по каждому шагу.

Платы за проделанную работу не предполагалось. То была деятельность на благотворительных началах. Однако то, что я смогла завершить ее, стало поворотной точкой в моем профессиональном самоопределении и сыграло огромную роль в дальнейшей карьере.

Итак, что ждет вас, попробуй вы подобную благотворительную деятельность как стартовый тренировочный полигон?

Входные данные

Работа без оплаты, зачастую по знакомству, предметная область и круг общения могут быть значительно удалены от IT.

Где?

Дома, в метро, на улице, в свое свободное, часто ночное, время.

Сроки

Как правило, довольно лояльные. Что важно для новичка и максимально безболезненно для учебы/подработки.

Ответственность

Минимизирована за счет благотворительного характера. Наименее стрессова. Максимум – вам будет неудобно перед знакомым. Однако, не получая ничего взамен, вы выглядите наименее проигрышно в случае неуспеха и максимально достойно и удобно для заказчика в случае приемлемого результата.

Источники знаний

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

Уровень обратной связи

На пользовательском уровне, неквалифицированный фидбек. Ревью кода отсутствует, технические комментарии, советы от более опытных разработчиков тоже. Вы получаете комментарии характера «нравится/не нравится», сдвинуть левее, заменить шрифт от заказчика, далекого от сферы IT. С одной стороны, технически вы не узнаете ничего нового, с другой – получите опыт общения с непрофильной аудиторией. Что позволит вам учесть точки расширяемости вашего решения (потребовалось переделать полсайта из-за одного пункта меню? Значит, ваша архитектура никуда не годится), принять изменяемость мира (вы полдня делали эту ссылку, а вас попросили заменить ее на телефон) и выработать терпимость.

На выходе

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

Стремитесь делать проекты «на благотворительность» на наиболее ранних этапах своего пути. Сайт для заказов шитья маме, веб-открытка другу, сверстанное поздравление второй половинке с красивой анимацией – самый простой старт. Есть огромная разница между «думать, что знаешь, как сделать» и «сделать».

Опенсорс

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

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

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

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

Выбирайте некрупные проекты для результата. Зачастую в популярных фреймворках и библиотеках с сотнями звезд немалая очередь пул-реквестов. Вам придется отсмотреть, не предложил ли уже кто-то ту же правку. Либо не было ли это обсуждено в вопросах и признано ненужным. Помимо этого, инфраструктура крупных продуктов нередко весьма бюрократична для новичка. Требуется прочитать многостраничные инструкции, призванные стандартизировать оформление PR, гайды по кодстайлу с расстановкой табов или пробелов и принципам названия переменных. Серьезные проекты почти всегда содержат линтеры, инструменты сборки, а значит, вам придется изучить, установить еще и их. А также предполагают прогон или даже написание вами тестов – извольте освоить еще и этот стек, выбранный на вкус авторов. В итоге вы потратите 90 % времени на смежные задачи, чтобы только внести мелкую правку. Конечно, все эти знания: линтеров, инструментов тестирования – принесут вам пользу и вырастят вас профессионально. Однако, не зная рынка, вы можете потратить время на знакомство с редкими или нигде более не применимыми сборщиками, пакетами и решениями. Что, в свою очередь, может снизить ваш интерес и энтузиазм, потребуйся вам изучить действительно стоящий и более общеприменимый аналогичный инструмент.

Выбирайте массово используемые проекты для ревью. Логично, что аппруверы проектов, используемых миллионами, например React-а или jQuery, – представители IT, в профессионализме которых сомневаться не стоит. По крайне мере, они точно знают больше вашего. Пусть вам трудно будет предложить что-то стоящее поначалу и велика вероятность, что ваши усилия не войдут в продукт, однако здесь как нигде вы можете получить высококвалифицированный фидбек. Замечания, которым можно доверять, с учетом гибкости, надежности, жизнеспособности и расширяемости вашего решения. То, что всегда держат в голове профессионалы-разработчики крупных проектов. Как изменить архитектуру, какой граничный случай учесть или даже как понятнее для других назвать функцию – такие замечания от настоящих знатоков несут наибольшую ценность и формируют ваши правильные привычки и мастерство.

Проверьте живость проекта. Посмотрите дату последнего коммита, последнего вопроса и пул-реквеста. Если в этом репозитории больше полугода отсутствует активность, или же больше пары недель нет ответа на свежий вопрос либо реакции на PR, очевидно, что на месте следующего игнорируемого несчастливчика с большой долей вероятности окажетесь именно вы – с напрасно проделанной и никому не нужной работой.

Имея неосторожность уже написать код в продукт подобной стадии и наблюдая затяжную тишину в ответ, или же будучи убежденным в важности планируемых доработок на малоактивном проекте, не забудьте попытаться призвать аппруверов, выйти с ними на связь. Возможно, вам все же удастся получить заветное одобрение или хотя бы ценный фидбек.

Оцените полезность потенциально приобретаемых вами навыков. Сопутствующие инструменты должны быть нужны вам для изучения с целью последующего трудоустройства либо знакомства с общеприменимыми, свежими и перспективными технологиями.

Прислушайтесь к внутренним желаниям. Труд делает из обезьяны человека, а чужой кодстайл делает из программиста его последователя. Если вам не близки требования по оформлению кода проекта в ключевых вещах, вам не кажется разумной его архитектура, либо вы видите повсюду переменные a, b и item2 – подыщите себе другой репозиторий для контрибуции. Не привыкайте к плохому. Впитывать чужие практики и привычки на начальном этапе опасно для формирования верного вкуса, если вы не можете гарантировать мастерство их автора. Часто требования кодстайла – пережиток старых и далеко не самых лучших решений проекта, от которых сложно избавиться, или же специфика предпочтений его автора, а вовсе не образец для подражания. Новичку трудно отделить одно от другого и не забить себе голову сомнительными практиками.

Безусловно, участие в опенсорсе лучше, чем ничего. Проще всего отрицать полезность, прикрываясь аргументами, – сложнее заставить себя выйти из зоны комфорта и сделать хоть что-то. Однако не ставьте слишком многое на возможность внести свои правки в серьезный проект. Используйте как вишенку на торте, дабы придать новые нотки вашей профессиональной дисциплине, ответственности и мастерству. Но не берите опенсорс в качестве цемента, замешиваемого в основу вашего первичного становления как джуниор-разработчика.

Входные данные

Работа без оплаты, накладные расходы времени на анализ подходящего проекта и нахождение работы самому себе, предметная область и круг общения максимально приближены к IT, но далеки от конечных пользователей.

Где?

Дома, в метро, на улице, в свое свободное время.

Сроки

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

Ответственность

Выше, нежели в случае благотворительности, – оценка профессионального сообщества и влияние на вашу git-историю оказывают дополнительное психологическое давление.

Источники знаний

Одни из наиболее ценных: фидбеки действующих специалистов, уровень которых вы можете оценить, исходя из курируемого ими проекта. Потенциально – всё мировое сообщество, что сглаживает субъективизм конкретного места работы и малого коллектива и знакомит вас с общемировыми тенденциями.

Уровень обратной связи

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

На выходе

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

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

Фриланс

Когда тебя просит помочь с сайтом своему другу преподаватель по физкультуре, отношения с которой носят весьма прохладный характер, – сложно отказать. Даже если это пятый курс и незачет тебе не грозит, уважение к заведующим кафедры – слабость, свойственная многим отличникам. Тем более в ситуации, когда твой первый сайт для церкви уже сверстан, толстый томик PHP 5.0, не предполагаемого вузовской программой, прочитан и пара лабораторных, написанных на нем в порыве собственного энтузиазма, сдана. Осознание необходимости развития требует дальнейшего применения – и вот, как нельзя кстати, по университетским каналам работы в библиотеке поступает столь соблазнительное предложение. Страх оказывается побежден перспективой роста, опыта общения с людьми, первой работой за деньги. Хотя тебе комфортнее отказать, упоение от перехода на новую ступень, от победы над собой, заставляет принимать подобные предложения. Откидывайте всю робость, если вы знаете, что процесс и результат сделают вас сильнее. Испытывая желание сбежать, спрятаться в укромном уголке, но понимая умом, что правильное решение – этого не делать, – всегда боритесь за победу сознательного. Преодолевайте себя. Это те самые мелкие ключевые развилки, ведущие вас к личностному росту, успешной карьере и победному жизненному пути. Незаметно, но верно, оставляя позади всех тех, кто поленился один раз, расслабился другой, побоялся третий.

Сейчас кажется авантюрой согласиться делать то, что ты никогда не делал, и еще ожидать за это оплаты. Сделать сайт с нуля: собрать требования – быть менеджером и «продакт-овнером» с очень далеким от IT заказчиком, разработать логотип и дизайн, будучи весьма поверхностно знакомым с «Фотошопом» и наукой дизайна, сверстать, запрограммировать и «продать» свой результат клиенту так, чтобы бесконечные изменения и последующая поддержка не поглотили всё твое свободное время. А между делом купить домен, разобраться с хостингами и научиться составлять сметы за свой труд.

Однако студентам привычно каждый день выполнять ранее неизвестное, каждая дисциплина – не изведана в начале и всегда успешно познана в конце. У них отсутствует страх «я не справлюсь», университет вырабатывает полезный условный рефлекс: новое и сложное – > обучение – > известное и легкое. Вот почему так важно браться за черные ящики, неведомые вам именно в этом периоде. Став взрослым, вы неизбежно превращаетесь в более осторожного, планирующего стратега, опасающегося сумасбродных проектов. Не знай вы машинного обучения, скорее всего, имея семью, детей, устав на работе, вы не возьметесь делать в свободное время проект по открытию двери распознанным нейронной сетью лицом. Но студент – согласится. Он может не отдавать себе отчет, насколько это сложная дисциплина – смесь математики, аналитики больших данных, программирования, – и потому легче справится с ней, чем вы, имеющий 10-летний опыт и представление о глубине и широте данного направления. Пользуйтесь своей наивностью, говорите «да» новым перспективным проектам.

Порученный мне сайт должен был представлять ассортимент магазина мототехники и факт его существования. Первая встреча с заказчиком была назначена лично, и я отправилась на другой конец города в павильон, наполненный скутерами, мопедами и запчастями. Как IT-шник, не привыкший к полевому общению, я чувствовала себя крайне некомфортно, пытаясь в окружении двигателей и запаха масла выудить требования владельца к будущим web-страницам. Работу, которую в приличных компаниях выполняют менеджеры или продакт-овнеры, сидя в уютном офисе и, как правило, удаленно общаясь с заказчиком. Именно во фрилансе вам больше, чем в других формах IT-занятости, потребуются умение общаться и повышенное человеколюбие. Находить подход к заказчику, чувствовать его видение и, при необходимости, склонять к нужному варианту для лучшего технического решения и его же продуктового блага. Оценка вашей работы подсознательно будет складываться не столько из способности писать код, сколько из навыка коммуникаций с людьми – будьте к этому готовы. Не обольщайтесь закрыться в комнате и фрилансить на весь мир, собирая доллары, – без естественной легкости общения, готовности ведения переговоров и, немножко, политики вам будет сложно получить и удовольствие, и высокий результат.

Моим первым открытием стало осознание трудности коммуникаций с человеком, столь отдаленным от IT. Традиционные термины: шапка, футер, базовые принципы оформления – были неведомы ему. Некомфортные ощущения и сюрреализм происходящего дополнило предложение подвезти меня домой. Поворот на нетрадиционную для предполагаемого пути дорогу наполнил голову страшными мыслями о недобрых намерениях. К моему большему ужасу, я уже была совершеннолетней. Уровень стресса, испытанный тогда, был слишком велик для одного вечера. Однако, благополучно доставленная домой, я согласилась на предложение и приступила к работе.

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

Написанный на CakePHP и сложно сверстанный по тем временам сайт – на его оригинальный дизайн стыдно смотреть теперь: неадаптивный, с размытыми фонами, старомодный, с ховерами из нарезанных изображений и заголовками-картинками – в итоге увидел свет.

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

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

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

Забирая суммы оплаты, я лично познакомилась с его сыновьями. Была торжественно приглашена на открытие нового салона и участвовала в разбивании бутылки шампанского – нет, увы, не о борт мотоцикла, – а о забор позади этого самого двухколесного друга. В процессе подобного взаимодействия ты становишься будто близким знакомым, что в разы повышает сложность произнесения слова «нет». Однако со временем мне удалось это сделать и вложить судьбу проекта в абстрактные неизвестные мне руки. Чему я была рада не меньше, чем факту получения этого первого крупного, «настоящего» и оплачиваемого заказа в моей карьере.

Сейчас, спустя почти 10 лет, фирма до сих пор использует наш логотип, в том числе и на офлайн-вывесках. Сайт все так же крутится на размещенном мной хостинге и активно используется, несмотря на неоднократные разговоры по разработке нового приличного варианта кем-то еще и планы съехать с моих аккаунтов.

Так или иначе, полученный опыт убедил меня держаться от подобных заказов за версту. Каждый сделанный мини-проект порождает месяцы или годы дерганий вас по мелким вопросам. Зачастую последующая помощь оказывается вами по инерции, по совести. Съедает ваше личное время и разрушает атмосферу профессионализма. Берясь за задачу, явно обговорите с клиентом наличие поддержки и ее продолжительность. Так вы сможете поставить четкую точку в вашей текущей задаче, сохранить отношения «без осадка» для будущих взаимодействий. Если вы не обязаны, а правки мало добавляют вашим знаниям и финансовым целям – вовремя откажитесь. Занимайтесь серьезными вещами, тратьте свои ресурсы на изучение новых технологий. Или, в конце концов, на чай с умными коллегами.

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

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

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

Подобные порталы гораздо удобнее, если у вас есть узкоспециализированные знания при хотя бы небольшом профессиональном опыте работы с ними: редкий фреймворк или CMS, малораспространенный язык программирования. Именно этим преимуществом пользовался один мой коллега. Факт применения в нашей компании Ruby On Rails создавал приятный козырь в рукаве. Найдя однажды весьма заманчивый заказ на продолжение разработки портала, брошенного предыдущим исполнителем, он предложил мне помочь с версткой. Как вы помните, самые яркие впечатления в нашей жизни связаны с людьми. Они же способны привносить опыт, на который не решились бы мы сами. То первое взаимодействие с миром фриланса стало самой легкой и высокооплачиваемой работой за всю мою жизнь. Явно ощущался распил бюджета инвесторов, задания получались от такого же наемного менеджера, как и мы, заинтересованного в эффективной растрате имеющихся средств. Проект стабильно снабжал меня 10–20 тыс., по тем временам весьма немалых, рублей за несколько вечеров небольших правок. Старомодность дизайна, хаос кода, тысячи строк копипаста и не первый год разработки портала делали его мертворожденным дитя. Впрочем, весьма прибыльным для нас. Нарвись вы на такой код, он бы не научил вас ничему хорошему. Такая деятельность полезна только в финансовом плане: источник легких дополнительных денег для опытного узкого специалиста с небольшим стажем. Плохим качеством страдает на фрилансе подавляющая часть кода, правки в который вам потребуется вносить. Вот почему я предостерегаю вас от использования данной площадки в качестве инструмента повышения профессионализма. Получить небольшой опыт общения, научиться вникать в незнакомый контекст задачи, попробовать в бою применить свои теоретические знания, если вы новичок, – да; подзаработать, если вы программист с небольшим стажем, – да. Но ни один техлид серьезной компании не станет марать руки о подобную деятельность. Площадка самоучек и джуниоров – не место для профессионалов в долгосрочной перспективе.

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

Один – не значит все. Но мой второй опыт, любезно подкинутый тем же коллегой, окончательно убедил меня в заключении: фриланс – это про деньги, продажу себя, подчас нечестными способами, и никак не про качество. Как на ресурсы, запрещаемые к посещению детям до 18, пожалуй, на фрилансовые площадки стоит ввести вето в части длительного пребывания на них джуниор-разработчиков.

На сей раз заказ касался помощи с дальнейшей разработкой немецкого сайта модельного агентства на Wordpress. С данной CMS я была плотно знакома со времен работы в библиотеке и еще глубже столкнулась с ней же в процессе совершенствования корпоративного сайта «Инвентоса». К тому же, работа досталась мне по блату – конкуренция на заказы ввиду популярности и простоты Wordpress была огромной. Видя в этом легкую прогулку, я с радостью согласилась.

Впрочем, моему желанию сделать на этот раз всё по высшему профессиональному разряду быстро пришел конец. Суммы на сей раз были не столь большие, а число мелких правок, что самое ужасное, никак не ложившихся в концепты и предназначение имевшейся CMS-ной темы, – зашкаливало. Поскольку немалая и наиболее простая часть по настройке уже была проделана самим заказчиком, оставшиеся проблемы требовали местами более глубокого вмешательства в код либо настройки дополнительных плагинов, пунктов меню или контента. С последним дела обстояли особенно интересно, ибо он, равно как и интерфейс админки, был на немецком, который я знала на уровне «eins zwei drei»[3], «Mein Name ist Lena»[4] и «Ich bin verheiratet»[5]. Автоперевод страницы на русский иногда давал неожиданные трактовки, посему в целях надежности приходилось переключаться на английский и матчить соответствующие пункты и операции на основе их географического расположения на странице. Что же касается вмешательства в код и правок CSS-файлов, тут дело обстояло гораздо проще для меня и намного волшебнее для моего спонсора из Германии. Да и в целом характер работ был весьма джуниорский и производился левой пяткой развлечения ради. Заказчик же был весьма доволен и в итоге даже предлагал переехать к нему в офис во Франкфурт-на-Майне для постоянной работы над веб-частью его модельного агентства. «Вот если бы моделью…» – подумала я – и отказалась. Даже самая красивая фотка, тщательно отобранная и переданная мной по его просьбе для размещения на сайте в разделе сотрудников/разработчиков данной конторы, не заставила его предложить мне иную вакансию на оффер. Нет так нет, у всех свой путь – и, получив опыт межнационального общения, приятные воспоминания и лишнюю сумму на счете, я продолжила шествие по тропе IT.

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

Если же вы пока не способны на большее – учитесь и растите, либо уходите. Отсутствие интереса и желания – также повод задуматься о втором. Без искры у вас не хватит сил успешно пробиваться в этом изменяющемся мире: отбрасывать старое, вновь и вновь постигая актуальную информацию.

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

Входные данные

Работа с оплатой в рамках специальных порталов или заказов от знакомых, размер от минимального до переоцененного – в случае зарубежных предложений особенно, накладные расходы времени на поиск работы, предметная область любая, заказчики могут быть значительно удалены от IT.

Где?

Дома, в метро, на улице, в свое свободное и ночное время.

Сроки

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

Ответственность

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

Источники знаний

Google, самообучение, унаследованный код, фидбеки заказчика.

Уровень обратной связи

Непрофессиональные фидбеки заказчика, активная продуктовая обратная связь, замечания по юзабилити, гибкости, комментарии в портфолио.

На выходе

Опыт бизнес-разработки, работы на заказ, общения с клиентом, продажи себя.

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

Мелкие компании

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

Что это за компании? Небольшие студии сайтов, аутсорсинга, компании-авторы своего продукта, хоть немного закрепившегося на рынке. Все же в стартапах немного иная атмосфера, не всегда лучшая для новичка, – с численностью причастных к разработке порядка тридцати и менее человек.

Здесь быстрее внедрение новых технологий. Актуальнее инструменты, ближе к востребованности на рынке. Реже встречается большой объем легаси-кода, проще договориться о его переделке или хотя бы написании новых частей на современном стеке. Вы свободнее в проявлении инициативы по применению свежих подходов. Конечно же, при адекватном техлиде. Но ведь вы же постараетесь прощупать нужную вам почву еще при найме, верно?

В то же время рабочие взаимоотношения теснее, чем во многих обезличенных удаленных командах крупных корпораций. Вы острее чувствуете характер каждого, психологию. Учитесь общаться, учитывая личностные особенности и развивая свою чуткость. Такое же персонализированное отношение испытываете и вы. Вас внимательнее ревьюят, глубже понимают и помнят бэкграунд, образование и контекст появления. Потому что каждый новый стажер здесь большее событие, нежели в ряде гигантов IT-сферы. Там студенты и новички могут сменяться у одного куратора десятками за год. Притом, что вакансии – а значит, и возможности остаться на месте стажировки – могут изначально попросту отсутствовать. Вы можете быть обречены еще с порога покинуть известные стены и напрасно, ну или почти, отдавать душу, вникая в местные нюансы, не имея шанса остаться и не зная об этом. Обучение вас в мелкой и средней фирме – не просто формальность для получения дополнительных бонусов, а реальная потребность в хорошем рабочем кадре.

Помимо технологического стека в таких компаниях гибче процесс разработки. Суровые реалии выживаемости в бизнесе не позволяют играть мелким фирмам в пустые формальности. Несколько лет работы в «Инвентосе» я участвовала в ряде встреч: ежедневные пятиминутки, встречи по итогам релиза с разбором проблем, обсуждения новых крупных фич. Признаться, иногда мне они казались избыточными, отрывали от работы и вызывали раздражение. Целых 15 минут идти озвучить, что я сделала, – как неэффективно. Да я за это время лишний баг бы пофиксить могла! Однако всё то время я понятия не имела, что вышеупомянутые встречи – это адаптированная под наши нужды теория Scrum-методологии. Безусловно, знала, что у нас Agile, но не слышала о таких столпах, как Ретро, Демо и Рефайнмент. И только оказавшись в Яндексе, благодаря проводимым там тренингам, я постигла все принципы и артефакты теории данной методологии. Целых два дня мы слушали лекции, проводили тематические игры, рисовали плакаты, обсуждали детали Scrum-подхода. Непривычное мне расточительство времени, жалевшей 15 минут на, как я осознала позже, одну из самых полезных встреч. И если здесь, в крупной компании, ресурсы позволяют внедрять многие вещи «как есть», соблюдая все виды артефактов, имея шансы внутри каждой команды далеких от управления разработчиков зародить порядок из хаоса, то мелкие фирмы просто не могут позволить себе таких трат и вынуждены продумывать любое мелкое изменение руководящими умами. Мы не проводили рефайнментов, потому что гораздо эффективнее было не отрывать от работы всю команду. Скажем, присутствие 6 сотрудников на совещании суммарно равно убытку почти одного рабочего дня в человеко-часах. Вместо этого разработчик и менеджер садились рядом и разгребали нужное по приоритетам. Никто официально не нарекался скрам-мастером. Его функции совмещали в себе менеджеры и руководство компании. Мы не вводили и не калибровали сетку сторипойнтов – все оценки давались в реальных часах работы. Никакого покера – оценки под твою личную ответственность. Ошибся – работай вечерами, в выходные и изволь объяснить, почему задача заняла больше запланированного. Ответственность, прививаемая пусть таким, казалось бы, жестким в современном IT-мире способом, позволяла компании выживать – каждый заявленный час мог быть оплачен заказчиком и объяснен ему. Без лишних затрат времени на конвертацию в сторипойнты и чувств коллективной безответственности и расслабленности, порождаемых покером. Не говоря уже о лишних 4–5 человеко-часах (половина рабочего дня компании!), затрачиваемых на данную активность. Демо – сложно даже представить себе, чтобы разработчиков небольшой фирмы сажали за столь низкоквалифицированную для их оплаты работу, как составление презентаций, и заставляли их выступать перед заказчиком, в красивых картинках показывая, что полезного было сделано каждые две недели. Нужные фичи будут увидены – ведь они заказывались клиентом, а часы разработчика слишком дороги и ценны для активностей, непосредственно завязанных на получении прибыли: разработки новых фич или правки багов. Стендапы и ретро присутствовали в своей адаптации и под другими названиями – короче, по делу, без лишних формальностей и соблюдения артефактов.

Безусловно, среда больших компаний, поощряющая «книжное» воспроизведение методологий со всеми ритуалами и колоссальными затратами времени, позволяет придумать что-то новое и стоящее. У обычного разработчика может родиться гениальная идея, распространяемая на всю компанию или даже привносимая в практику мирового скрама. Но мелкие фирмы не могут позволить выделить время на подобные организационные моменты. Вам же, как новичку, также ценнее заниматься техническими задачами, а не проводить полдня на встречах. Это расслабляет, сбивает ритм, нарушает глубокое погружение и способность отрешенной концентрации, делает шокирующим приход в более мелкую компанию, где каждая потраченная минута подотчетна и за каждый рабочий час с вас будет спрошено сполна. Решив, что часовые обсуждения значений сторипойнтов и составление презентаций для демо – это норма, вы с немалым трудом адаптируетесь к более суровым условиям: напрягать мозг, решать сложные технические неурядицы, оперативно собираться с мыслями и фиксить баг в проде, когда счет идет на минуты и репутация, а вместе с тем и доходы, стабильность и будущее фирмы непростительно страдают.

В небольших коллективах крепче человеческие отношения. Ярче, острее вкус достижений, признания. Несмотря на поразительные успехи «Нейролинк», вы всё еще не роботизированный биообразец, вы человек, запрограммированный самой природой ощущать эйфорию от одобрения других людей, причастности к «тайне», к группе единомышленников. Последние проецируются в конечном итоге на любовь к своей работе, всей сфере IT – пусть и совершенно вами неосознанно. Вот что так важно на первых порах, дабы закрепить позитивную цепь: работа —> отдача —> признание —> удовольствие. Гораздо проще сделать это в малых компаниях. Где вероятность похвалы самого директора выше – ведь он знает вас лично и весьма неплохо, по сравнению с огромными корпорациями с тысячами незнакомцев. Где цена каждого сделанного элемента с вашим участием больше, а празднования пиццей по случаю успеха – душевнее.

Пусть условия в небольших компаниях аскетичнее. Такая среда не развращает и не балует, концентрируя на работе. Пусть нет фруктов, пространств с живыми цветами, дизайнерских интерьеров и удобных диванчиков. Но есть истинная увлеченность, желание выбраться в светлое будущее, стать лучшей версией себя, а не праздно валяться на комфортной софе в окружении орхидей. Пусть это будет в вашей жизни позже.

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

Сейчас компания располагается в собственной построенной пятиэтажной башне, включая свой ресторан, теннисный стол и прочие бонусы, присущие достойным офисам мира.

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

Входные данные

Официальная оплачиваемая работа, реальный старт карьеры, профессиональная среда.

Где?

Предпочтительно в офисе, или удаленно (нежелательно для новичков).

Сроки

Довольно сжатые. Определяются методологией компании. Обычно порядка 1–3 недель для новых фич, «здесь и сейчас» для правки срочных багов.

Ответственность

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

Источники знаний

Одни из наиболее ценных: фидбеки глубоко погруженных в продукт специалистов. Самообучение. Тесное специализированное наставничество. Есть риск субъективизма.

Уровень обратной связи

Профессиональный квалифицированный фидбек. Ревью кода. Есть риск привития необщепопулярных практик. Продуктовый и юзабилити-фидбек от смежных участников команды (менеджеров, дизайнеров, руководства), глубоко погруженных в предметную область и детали проекта, оценка софт-скилс и личностных характеристик.

На выходе

Профессиональный официальный опыт работы. Старт карьеры. Практика прохождения собеседований. Развитие умения общаться в команде. Привыкание к разрешению стрессовых ситуаций. Опыт концентрации в моменте и в «чужих стенах», результатов на скорость и качество. Понимание специальности и рынка вакансий изнутри.

Стажировки в корпорациях

Кто из только начинающих свой путь в IT не мечтал бы оказаться на работе во всемирно известной компании, скажем, в том же Google? Да и, уверена, почти каждый более опытный разработчик примерял подобную возможность на себя.

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

Сложность попадания в группу стажирующихся счастливчиков здесь, как правило, ограничена вашим уровнем, сообразительностью и подготовкой. Разузнав, натренировав вступительные задания при должных умственных способностях, вы без труда окажетесь в заветных стенах. Погуглить, спросить у знакомых, поискать на ресурсах вроде Хабра и в соцсетях – не сложно. Можно найти списки популярных вопросов по вашему языку и посты про опыт прохождения в ту же или аналогичные компании с примерами заданий и обсуждением решений сообществом. Узнать актуальную информацию у рекрутеров. Набор этапов, их тип – вопросы по теории, секции с кодом, – и иногда даже набор тем, как правило, не составляют тайны. В любом случае под среднестатистический современный формат сделайте три вещи: повторите теорию, порешайте задачки с написанием кода онлайн на специальных ресурсах и подготовьте свои вопросы.

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

Однако хочется предостеречь всех, кто считает попадание на подобную стажировку исключительно благом. Стажировки в крупных корпорациях подходят не всем. Специфичные условия могут нанести не сформировавшейся профессионально личности больший урон, нежели пользу. Конечно, ваши родители будут гордиться, друзья – завидовать, вы – тешить свое самолюбие громким именем компании. Строчка в резюме будет выглядеть привлекательно, особенно для небольших фирм. Но надо понимать, что миры разработки крупных корпораций и оставшихся 90 % мелких и средних игроков IT-рынка существенно отличаются. Вы увидите другую, изолированную и искусственно выстроенную экосистему и получите более узкоприменимый профессиональный опыт, заточенный под существование в подобных кругах. Крупные корпорации склонны к диверсификации. Вы делаете небольшой фрагмент, лишаетесь важного начального опыта пройти весь цикл самому, сравнить и понять критерии отбора библиотек и инструментов. Привыкаете к порой избыточно размеренным процессам. Попав же на рынок более простых компаний, вы можете оказаться неприятно удивлены и не готовы к худшим условиям, зарплатам, большему спросу результата и иному стеку средств разработки.

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

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

Крупные компании более инертны. Много старого может встречаться в организации рабочего процесса. Вы можете столкнуться с необходимостью освоения устаревших технологий – что есть обидная необходимость для молодой свежей крови. Ко всему прочему, ухудшающая ваши шансы на рынке по выходу на него. А рано или поздно такой выход вам придется совершить. Увы, если ваши родители могли проработать на одном месте всю жизнь, и подобная преданность вызывала восхищение общественности, – сейчас иные времена. Для рынка IT факт неизменности рабочего места более десяти лет выглядит довольно странно и понижает ваши шансы у работодателей. А если это еще и первая и единственная строчка в графе опыта без роста должности внутри компании за все годы – будьте готовы к убедительным объяснениям и сомнениям в вашей адаптируемости вкупе с актуальностью навыков.

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

Выбирайте ядро, профессии, не привязанные к инструментам, технологиям, для начала своего пути в крупных корпорациях. Если вы успешны в спортивном программировании или жаждете углубиться в алгоритмы поиска, обучение нейросетей, big data – лучшего места вам не найти. Передовые для мира направления, способные существовать в гигантах IT-рынка, – вот лучший аргумент для выбора крупных известных компаний. Имея должные способности, стремитесь быть взятым туда, обычно именно здесь сосредоточена агломерация лучших узких специалистов.

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

Входные данные

Официальная оплачиваемая работа, «громкий» старт карьеры и выгодная строка в резюме, высокопрофессиональная среда.

Где?

В офисе, реже удаленно (нежелательно для новичков).

Сроки

Строго определенные, но обычно менее сжатые, чем в мелких фирмах. Определяются методологией компании. Обычно порядка 2–4 недель для новых фич, «здесь и сейчас» для правки срочных багов.

Ответственность

Не такая высокая, как в мелких фирмах. Однако сосредоточение высококлассных специалистов оказывает дополнительное техническое давление.

Источники знаний

Одни из наиболее ценных: фидбеки глубоко погруженных в продукт специалистов. Самообучение. Тесное специализированное наставничество. Есть риск субъективизма.

Уровень обратной связи

Профессиональный квалифицированный фидбек. Ревью кода. Есть риск привития необщепопулярных практик. Продуктовый и юзабилити-фидбек от смежных участников команды (менеджеров, дизайнеров, руководства), оценка софт-скилс и личностных характеристик.

На выходе

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

Советы в конце подраздела

–› Побудьте полевым игроком.

–› Пробуйте по максимуму всё соответствующее конечной цели.

–› Делайте выбор, следуя глобальному плану.

Оптимизация поведения

Канадский космонавт Крис Хэдфилд с детства грезил полетами. Путем упорных тренировок и ежедневного труда ему удалось стать первым представителем своей страны, вышедшим в открытый космос, и единственным канадцем, побывавшим на станции «Мир». В своей книге «Руководство астронавта по жизни на Земле. Чему научили меня 4000 часов на орбите» он призывает всех космонавтов, жаждущих добиться успеха, «стремиться быть никем».

Пройдя путь до астронавта, находящегося и работающего месяцами в теснейших замкнутых пространствах МКС с одними и теми же несколькими людьми 24 часа в сутки, он осознал, насколько важно уметь быть виртуозом-профессионалом и не акцентировать внимание на этом. Уметь оказать первую помощь, выполнить ремонтные работы, быть сварщиком и программистом, пилотом и лаборантом научных исследований, подопытным кроликом и инженером-механиком – всегда учиться, трудиться и ладить с людьми, что бы там ни было. И быть при этом никем: не показывать свою гордыню, уважать других членов команды, молча и мастерски выполнять свою работу, не строить интриг – только так можно выжить в критичных условиях, добиться успеха всей командой и стать истинным признанным важным звеном. Люди увидят это – комфорт общения, незаменимость, – и сами придут за вами, дабы воссадить на трон. Пусть современный мир и вынуждает вас к созданию блестящей оболочки, продаже себя как специалиста, всеми силами потрудитесь вначале создать в себе истинного мастера. Даже будучи профессионалом-астронавтом, будьте скромны – стремитесь быть никем.

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

Современные методологии разработки направлены на оценку результата как итога работы команды. Проявлять лучшего себя и стараться, безусловно, необходимо. Но координируя при этом действия с остальными участниками. Подход «каждый сам за себя» в IT, может, и потешит ваше самолюбие, но без одобрения, согласования и планирования с командой губителен для продукта и карьеры. Разрабатывая молча нечто крупное по собственной инициативе на старте вашей новой работы, вы скорее вызовете недоумение владельцев продукта о нецелевых тратах ресурсов, чем заслужите признание. Разве что вы сделали нечто общепризнанно назревшее, задвигаемое в дальний угол в виду нехватки времени у коллег, и не в ущерб остальному. Если вам довелось оказаться в коллективе, проповедующим жесткий индивидуализм, задумайтесь, ждет ли проект успех и готовы ли вы оставаться здесь на перспективу.

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

Только придя в свой первый коллектив – беритесь за любые задачи, не воротите нос. Это работа, а не выбор самой аппетитной копченой курочки в магазине. Но при малейшей возможности не забывайте склонить наставника к выдаче тасков, которые считаете перспективными для себя.

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

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

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

Дружите с коллегами. Теплые отношения делают работу вашим хобби, домом, источником радости, а не принуждения. Современный индивидуализм учит нас ходить на работу «работать, а не дружить». Это верно, когда отношения выстроены конфликтным образом. Но задумайтесь, нужно ли вам такое место. Пребывание на одной волне способно творить не меньшие чудеса прогресса, чем желание насолить конкуренту. И тем более – здоровее для вашей психики.

Лучшая атмосфера – тайна принадлежности, культ – дает драйв, все плюсы секты. Вам очень повезло, есть вы попали в такую, если нет – найдите ее. Она обязана быть первой в вашей карьере. Как первая любовь – ваша история на всю жизнь. Захватывать, давать ощущение избранности, гордости, принадлежности к секретному и лучшему, к данной команде. Шуточки, непонятные остальным, просиживание ночей напролет над релизом, быстрый темп, гонки друг с другом в поиске идеального решения – вот верная среда. Романтика мира IT, вспомнить которую захочется спустя годы. Желание ощутить ее вновь будет двигать вас дальше.

Мне повезло, что «Инвентос» был именно таким местом. Туда хотелось вернуться. Правильная атмосфера способствовала тому, что сотрудники, давно покинувшие стены компании, заглядывали в гости вновь и вновь. Работая ли в крупных известных компаниях, вроде «Интел», или же переехав в экзотическую Азию, – они приходили поговорить, угостить диковинными сладостями, как к старым друзьям в уютное душевное место.

Советы в конце подраздела

–› Личное – половина рабочего.

–› Подмечайте многое, анализируйте нужное.

–› Говорите по делу.

–› Думайте, спрашивайте, предлагайте.

RUN

Работа и развитие

Выбор движка

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

Масштаб компании – исходя из вашего уровня и карьерных планов. Детали выбора уже обсуждались выше, в разговоре про старт карьеры. Идите в небольшие или средние, пусть и малоизвестные, компании в начале пути. Рассматривайте брендовые корпорации позже, когда готовы остаться там надолго, решили построить звучную карьеру, планируете период стабильности в вашей жизни, включая заведение семьи и детей. Впрочем, надо отметить, сбоями в постоянстве могут грешить и всемирно известные фирмы. Так, например, несколько лет назад «Intel» решила закрыть московский офис в России. В результате один из моих бывших коллег по видеосфере, перешедший туда на работу, вынужден был выбирать: переехать из столицы в другой город, что не лучшим образом ложилось на семейные планы, либо подыскивать новое не менее серьезное место работы, что в случае аналогов такой корпорации сделать не так-то просто. Впрочем, не обошлось и без приятных моментов: «Интел» выплатила сокращенным сотрудникам отступные в размере, позволявшем им безбедно существовать полгода-год, будто бы те и не прекращали работать.

Есть ли жизнь после крупных корпораций? Мне случалось наблюдать, как выгоревшие сотрудники, или же те, кто уже достиг немалого, более 10 лет проработав в известных фирмах, покидали их стены. Если вы не готовы от 30+ лет до пенсии оставаться в одной корпорации, то вам рано или поздно придется делать новый выбор.

Чаще всего следующей ступенью после корпораций становятся стартапы – желание возвратить былой азарт молодых лет разработки. Доказать себе способность быть «на волне»: освоить новые фреймворки, поработать на свежих инструментах, отдохнуть от излишнего формализма и бюрократии. Нередкий вариант и переход на удаленную работу, подкрепленный желанием большей свободы – как географической, так и временной. Чуть реже или чуть менее длительно ввиду редкости успеха следующей ступенью становится создание собственной IT-фирмы. Я и сама всерьез планировала открытие школ обучения программированию для детей, еще во времена их почти полного отсутствия на рынке, отказавшись лишь из-за предвидения их массового появления и пары рисковых моментов в бизнес-плане. Вполне рабочие варианты – не стоит сбрасывать их со счетов, засидевшись на одном, даже вполне уютном месте. Что после? Часто – возвраты в те же гиганты рынка, но уже с новым опытом, способствующим еще более серьезным результатам. Или же, в случае счастливчиков, угадавших с организацией собственного дела, – уход в иные сферы, хобби, путешествия на средства пассивных доходов и отстранение от дел разработки.

Формат – офис или удаленная работа. Последнее, как уже упомянуто ранее, я бы не рекомендовала новичкам. Имея же набитую руку, дисциплину, сформировавшийся профессиональный каркас… – кто из офисных постояльцев не мечтал бы сменять жаркие страны, сидеть с ноутбуком на пляже то в Испании, то в Таиланде и, неспешно потягивая коктейль из кокоса, набирать код? Однако на практике я не встречала сотрудников на удаленных позициях, в действительности воспроизводящих такую картину. По крайней мере, сделавших путешествия за кодом своим стилем жизни, а не разовыми вылазками, мало отличными от обычного сезонного отдыха с примесью работы. Как правило, отпуска, дни того же перелета, вам нужно согласовывать, а немалая часть задач требует сосредоточения, несовместимого с пребыванием на пляже или жизнью в походном ритме. Безусловно, вы можете тихо отойти в магазин или же остаться незамеченным, завершив рабочий день на пару часов раньше в баре с друзьями, но глобальную свободу вы вряд ли получите. Необходимость быть на связи, концентрироваться, вести переговоры голосом лишает вас возможности незаметно расслабляться под шум прибоя и наслаждаться отдыхом в полной мере. В итоге вы лишаетесь и отпуска, и нормальных рабочих результатов. Пробуйте всё делать по максимуму – работать самоотверженно, отдыхать безудержно. Так эмоции ярче, жизнь полнее и краски сочнее.

Главная проблема удаленной работы, которой ошибочно не придают должного значения, – одни и те же четыре стены, отсутствие смены впечатлений, ведущее порой и к деградации личности, и переработке. Возможность проснуться в 10 и тут же оказаться на работе без опозданий – приятный бонус. Однако в долгосрочной перспективе не все выдерживают однообразие. Да, вы не поедете в офис, но и не вдохнете свежего уличного воздуха, пройдясь до метро, не увидите новое объявление на щите. Это ограничивает вас, делает скучнее, а мысли – уже. Если у вас нет хобби, достаточного количества друзей «с оперативным доступом», а наиболее актуальный круг общения сосредоточен в офисной комнате – задумайтесь, не превратит ли вас переход на удаленную позицию в унылого затворника. Любые разговоры, проявления эмоций, обсуждения новостей с коллегами вокруг делают вас часто совершенно незаметно умнее, чувствительнее, профессиональнее.

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

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

Стремясь отделить рабочее от домашнего, один мой бывший коллега, перешедший на удаленную работу, использовал забавный способ. Каждое утро он переодевался: в рубашку или иную парадную форму одежды на выход, как если бы действительно поехал в офис. Каждый вечер – обратно в домашнее. Так он старался поставить четкую точку в рабочем дне, дисциплинировать себя и упростить переключение контекста. Да и конфузов с выходом на видеосвязь в пижаме так точно не случится.

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

Ничто еще так не помогает провести границу «дом-работа» как выполненные задачи. Спланированные и завершенные. Если все ваши тикеты крупные, обсудите с командой их дробление. Гибкие методологии разработки это всячески поощряют. Ориентируйтесь так, чтобы вы точно сделали некий законченный кусок работ к концу дня. Вы должны понимать свой объем минимум с утра, а лучше уже с предыдущего вечера. Так вы сможете закончить рабочий день с меньшей погрешностью по времени, избегая давления большой все еще открытой задачи. И не проводить очередной вечер в попытке ее «добить».

Режим – ключевой фактор достижения намеченного. «Нет» домочадцам и нерабочим разговорам. Одному знакомому разработчику, трудящемуся на территории квартиры близких родственников, бабушка неоднократно и настойчиво предлагала свозить её на дачу. Действительно, что мешает использовать день для своих дел, если не нужно проходить турникет завода в условные 7:55? Не смазываете границы. Вы встали – вы идете. На работу. Реально или виртуально.

Банальная организация рабочего места – то, о чем вне офиса вам придется позаботиться самим. Заперты в кладовке, недоступны для детей, в удобном офисном кресле. Утепленный запираемый балкон, на голове наушники с шумоподавлением. Все, что по крупицам соберет концентрацию и профессиональную производительность, должно быть использовано в вашу пользу.

Устранение соблазнов зоны уюта вашего дома. Другая учетная запись, без рекомендаций хобби-новостей, фильмов и иконок игр. Отсутствие в поле зрения якорей для запуска нецелевых мыслительных процессов. Те самые – игнорируемые многими – факторы защиты вашего развития и мастерства в домашних условиях.

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

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

Так или иначе, удаленный формат – отличный опыт с массой своих приятных бонусов. Особенно если ремонт затеяли вы, и на работе не наотпрашиваешься на принятие такого количества доставок и встреч с мастерами. Или же работа вашей второй половинки не позволяет брать ей (или ему) частые больничные, а дети радуют своими простудами с завидной регулярностью. Главное, трезво примерьте все факты выше на себя, не умаляйте значения мелочей. Банальное отсутствие офисного питания и столовой под рукой, необходимость каждый день решать проблему обеспечения себя обедом и ужином способны выбить вас из колеи и заставить мечтать о возврате в рабочие пространства бизнес-центра.

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

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

Онлайн-вещание, медиаплееры Smart TV и «голый» video в html5, загадочные аббревиатуры HLS, DASH с их структурой плейлистов и видеочанков, DRM-шифрование, ключи и хитросплетения рекламных стандартов VAST – стали моей страстью. Предметная область, покорившая динамикой, близостью к пользователю и «требованием глубины» – можно создать еще один сайт, зная только фронтенд, нельзя создать еще один плеер, еще один медиапродукт, не обладая чем-то кроме: специальными знаниями предметной области. Последнее – ценнее, полнее. Открывая дома разрабатываемый портал СТС после крупного релиза, смотря на логотипы ОТР и других знакомых «по ту сторону», выкладывая в последние рабочие предновогодние часы новый медиасервис для известной группы телеканалов, вникая выходными в тонкости плеерных плагинов для шифрованных потоков подготавливаемого сайта Wifire TV и видя «в бою» на хайлайтах КХЛ оригинальные, сутками отлаживаемые ранее на зоопарке устройств форматы рекламы с вылезающими из плеера медведями, чувствуешь не усталость, но радость увлеченности знанием чего-то большего.

Доминирование профиля – выбирайте, где будете в ключевых ролях. Трудиться единственным программистом в поликлинике среди пожилых врачей – худшее место для вашего профессионального развития и карьеры. Выбирать иные гос– и военные корпорации – не лучшее решение. Гораздо разумнее выбор профильной IT-компании. То же верно в количественном плане для распределенных команд. Старайтесь попасть в команду, представленную в вашем городе в большинстве или же содержащую ядро, ключевые кадры. Мне доводилось быть частью «меньшинства» и ощутить трудности, с которыми сталкивалась наша часть коллег. В конференц-связях сложнее принимать участие: многое, что обсуждает голосом более многочисленная часть команды, плохо слышит меньшая, ряд шуточек своей атмосферы – следствие ежедневного пребывания рядом – неизбежно ускользают от удаленной малочисленной части. В результате складывается разделение «свои-чужие», подсознательно проецируемое большей частью из личных географических на рабочие отношения. Ощущаемое чувство отторжения обидно влияет на меньшую команду. Их не так внимательно слушают, предложения рассматривают более скептически, они становятся будто бы менее значительны для продукта, что снижает драйв по-настоящему цельной командной работы и не дает полноценно почувствовать принадлежность к важному и единому – такому значимому для нас как социальных существ. При технических спорах, разногласиях и конфликтах участники с большей вероятностью, даже неосознанно, примут сторону тех, с кем сидят физически. И к тому же они действительно склонны искренне проникаться идеями и образом мыслей своей, «близкой», части команды. Отсутствие же руководства, тимлидов в вашем подмножестве команды и каждодневного взаимодействия с ними подрывает мотивацию, расслабляет профессионально.

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

Старайтесь выбрать компанию со своим продуктом, если хотите остаться там надолго и построить карьеру. Избегайте аутсорс-компаний. Там вы будете каждый раз «начинать всё сначала», и закрепить свою глубину знания продукта по сравнению с новичками вам будет непросто. Однако если вы относительно начинающий специалист и хотите прокачать в себе навыки работы на скорость, общения с разными заказчиками, разноплановость техник, набить руку на разных проектах, начиная их с нуля, и прощупать многие предметные области, то крупные компании, работающие с заказными проектами, – полезный выбор.

Инструменты – исследуйте используемый технологический стек. Вы молоды? Не идите на легаси-проекты. Бесполезно растратите энергию – рынок нуждается в инновациях. Знаете редкую технологию или старый фреймворк и готовы иметь с ними дело? Используйте конкурентное преимущество. Тем не менее старайтесь избегать культа инструмента – век любого из них сейчас относительно недолог. Пробуйте смотреть немного со стороны (без шизофренических наклонностей) на возникающий периодически, как вспышки молнии, то тут, то там ажиотаж по поводу нового пакета, фреймворка или подмножества языка. Учите, но не становитесь его проповедником.

Один из моих руководителей так отзывался о кандидатах, недовольных перспективой разработки на самописном фреймворке вместо общепринятых инструментов: «Если люди не идут к нам из-за этого, нам такие идиоты не нужны». И хотя я сама, только придя в компанию, ратовала за переход на популярные средства, позднее призналась себе – отчасти он был прав. Фактор не должен быть ключевым для серьезного и опытного разработчика. Все знакомые мне коллеги успешно поддерживали и применяли параллельно и рабочий местный, и общепопулярный «карьерно-полезный» стек, оставаясь в курсе новостей и релизов последнего. Не привязывайтесь к одному инструменту, не создавайте себе кумира. Мне зачастую смешно нередко наблюдать жаркие споры о варианте А или Б, которые спустя несколько месяцев или лет неизбежно отправятся почивать в мир иной, пав смертью храбрых и положив себя на алтарь динамики отрасли. Учите сам язык, осознавайте теоретические концепты – всё, что устаревает медленнее. Исследуйте популярные фреймворки и решения, переучивайте их на новые – только не кидайтесь в омут с головой, едва пара хипстеров напишут им хвалебные оды! Подобные непреклонные горячие диспуты «одно лучше другого» обычно присущи либо вчерашним студентам, либо фанатикам с местами недостаточно широко развитым жизненным кругозором, либо постепенно обросшим косностью старичкам «одного фреймворка».

Трезво оценивайте потребность инструментов на рынке, их назначение – для каких проектов подойдет один, для каких другой. Рано или поздно вам понадобится отказаться от своей любви к фреймворку или библиотеке – это неизбежно в текущих реалиях. А потому лучше и вовсе не привязывайтесь к ним слишком сильно – чисто рабочие отношения, ничего личного. Побочные эффекты нарушения этого правила, увы, вредят руководителям, сильно погрязшим в любимых детищах – самописных решениях. Даже в крупных компаниях. Безусловно, хороший специалист освоит и новый местный фреймворк. Но только при явно большем среднего желании. А такой уровень тяги к познанию малоупотребимых и нередко посредственных фреймворков редко присущ высококлассным кадрам. Отсюда, зная инструменты, можно сделать вывод о будущих коллегах и их уровне.

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

Стадия проекта – оцените его сформированность. Одна из моих знакомых устроилась в компанию, только начинающую строить основу для обслуживания новой государственной платежной системы МИР. Попав в проект на стадии зарождения, она быстро закрепилась там на ключевых ролях, в молодом возрасте стала весьма высокооплачиваемым сотрудником и глубоко погрузилась в отрасль. Сжатые сроки, важность проекта и еще малое число вовлеченных позволили ей выгодно воспользоваться своим положением – едва заикнувшись об уходе, она получила серьезную прибавку к и так немаленькой сумме дохода для относительно начинающего разработчика. А позже – заняться управляющей деятельностью. Теперь попасть на аналогичную позицию со стороны не так-то просто: высокие требования и статус вакансии в связи с успешностью проекта резко подняли планку. Типичный пример успеха – оказаться в нужное время в нужном месте – не всегда случаен: люди с головой умеют создать или найти подобные условия. Выбирайте новое подразделение, потенциально перспективный продукт на стадии проектирования, если не против занять впоследствии ключевые позиции, построить карьеру. Не чувствуете в себе достаточно сил? Выбирайте подобные проекты, чтобы научиться проектированию с нуля, перенять мастерство более опытных коллег.

Для начинающих специалистов лучшим вариантом будет уже сформировавшийся проект – так больше шансов подсмотреть готовые решения в коде, запомнить их, переиспользовать в своих задачах, узнать существующие хитрости и набрать базу ежедневных лучших практик – кусочков пазла для строительства более серьезных собственных решений в будущем.

Люди и взаимоотношения – разузнайте о них максимум. При визите в фирму на собеседование обращайте внимание на атмосферу, тон разговора, выражения лиц, общение сотрудников между собой. Оцените комфорт взаимодействия с рекрутером. Найдите известных вам сотрудников и будущих коллег в соцсетях, прочувствуйте, близки ли вам их типажи.

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

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

Тот же вышеупомянутый банк яростно стремился поддержать соблюдение режима рабочего дня для всех своих сотрудников, включая IT-отдел. Один мой бывший коллега-тестировщик сетовал на денежные штрафы за опоздание буквально на несколько минут. Подобный режим кнута – дикость для большинства современного мира, и дикость вдвойне для IT-отрасли, пропагандирующей максимальную свободу и в большинстве компаний не препятствующей приходу сотрудников к обеду. Разузнайте, не окажется ли подобных режимных сюрпризов, с которыми вы будете не готовы смириться.

Другой бывший коллега порадовал весьма оригинальным правилом одной химической компании. Всем IT-сотрудникам запрещалось носить чай в открытой кружке. И нет, ограничения вызывались отнюдь не особенностями химического производства – программисты находились в обычном бизнес-центре. Дело в том, что все полы были устланы ковролином, при пролитии жидкости на который требовалась утомительная и, вероятно, дорогостоящая для арендатора чистка.

Корпоративная культура, «плюшки» и бюрократия – расспросите про процент совещаний, систему оценок и прочие рабоче-организационные моменты. Так, чтобы не утонуть впоследствии в ненужной вам «мишуре» из бесконечных встреч и соблюдения формальных критериев в гонках за премией. Примерьте на себя заветы корпоративной культуры: готовы ли вы принять их и не противоречат ли они вашим ценностям? Узнайте про систему поощрений, оценки сотрудников, возможные бонусы и нюансы ежедневного быта. Есть ли столовая, присутствует ли в ней необходимое вам диетическое питание? Не спешите радостно кричать «да!» на предложение рекрутеров, не уточнив подобных, казалось бы, прозаических моментов. Голод, плохое самочувствие, вызванное неправильным для вас питанием, способны нивелировать ваши былые умственные и профессиональные успехи. Не пренебрегайте подобными деталями.

Шведская компания, работающая с такими клиентами как Ericsson, Spotify, Viaplay и Klarna, предложила своим разработчикам формат парного программирования. Мой давний компаньон по программированию медиа-сервисов перешел на их проект, где вся разработка велась исключительно в паре. Общий монитор с подключенным к нему ноутбуком ведущего, который набирает код в данный момент, и вторая пара глаз выполняющего роль штурмана, тут же обозревающая все решения. Совсем иная, экстремальная модель со своей культурой и правилами. Выдерживать молча 10 секунд, заметив совершенную напарником опечатку, и уметь месяцами бесконфликтно проводить по 8 часов с одним коллегой – такие процессы подходят далеко не всем. Помимо обмена опытом, знания фрагмента проекта сразу двоими, мгновенного ревью, снижения ошибок в коде, повышения скорости и дисциплины, не исключено сведение на нет ваших гармонии и успеха, окажись вы не готовы к такому формату разработки.

Я всячески желаю вам выбрать компанию, что станет вашей страстью. Молодость проходит, а место работы не соответствует фибрам вашей души? Бегите. Вы не спецагент, вы не сможете притворяться вечно.

Пусть компания не известна каждому, но, если она успешна и мала – значит, там предельное сосредоточение отличных специалистов и интересных людей. Работать в ней – ощущать причастность к избранным. Эти драйв и азарт не сравнятся ни с чем. Я до сих пор иногда тоскую по нему. Ни одна крупная корпорация не сможет дать вам этого чувства. Здесь теснее дружба и обмен новыми знаниями – сидя рядом с одним своим подопечным, я узнавала больше полезного для ежедневной практики, чем посещая крупные конференции и работая в распределенных командах корпораций.

Занимаясь трансляцией спортивных матчей и продавая билеты на них, мы тщательно отслеживали появление рестримеров. Они любили неплохо подзаработать на своем YouTube-канале, шаря экран с идущей трансляцией – бесплатно всем желающим. Однажды, поймав такого и выйдя на его канал, мы решили хорошенько проучить наглеца. Пока всем честным пользователям шел видеопоток хоккейного матча, мы подали нашему горе-нарушителю свой персональный вариант трансляции – взятую случайным образом серию детского мультфильма. Каково было удивление нашего героя, когда вдруг вместо хоккея он стал наблюдать местами слегка психоделические кадры для ходящей под стол аудитории. Имея возможность видеть ретранслируемый им поток, в том числе со звуком его голоса поверх, мы ощутили всю прелесть неожиданной реакции и недоумения. Приговаривая: «Мультик, как… во… вместо хоккея мультик показывают…», вперемешку с нецензурной лексикой, он отправился делиться своим открытием и искать сотоварищей по несчастью в комментариях под плеером. Несложно представить удивление обычных пользователей, внимательно следящих за перипетиями командной борьбы на экране, когда им с полной уверенностью пытаются доказать, что наблюдаемое ими сейчас, вовсе не хоккей, а мультфильм с галлюциногенными зверюшками. Впрочем, в итоге мы быстро показали нарушителю соответствующее сообщение с предупреждением и положенными санкциями. Ни один виртуальный зверь не пострадал.

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

Уже уходя из «Инвентоса», я доделывала последнюю задачу по добавлению промоакции «Кока-Колы» в наш плеер для Континентальной хоккейной лиги. Проголосовав за понравившийся видеомомент, ты становился участником моментального розыгрыша с партнерскими призами «Кока-Колы» и КХЛ, в том числе созданными по уникальному тематическому совместному дизайну. Вероятность обретения приза ввиду их количества и числа голосовавших на практике получалась достаточно мала. Точно не припомнить, но шансы выходили порядка 1 на 100+, один раз в неделю. Чуть позже, уже переехав в Санкт-Петербург и выйдя на новую работу, я решила воспользоваться преимуществом жизни в Северной столице и посетить, наконец, хоккейный матч, впервые после нескольких лет разработки бок о бок. Открыв разрабатываемый в недавнем прошлом при моем участии сайт КХЛ для просмотра расписания, я, поддавшись ностальгии, решила кликнуть на видео с интересными моментами. Каково же было мое удивление, когда, перелистав несколько роликов и проголосовав за понравившиеся, я увидела такое знакомое и крайне редкое окошко в плеере, символизирующее выигрыш! Зная ничтожные шансы, я была поражена вдвойне. Милое постпрощальное послание, подарок разработчику, технически поддержавшему акцию на портале, до боли известном за годы верстки и фронтендерства на нем. Когда он впервые решил выйти из онлайна в реальный мир и купить билет на матч, уже по ту, обычную пользовательскую сторону экрана. Выигранные шапка и варежки от КХЛ и «Кока-Колы» до сих пор трепетно хранятся у меня, став единственным «мерчем», полученным неизбалованным сотрудником за годы тесной разработки. На добрую память.

Попав же в Яндекс, я осознала – большие корпорации таят в себе иные, ничуть не менее ценные прелести. Здесь есть драйв причастности к крупным, известным событиям и новостям. Пусть даже ты не касался их своей разработческой рукой. Чувство единства, так здорово поддерживаемое в стенах компании, возможность узнавать последние анонсы о ключевых продуктах создают ощущение соучастия, здорового любопытства, гордости и желания копнуть глубже. Чтение заметок о новых фичах, внутренние обсуждения событий и мнения о них ключевых людей компании развивают твой кругозор, позволяют связать то, что происходит изнутри, с тем, как это выглядит снаружи. Командировки, рабочие условия, шикарный офис со сказочным видом вдохновляют, убирая границы мышления и доказывая, что всё возможно, стоить только захотеть. И немного постараться.

Я благодарна тому, что всего за 10 лет карьеры мне довелось поработать в компаниях самых разных масштабов, от мелких отделов при непрофильной фирме, подработок и «фриланса» до технически мощных команд и корпораций.

Не слишком переживайте, сделав новый поворот на своем IT-пути. Как говорил мой стоматолог, бояться надо в момент принятия решения. Если вы пришли сюда и сидите в кресле – уже слишком поздно.

Советы в конце подраздела

–› Не спешите. Мыслите комплексно. «Devil in details» (yet).

–› Оцените легкость «слезания с иглы». Продадите ли вы себя кому-то после? Вырастите ли себя, согласно глобальному плану?

–› Не забудьте про карьерные перспективы.

Между 0 и 1: карьера и руководство

Лучших тимлидов не нанимают – они вырастают в конкретных командах.

Около половины своей IT-шной карьеры мне довелось пробыть в шкуре руководителя фронтенд-отдела. Оглядываясь назад, пожалуй, стоит признать, что немало ошибок было совершено мной на этом пути. Я собеседовала десятки кандидатов – возможно, часть из них могла бы успешно войти в наш коллектив, не будь я так строга и категорична. Ограниченная привычными типажами общения, порой принимала специфику личности за странность, легко перевоспитываемые привычки предыдущего места – за профнепригодность. Оценивая выполненные тестовые задания, не привносила ли я слишком много субъективизма, стараясь разглядеть желаемые мелочи, упуская крупную суть – обучаемость, знание модных, и подчас непривычных мне, инструментов?

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

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

Так или иначе, для вас эти истории – опыт, «не свой», а значит, тот самый – лучшим образом подходящий для обучения на нем.

IT сейчас – это бизнес ума и самообучаемости. Здесь пока еще ценится настоящее: мозг, способности, увлеченный труд и достойный результат. Фальшь и бюрократия не успели заполонить и обесценить нашу профессию. Руководитель-приспособленец, прячущийся за качественным соблюдением пустых формальностей, всегда распознается. Малоквалифицированный начальник, лишенный уверенности и умения мыслить, утопающий в ненужных совещаниях и создающий иллюзию полезности своей власти, – нетипичный и, к счастью, недолгоживущий портрет в наших кругах. Если вы боитесь спорить со своим вышестоящим руководством и спускаете плохие технические решения на подчиненных – не сомневайтесь, это почувствуют. И никогда не станут уважать. Всегда используйте свой мозг в IT, переосмысливайте, учитесь. Будучи начальником, делайте это вдвойне.

Как стать руководителем, с чего начать? Для начала станьте специалистом. Хотя бы в чем-то узком. Со временем к вам потянутся коллеги за помощью по связанным вопросам. Постепенно вы приобретете знания эксперта и уважение. Так вам будет проще продвинуться дальше, заслуженно получив сперва место ответственного за проект, потом тимлида, а позже, как знать, быть может, и технического директора.

Знайте проект лучше прочих. Станьте помощником главного знатока продукта. Впитывайте его советы, информацию, тонкости предметной области. Изучите устройство проекта, поймите, где что лежит и как настраивается. Не оставайтесь только технической машиной – программистом, не отдающим отчет в связи кода с реальным миром, потребностями клиентов и деньгами заказчиков. Воспитывайте в себе немного менеджера, вовлеченного в бизнес, сроки, требования и последствия решений.

Если ваш руководитель настоящий профессионал – он будет развивать вас. Как и вы, в свою очередь, должны растить, учить своих подопечных.

Дэвид Огилви – «отец рекламы», основатель одних из самых успешных в истории агентств и мудрый бизнесмен, в своей книге «Откровения рекламного агента» привел такие заветы, озвучиваемые всем сотрудникам его компаний:

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

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

Эти же ценности в равной мере применимы для IT-кругов. Поэтому здесь в здоровой атмосфере мы так редко можем наблюдать вакансии руководителей. Ими не приходят – ими становятся лучшие: знающие проект, достойные сотрудники. Главный минус для вашей карьеры, кроющийся здесь, – в последующей смене компании. Будучи главным лицом проекта на предыдущей работе, вы, скорее всего, будете претендовать на обычную вакансию разработчика – пусть и высокого грейда, например, сеньора. Однако строить формальную карьеру и завоевывать место руководителя вам придется на новом месте с нуля. Пережив всех более старших разработчиков и дождавшись их ухода или глобального перераспределения ресурсов. Даже в рамках одной компании мне случалось наблюдать, как руководитель, жаждущий своего развития, складывал свои обязанности и уходил простым разработчиком на другой проект. Учтите такое статусное непостоянство – трясясь над формальной должностью, вам нужно или оставаться на долгие годы на одном месте, или легко отпускать звучную позицию, дабы поддерживать актуальность рабочих навыков вкупе с привлекательностью на рынке, и менять компании в ожидаемые IT-сферой N лет.

Знайте больше других. Тот же Дэвид Огилви приводит еще одну, любимую мной, врачебную параллель: «Однажды я спросил сэра Хью Ригби, старшего хирурга короля Георга V: «Что делает хирурга великим?» Сэр Хью ответил: «Хирурги немногим отличаются друг от друга по ловкости рук. Что отличает действительно великого хирурга, так это то, что он знает больше других хирургов». Это высказывание применимо и к рекламистам. Хороший рекламист знает свое ремесло лучше других». Эта же парадигма применима и для IT-сферы, впрочем, как и для многих других, – хороший программист знает больше прочих коллег.

Один мой бывший товарищ по работе, первоклассный программист, получил оффер компании Aviasales и, недолго думая, перебрался из температурно-переменчивой центральной России в их офис – теплый тайский остров. И, несмотря на расслабляющую морскую обстановку, он не перестал стремиться регулярно повышать свой уровень. Так, по его рассказу, каждый день в обед он старается тратить 1 час на изучение нового. А дома в выходной день, лежа на шезлонге во дворе своего дома, – нет, не бездумно наслаждается экзотическим воздухом, а читает книгу по архитектуре ядра Linux.

Анализируйте. Не принимайте на веру, пропускайте через себя и через текущую ситуацию все готовые шаблонные рецепты. Чаще задавайтесь вопросом: «Почему?» – и задавайте его коллегам и подопечным, отбрасывайте ложную скромность и желание выглядеть всезнающим, если это не так. Включайте в себе роль исследователя. Просите помощи более компетентных коллег.

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

Как брать задачи? Не ройте себе яму. Берите, что успеете – крупное и важное. Если нет – качественно делайте мелочи. Окружите себя успехом. Не подставляйтесь, беря ненужные и мутные задачи. Если они интересны вам, что ж, постарайтесь воспитать в себе привычку смотреть глазами бизнеса. Иначе вы останетесь, по мнению владельцев продукта и руководства, разработчиком немного не от мира сего, а таких не берут в космонавты-руководители.

Не беритесь за плохо продуманные продуктово задачи. Так вы не добьетесь признания и успеха. Здесь слишком много факторов, не зависящих от вас. Вопросы и ожидание ответов на них будут тормозить процесс. Ваши обещания и высказанные сроки окажутся вне сферы вашего влияния и станут непредсказуемыми. Вы неизбежно начнете скатываться к нарушению данных обязательств. Тем более, если в начальной оценке вы наивно полагали, что будете моментально получать ответы по открытым вопросам от смежников. Не окружайте себя амплуа неудачника. Будьте умнее. Плохая постановка задачи – значит, мяч не на вашей стороне, и не вздумайте забирать его себе!

Для статусных и важных бизнесу задач прикладывайте чуть больше усилий, беритесь, даже если сначала они вызывают легкий страх большей, чем обычно, ответственности. «Откусывайте всегда больше, чем готовы проглотить». Это ваш рост.

Играйте на опережение. Назрела необходимость внести изменения, завести тикет, отправить заявку на выделение дополнительного железа, и вы чувствуете, что руководитель может это осознать? Сделайте первым. Работа на опережение – верный помощник в построении мелкими шагами достойной карьеры.

Если в вашей голове зародилась, на ваш взгляд, полезная мысль – не пренебрегайте ею. Вы можете заблуждаться, считая ее очевидной всем. Я часто совершала эту ошибку. Особенно в моменты смены команд и продуктов, когда уровень их участников не до конца понятен. Страх высказать банальное для всех часто мешает обратить внимание на очевидные проблемы новых коллег. Не давайте ему помешать вам – именно свежим взглядом и готовым набором проверенных практик вы можете легко заработать лишние очки, просто привнеся известные вам инструменты и процессы в новое место. Даже в больших корпорациях, таких как Яндекс, вас будут готовы слушать, принимая рациональные изменения на вооружение и в случае успеха распространяя их на другие команды.

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

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

Уступайте подопечным в мелочах. Сотрудники будут чувствовать, что вы считаетесь с их мнением. Но крупные решения будут за вами.

Максимальная отдача – отличает руководителя от серой массы разработчиков. Задерживайтесь, если нужно, – но не перегорайте, работайте в выходные, если того требует экстренная ситуация на проекте. Подавайте пример, и вам не придется просить коллег и подопечных, им будет неловко оставаться в стороне, когда работаете вы.

Учитесь говорить, учитесь презентовать. Придя в Яндекс и столкнувшись с внедрением Scrum’а, я долго не могла принять необходимость проведения разработчиком демо-встреч: подготовки визуально наглядных презентаций сделанного за спринт, пояснения продуктовой ценности изменений и их представления заказчикам. Поначалу сия деятельность казалась бесполезной и бюрократической, отвлекающей разработчика от его прямых обязанностей – написания кода в его уютном уголке. Однако пройдя через опыт, выдергивающий нас из зоны комфорта на 5 метров, мы с большей легкостью начинаем выходить из нее на километр, хотя раньше были готовы буквально падать в обморок от одной только мысли об этом. Так, со временем я заметила, что разработчикам стали легче даваться обсуждение новых фич между собой и коммуникации с руководством. Более того, я почувствовала большую уверенность при публичных выступлениях – избегая ранее их как огня, всего за один год я дебютировала с докладами на конференции ЦФО, митапе Санкт-Петербурга и нескольких внутренних мероприятиях нашего отдела.

Для руководителя же, призванного вести за собой массы, умения общаться и «продавать» – обязательные черты.

Способность презентовать – важное умение, и особенно остро его значение я осознала, решив завести небольшой пет-проект: изготовление нашивок с IT-шной тематикой. «Достаточно просто купить специальную вышивальную машинку, упомянуть результат с фото где угодно, и толпы ринутся за заказом», – наивно рассуждала я. Однако, заведя сайт с говорящим доменом, группы в социальных сетях и даже потратив махом порядка 4 тысяч на рекламу во «ВКонтакте» и «Инстаграме», я поняла, что серьезно заблуждалась. Тогда мне удалось привлечь всего трех клиентов, сделавших заказ на сумму менее полутора тысяч. Стоит ли говорить, что на амортизацию машинки и возмещение расходных материалов, обошедшихся мне на старте в круглую цифру около 100 тысяч, не приходилось и рассчитывать. Не говоря уже о потраченном времени на освоение специальных пакетов программ для машинной вышивки, поиск, оттачивание приемлемого качества готового изделия и конструирование забавных изображений и надписей. Даже бесплатная раздача нашивок на конференциях и в офисе для своих коллег не принесла больше пары заказов и, само собой, не окупила промо-затрат. Несмотря на все старания, разработку уникального дизайна, прикольные фразы и картинки, понятные только IT-шникам, «продать» массово продукт – нашивки и полотенца – мне не удалось. Все хвалили, рассматривали, но – не брали. Вышитый логотип нашего продукта, розданный всей команде вкупе с прочими бесплатными нашивками, не привел ни одного клиента. Куда уж более чем целевая аудитория. Однако сделать и продать – две отдельные науки. Умение сочетать их приближает вас к успеху в роли руководителя.

Почти на такую же сумму я получила заказов от друзей, которым не заплатила ни копейки. Сарафанное радио решает всё. Это был, пожалуй, второй раз в жизни, когда я пожалела о замкнутом образе жизни, непреодолимой тяге к интровертству и малом числе знакомых. Общительность, вкупе с умением объединять людей, – еще одна черта, выжить без которой достойному руководителю будет непросто.

Все ваши старания остаются незамеченными? Вас не назначают руководителем? Просто попросите. До меня доходила история, что мой одногруппник, не желавший оставаться просто разработчиком, однажды подошел к директору и предложил свои услуги в качестве менеджера и лица, причастного к ответственности за принятие решений. Сейчас он стал правой рукой компании, получив спустя лет пять должность директора по развитию. Другой же программист, одномоментно вместе с ним когда-то вышедший на работу, так и остался разработчиком – у всех свои желания, но не бойтесь явно заявить о своих претензиях, если текущая ситуация не отвечает вашим стремлениям. И хотя мне не приходилось прибегать к подобным карьерным тактикам, я нахожу их порой весьма уместными. Делайте мир понятнее.

Умейте обратить на себя внимание, если чувствуете, что пожалеете, оставшись в стороне и полагаясь на дальновидность коллег, принимающих решения. Они могут быть загружены работой, замотаны своими делами или попросту не видеть всей картины под вашим углом. Предположим, вы были бы не прочь занять позицию scrum-мастера в вашей команде. Безусловно, можно плести тонкие интриги и добиваться вашего назначения, манипулируя сознанием коллег. Такой навык очень ценен и необходим на сколько-нибудь высоких уровнях управления. Но в данном случае самый простой способ – явно выразить свое желание: просто попросить, предложить свою кандидатуру. Я сама долго переживала в подобной ситуации, когда выборы «главного за организацию процессов» проводились в нашей команде. Пыталась «подавать вид», старалась, косвенно надеясь заставить людей принять нужное мне решение. Однако в силу скромности не говорила банального: «Я хочу». От ответов на прямой вопрос я уклонялась фразами вроде: «Если выберете, то, конечно, постараюсь сделать всё, что в моих силах». В итоге команда проголосовала за другую кандидатуру, не поняв меня и истолковав мои ответы, в силу личного восприятия, как нежелание и вежливый отказ. И тут я честно впервые сказала себе: я ведь хотела. Мое чувство самолюбия было задето. Душу точило разочарование. Мысли, что я не наметила четко желаемую цель и пустила всё на самотек, заставили сделать соответствующие выводы. Интересно также то, что мне не хватило всего одного голоса. А значит, решающим мог стать мой собственный, не постесняйся я и проголосуй за себя. Обидное следствие ненужных условностей на пути к вашим целям. Старайтесь не дать им помешать получить желаемое.

Есть еще кое-что. Волнительное и пугающее для карьеры прекрасного IT-меньшенства. Декрет. Как не отстать от других, проводя 24x7 с ребенком? Как с минимальными потерями вернуться в отрасль после декрета?

С момента выхода в заветный отпуск и до появления на свет ребенка, особенно, если он первый, зачастую остается достаточно свободного времени. Посвятите эти дни тому, что давно хотели сделать в профессиональном плане, но не успевали в рабочих буднях. Попробовать новые инструменты, фреймворки, библиотеки, выучить языки. Здесь нужно успеть все, что вы хотели, по-максимуму. Так вы обеспечите себе задел на послеродовой период. Пользуясь свежестью профессиональных навыков, именно часть отпуска до рождения я обратила на вдумчивое штудирование – наконец – документации TypeScript. Подумайте заранее, какие «пет-проекты» вы хотели бы вести далее для поддержания уровня.

Читайте рабочие новости на корпоративных ресурсах и в мессенджерах на протяжении всего декрета. Требует минимальных вложений, а воспринимается в вашей новой роли скорее как отдых и развлечение. Политика компаний позволяет оставить себе доступ к подобным каналам связи и даже забрать рабочий ноутбук на период декрета. Тем более не исключены затрагивающие и вас, как все еще штатного сотрудника, организационные моменты. Незаметно вы еще немного варитесь в том соку. Держать связь с профессиональной реальностью мне помогали еженедельный просмотр почты, ключевых чатов и внутренних статей. Пассивный опыт наблюдателя за эволюцией многое значит в молниеносно меняющихся IT. Проект получил новое название или, и вовсе, ваш продукт купила другая компания. Библиотека пришла на смену устаревшей – в вашем мозгу должны оставаться зависимости. Иначе по выходу из декрета вы потеряетесь в незнакомых названиях, не понимая, что это и для чего. Ситуация будет осложняться и тем, что времени погуглить вечером и доделать внеурочно почти не будет. Вас ждет требующий общения и воспитания ребенок, для которого вы сами – такой же необходимый интернет.

Общайтесь с коллегами и друзьями из других компаний. Просматривайте онлайн-конференции, пока гладите белье. Пусть и в ущерб подразумеваемым многими декретным сериалам, я нередко прибегала к фону из видео и трансляций IT-тематики в обслуживающих бытовых моментах. Лучше наслаивать по чуть-чуть, чем полностью убрать. Ожидая удобного неразрывного фрагмента времени для глубокого погружения, высок риск не продвинуться совсем. После фултайм работы вам может казаться, что вы не делаете ничего. Но это уже много.

Да, времени и сил поначалу не хватает. Но выстроив верный режим ребенка, как можно раньше научив его есть самостоятельно ложкой и максимально обслуживать себя, вы выкроете ценные крупицы на новое. Это возможно. Даже при полном отсутствии помощи бабушек и нянь – готова подтвердить. Cайт книги, набросанный на CSS Grid, появился как раз в период декрета. Отход от стандартной ежедневной разработки – еще и шанс погрузиться в непривычное хобби, расширить кругозор, создать уникальный продукт. Изучите предметные области работы автопилотов, логистики и доставок, в конце концов, подумаете, как использовать программирование в детских вопросах. Будь то настройки умного дома с видео-нянями или развивающие приложения для детей.

За несколько месяцев или хотя бы недель до выхода из декрета – начинайте плотно заниматься: вспоминать забытое. Уточните актуальный для вашего рабочего места стек, пишите код, сделайте тестовый проект с нуля, регулярно читайте статьи.

По моим наблюдением руководители склонны нанимать нянь и быстро возвращаться к работе – спустя несколько месяцев после рождения. Службы подбора домашнего персонала развиваются, и уже не являются привилегией топов компаний или знаменитостей.

Кто-то выходил на четверть, удаленно. Потом возвращался назад в декретный отпуск. Период первых месяцев, когда ребенок еще много спит – удачная возможность вспомнить рабочее время. Так вы разбиваете монолитный перерыв. Немного выйти, пока еще не отстали от проекта, потом уйти опять в декрет при необходимости и затем вернуться окончательно, но уже с меньшим периодом полного отстранения.

Разнесите по времени начало посещения ребенком детского сада и восстановление карьерных позиций. Минимизируйте пересечение первых больничных и несерьезной ауры вокруг вас как работника.

Боясь потерять в карьере, многие долгое время не решаются заводить детей. Все не так страшно. Рабочие успехи обязательно придут, пожелай вы этого, биологические же могут оказаться вам не подвластны. Умея планировать и добиваться – а, имея карьеру, вы точно умеете, – вы отыграете временную просадку.

Советы в конце подраздела

–› Лучше излишняя прямота, чем бесполезная скромность.

–› Не бойтесь лишней работы и риска. Бойтесь не сделать ничего значительного.

–› Не подставляйтесь.

–› Голосуйте за себя.

Личные взаимоотношения

Наша профессия из тех, что способны подарить второй дом – наш офис, вторую семью – наших коллег. Мы существуем вместе в замкнутом пространстве одной комнаты по 9 часов в сутки, не считая полуночных засиживаний с пиццей над затянувшимся релизом. Здесь та среда, где легко сплетаются крепкие отношения, и та, где мы, чувствующая и воспитанная аудитория, подчас оказываемся неспособны комфортно существовать из-за легчайшего дисбаланса. Здоровая атмосфера межличностных отношений – святой грааль крупных побед отрасли и счастья каждого причастного к ним.

Терпимо относитесь к коллегам. Подобное правило обычно легче соблюдать в самом начале на своих первых работах, когда вы испуганный новичок, с почитанием впитывающий всё вокруг. Или в небольших компаниях родного города – как правило, вы оказываетесь рядом с людьми, выросшими в близкой вам среде: окончившими тот же вуз, ходившими в одну школу, живущими по соседству. У вас больше тем для разговора, одни и те же ценности привиты вам похожим окружением с детства. В крупных же корпорациях и известных компаниях, как правило, оказываются люди со всей страны. И даже из других стран. Лучшие в своей среде, вырвавшиеся на покорение крупных городов, поиски роста и карьеры. У них разное воспитание, привычки, диктуемые культурой нашей многонациональной страны, подчас религия и язык. Однажды мы устроили в нашей комнате мини-соревнование по местной лексике, и оказалось, что каждому приехавшему из отдаленного региона России, известно как минимум два-три слова, смысл которых непонятен другим. При этом сами носители были весьма удивлены таким незнанием – им те или иные выражения казались очевидными всем. Например, знали ли вы, что «филки» в новосибирских краях обозначают деньги, а «растыка» – неуклюжий человек в Вологодской области? Лично я – нет.

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

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

«Поступайте так, как вы хотели бы, чтобы поступали с вами». Применяйте это правило и для рабочих взаимодействий. Тестируйте свой код не только на баги, но и на понятность коллегам-разработчикам. Хотели бы вы получить такой код? Прост ли он для восприятия? Внесения изменений? Достаточно ли продуман, чтобы следующему разработчику, притронувшемуся к вашему коду, не пришлось, чертыхаясь, переписывать всё заново? На эту тему есть множество отдельных чудесных книг, обязательно прочтите их, если «еще не». Хотя бы уже упомянутую ранее «золотую тройку»: «Рефакторинг» Мартина Фаулера, «Совершенный код» Макконнелла и «Чистый код» Мартина. Впрочем, что бы они ни говорили вам о комментариях или формулировках документаций, поднятое их нарушением настроение коллеги подчас достойно проказнического несоблюдения правил.

Не говорите в обед про IT. Переключитесь, дайте себе и коллегам отдых. Есть масса тем, обсуждение которых сблизят вас и не дадут перегореть. Лично мне гораздо приятнее узнать, наслаждаясь едой, что кота моего коллеги зовут Кодзима (забавно на слух, не правда ли?), чем обсуждать контент следующего совещания – ведь оно запланировано именно для этого.

А вот с друзьями – IT-шниками из других компаний – я бы посоветовала не избегать рабочих тем. В общем разнообразии общения подобные разговоры будут лишь малой частью, не вызывая перенасыщения, как в случае обедов с коллегами. Их истории, иной опыт команд и процессов – свежий взгляд для вас. Обмен знаниями обоюдно полезен и способен привести лучшие практики, новые подходы и инструменты в ваш коллектив, подарив благодарность коллег и руководства.

Цените не-IT-друзей. Общение с ними – смена впечатлений, защита от перегорания и расширение вашего кругозора, как вы помните, способное подарить удивительные открытия на стыке дисциплин.

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

Мне часто доводилось ощущать чувство превосходства, исходящее от юных разработчиков, админов и верстальщиков при разговорах с их не-IT-друзьями. Не показывайте зазнайства. Не стоит считать экономистов, продавцов и друзей рабочих профессий специалистами второго сорта, далекими от интеллектуальной интеллигенции. Поверьте, для успеха в их деле нужны свои таланты – не факт, что вы бы справились на их месте.

Навещайте бывших коллег. Общайтесь. Что может быть теплее и ярче аутентичного визита в пхукетский офис Aviasales к когда-то сидевшему бок о бок с тобой разработчику? Вдохновение новых свершений, чужой закат в своей атмосфере и байки об обязательном съеме обуви на пороге при входе в тайские рабочие домики компании, известной на всю индустрию путешествий, – моменты, складывающие полную насыщенную жизнь, наталкивающие, мотивирующие, освежающие, – почти всегда дарятся нам другими людьми.

Что же до большего, чем просто дружба? IT – сфера, способная влюблять в себя и между собой. Особая магия ума, царящая в компаниях, сплетает немало разработческих судеб. Важно не обратить случайные чары себе во вред.

Одна из частых проблем здесь – чрезмерная концентрация психологии, эзотерики и тонких граней в личностях лучших разработчиков. Избыток духовного развития нередко делает отношения с ними непростым испытанием, тем более что эти же черты изначально и привлекают многих представительниц (или представителей) противоположного пола. Мне доводилось испытывать силу уникальных сочетаний нестандартных для мужчин особенностей на себе.

Людям свойственно бояться ответственности. Но, знаете, такой уникальный типаж, тем более для тимлида – лучшего разработчика компании – я могла встретить только в IT-отрасли. Решительность в работе и обратное, порой граничащее с примитивной трусостью, – в жизни. Эта история вполне себе достойна получения диплома режиссера, чтобы снять тончайший психологический триллер. Сколько бы продержались вы, если каждый поход на обед превращается в игру, в каждый рабочий разговор невидимой нитью вплетается подтекст, ты контролируешь свое поведение, каждый жест и позу, зная, что они будут оценены? Представьте, что в каждое устраиваемое себе для отдыха чаепитие объект симпатии молча идет за вами на кухню. Будто бы случайно оказывается рядом. Вы улыбаетесь, трактуя происходящее как взаимный интерес. Но он почему-то неохотно общается с вами, когда составить компанию с печеньями решаете вы по собственной инициативе. Вас подвозят на машине до дома. Приглашают поработать над задачей в офисе в выходные и пояснить устройство самописного фреймворка компании. Однако на просьбу подбросить через день отвечают невежливым отказом. Никогда не зовут на обед прямо, но, проходя мимо, замедляют шаг и ненавязчиво поворачивают корпус – присоединяйся, к чему слова, к чему огласка, когда вокруг коллеги. А назавтра молча игнорируют и садятся за другой стол в одиночестве. На послезавтра – мило подсаживаются к тебе. День-два продержаться можно. Но какой агент и профи протянет почти три года? До Билли Миллигана мне было еще далеко, но подчас казалось, что пару разных состояний я поддерживала в себе легко. И до конца психически здоровым человеком меня уже не назвать. Со странным удовлетворением обнаруживаешь себя в ситуациях, когда, не поведя ни единой мышцей лица, оцениваешь задачу коллеге, с которым провел текущую ночь, понимая, что каждое твое слово ловит другой в попытках понять, в пользу кого же ему отказали, а часть сознания отмечает факт существования и реакции третьего – самого желаемого. Это забавно, и я нередко задумывалась, что эта часть моих межличностных взаимодействий вполне заслуженно тянет на отдельное повествование, жанр которого выходит за рамки текущего.

Со временем я научилась быть совершенно бесчувственной к коллегам противоположного пола. Возможно, мне просто везло с новыми командами. Однако работать стало в разы радостнее и спокойнее.

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

Будьте особенно бдительны, если второй участник – ваш начальник. Одна из моих подруг вынуждена была перевестись в другую часть компании после разрыва отношений с руководителем проекта. До этого неудачное завершение стоило траты множества нервов, конфликтов на работе и явно не шло на пользу ни компании, ни психологическому состоянию участников истории. Ежедневное же пребывание вместе мешало поставить однозначную точку, подталкивая к периодическим попыткам возрождения внерабочего общения.

Многие известные компании со всего мира уделяют пристальное внимание вопросам межличностных отношений.

Так, в Facebook есть правила, по которым вы не можете писать комплименты в мессенджерах сотрудникам и приглашать их на свидания, если вы никогда не пересекались ранее. Безрезультатно спросив коллегу о «нерабочей встрече» единожды, не должны предлагать снова. А заняв посты директоров и выше, обязаны сообщить в HR-отдел, если начинаете встречаться с сотрудниками даже из другой организации.

Особо оговариваются кодексами этики отношения в вертикалях «начальник-подчиненный». Например, Google запрещает романтические и семейные связи в управленческих цепочках любого уровня – между разработчиком и техлидом на проекте возможна не более чем дружба. Иначе вам придется подыскать себе другой продукт в компании. Тот же Facebook явно не прописывает запрет руководителям встречаться со своими подчиненными, но требует уведомить об этом HR.

Зачастую же спорные должности и характеры деятельности участников отношений не фиксируются явно, а трактуются шире – с позиций наличия конфликта интересов. Каждый из которых – предмет информирования юридических или HR-отделов и скорейшего разрешения на благо компании.

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

Офис компании Aviasales располагается на тайском острове Пхукет. Модная ныне тенденция для IT-шного мира: уставшие от офисной жизни талантливые разработчики получают возможность воплотить давние желания – работать рядом с пляжем, поедая экзотические фрукты. Филиалы на Кипре и в других теплых краях – козырь в рукаве работодателей для привлечения лучших кадров со всего мира. При этом столь благие намерения в адрес сотрудников не лишены скрытой выгоды и для владельцев компаний. Оторванные от дома, замкнутые на острове разработчики склонны больше погружаться в бизнес и работу, обретая более ограниченные территорию, спектр развлечений и круг общения, состоящий преимущественно из коллег.

Один из моих бывших коллег, работающий в Aviasales, рассказывал, что в компании действуют три правила, в которые посвящают всех новичков. Их неисполнение – увольнение без лишних церемоний. Третье правило – самое эпатажное – касается запрета посещать один из баров острова. По слухам, владелец компании повздорил или заимел какие-то разногласия с руководством того заведения и в отместку выработал данное предписание. Второе правило более рациональное и действительно стоящее увольнения, впрочем, к нашей теме оно не относится. А самый же первый закон звучит так: «Не е** ближнего своего». В чужой стране и в малом коллективе выходцев из России – столь тесной выборке родственных душ, в декорациях жарких тропиков и атмосферы отдыха, крайне сложно избежать больше чем просто рабочих симпатий. Причем прочность подобных связей может быть весьма мимолетной, рожденной общей аурой острова. Закончившиеся же отношения, треугольники и многоугольники личных привязанностей способны превратить подобный офис в филиал «Дома-2» и разрушить профессиональную работу, подвергнув риску продукт и стабильность компании. Руководство прекрасно понимает это и не оставляет запреты только на бумаге: двух сотрудников, скрывающих факт нарушения правила, моментально уволили, как только «преступление» было выявлено.

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

В популярном испанском сериале «La casa de papel» («Бумажный дом»), посвященному ограблению Монетного двора, профессор – организатор безупречного плана – строго-настрого запрещал какие-либо личные отношения между участниками группировки. В результате все отклонения от идеальной схемы и проблемы, стоившие жизней, возникли исключительно по причине нарушения столь мудрого правила. Выдумка, но показательная, вновь.

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

Что до меня, пожалуй, я бы не оказалась в Яндексе, по крайней мере, так скоро, если бы руководство моей предыдущей компании не попросило менеджера другого нашего ключевого продукта подыскать себе новое место. Имея жилье в Санкт-Петербурге, он решил воспользоваться сложившейся ситуацией и, наконец, перебраться в Северную столицу. О наших отношениях на тот момент было мало кому известно, возможно, и никому, и посему мой уход стал полной неожиданностью. Мне предлагали большие зарплаты и даже отсутствовавшее у нас как вид удаленное сотрудничество, уговаривая изменить свое решение. Последнее тогда, увы, плохо ложилось под разработку с плеерами и телевизорами, вынуждавшую порой иметь под рукой весь дорогостоящий зоопарк для отладки. И что оставалось делать мне, как не последовать за близким человеком? Тем более получив шанс реализовать давнее желание «выйти в свет» – вырасти, попробовать более крупные корпорации и влиться в столичное IT-сообщество. В итоге компания лишилась давнего бойца, 6 лет знакомого лучше прочих подопечных с VAST-стандартами рекламы и особенностями Smart TV, разработчиком ключевого для компании звена – html5-плеера, равно как и фронта всех прочих ключевых продуктов, а также официального руководителя фронтенд-отдела.

Если вы лицо, ответственное за принятие кадровых решений, – старайтесь предусмотреть подобные побочные эффекты. Видите, что отношения коллег распались, и вам важно сохранить обоих в продуктивном рабочем состоянии? Переведите их на разные проекты. Или хотя бы рассадите в разные комнаты.

Мне доводилось слышать истории о программистах, которые были настолько близки к лучшим представителям профессии, насколько и далеки от реальной жизни и бытовых мелочей. Например, они были неспособны назвать даже примерную текущую стоимость хлеба. IT-семья – отдельное искусство.

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

Еще один опасный соблазн – помощь с работой или трудоустройством, например, в прохождении собеседований. Безусловно, нет ничего плохого в передаче знаний, подсказать, обсудить, просветить – всегда стоит, но в штатном режиме, между делом, в беседе, вечерами. Никогда не заменяйте собой другого. Не проходите собеседований за вашу вторую половинку, не делайте испытательные задания. Ваш ум – неразменная и непередаваемая часть. Обреки вы близкого человека на ежедневную работу с заданиями, слишком сложными для его уровня, недоумение коллег, плохие отзывы руководства и ощущение стыда – вы окажете ему только медвежью услугу. Разрушите его уверенность, карьеру и любовь к отрасли. Не отнимайте самодостаточности. Будучи менее опытным участником, со своей стороны, не поддавайтесь на попытки помочь и «заменить» вас без полного понимания и способности повторить. Позвольте учить, не позволяйте делать. Считайте, что IT в данном случае – индивидуальный спорт: ваш мозг должен работать, и чужим мозгом его не заменить.

Союз двух похожих рабочих представителей подчас требует больших усилий для сохранения «work-life balance» и защиты от выгорания, нежели иные комбинации. Помните об этом тайном недруге полноценной жизни, старайтесь говорить на рабочие темы в лимитированных количествах, не забывая об иных гранях. Постарайтесь сразу почувствовать и держать комфортный баланс. Иначе вы рискуете ощутить себя в один момент в окружении только работы, когда в жизни нет больше ничего: ни увлечений, ни мини-бизнеса, ни друзей, ни общения. А скатиться в такое состояние несложно – поверьте, в IT есть чему увлечь вас на фултайм и до конца ваших дней. Хабр на завтрак, рабочий день, пробы новых фишек и изучение смежных областей вечером – ведь многие справедливо боятся остаться ограниченным только своим фреймворком, языком или направлением, отстать от отрасли и стать невостребованным. Обсуждение своей профессиональной сферы за обедом на следующий день – и в вашей жизни нет больше ничего. Но вы остались на уровне. Просто в теме. И это хорошо, вас найдут и предложат другую работу. И на этом всё. Гуляйте, путешествуйте – работайте для жизни и не живите для работы. Тогда вас скорее посетят свежие мысли, и вы сами, не задумываясь, обойдете других.

Ведь мы помним: самые уникальные открытия совершались людьми на стыке дисциплин. Читателей Хабра много. Читателей и кролиководов намного меньше. Это ваш шанс, ваша неповторимость. И ваша полноценная жизнь.

Советы в конце подраздела

–› Будьте толерантны и чувствительны к коллегам.

–› Сохраняйте контроль.

–› Не дайте отношениям причинить вам вред.

–› Оставайтесь профессионально самодостаточны.

Собеседования

Repeat, please.

Одним утром меня разбудил телефонный звонок из Сиднея. Сонная, с заплетающимся языком, я пробормотала приветствие. «Слишком рано?» – поинтересовался на том конце провода веселый энергичный голос из другого полушария. Пожалуй, рано было не слишком, особенно по не-IT-шным меркам, – часов девять утра, – но вот слишком пугающе и неразборчиво – это бесспорно. Таким нестандартным пробуждением я была обязана своему согласию, данному накануне в LinkedIn’e австралийскому рекрутеру. Он находился в поиске фронтенд-разработчиков в одну неплохую фирму, довольно технологичную по уровню продукта, составу команды и космическую по уровням зарплат, особенно для России. Имея давнюю симпатию к континенту с кенгуру, я решила – почему бы и нет? По крайней мере, опыт общения на английском виделся мне, тогда возобновившей активные занятия языком, весьма познавательным. Однако, говоря без труда со своим преподавателем и иностранцами на отдыхе, читая и смотря фильмы – впрочем, не без словаря, – здесь и сейчас я не понимала практически ничего. Кроме приветствия и общего тона беседы – пересказа вакансии – все детали ускользали от моего слуха. Ситуация осложнялась телефонной связью, потери даже незначительных кусков, незаметные при русской речи, здесь играли критическую для общего понимания роль. Отдельным сюрпризом оказался австралийский акцент. Хорошо знакомые английские слова в его исполнении сливались в единую неразборчивую кашу без четкой дикции и с отсутствием ожидаемых звуков. Даже фраза приветствия была нестандартной для британского английского. Только проведенная накануне подготовка позволила мне спасти ситуацию от полного конфуза.

Готовьтесь к собеседованиям. В первую очередь, само собой, технически. Я всегда стараюсь узнать перечень стандартных вопросов, задаваемых в конкретной компании, и примеры задач для написания кода. Как правило, солидные корпорации, например, Яндекс, открыто размещают подобную информацию на своем сайте в специальном разделе, а также сообщают примерные направления беседы и характер заданий в сопроводительном письме. Более того – даже прикладывают онлайн-ресурсы, подходящие для тренировки решения аналогичных задач. Если в вашем случае такая информация не предоставлена – уточните. Найдите самостоятельно примеры стандартных вопросов в сети. Набейте руки на онлайн-задачниках: способность запрограммировать аналогичные тем алгоритмы сейчас основной критерий отбора и 90 % вашего успеха.

Что происходит после ввода адреса в строке URL? Как работает протокол HTTP? Уделите особое внимание подобным общеквалификационным вопросам. Их примеры на вооружении собеседующих меняются, но суть пока еще остается единой. То, с чем вы не сталкиваетесь каждый день в работе, способно обидным образом ухудшить ваш результат. Просто потому, что вы заранее не подготовили связанного ответа или не вспомнили университетскую теорию – те же алгоритмы сортировок, принципы ООП и способы обхода дерева, – хотя внутри себя прекрасно всё понимаете. Увы, реалии отрасли таковы, что не всё, выявляемое на собеседовании, это ваши операционные навыки, честно работая с которыми день ото дня, вы с легкостью пройдете на любую позицию. Требования подключать фундаментальные знания, логику, находчивость подкашивают большинство практиков-виртуозов.

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

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

Не теряйтесь. На последовавшей видеобеседе уже с техлидом австралийской компании я также не разобрала львиную долю произносимых слов. Однако, понимая общее направление рассказа, я улыбалась и кивала. Переспрашивая и встревая только в двух случаях – критического непонимания или как раз-таки стопроцентной уверенности в услышанном, дабы воспользоваться этим редким фактом: показать вовлеченность и задать уточняющий вопрос. Возможно, местами я перестаралась, поскольку собеседующий не выдержал и поинтересовался, почему это я выгляжу такой удивленной и имею некий «фейспалм». На что я не преминула его успокоить, что я просто приятно взволнована сообщаемой им информацией. В том числе уровнем будущих коллег – бывших сотрудников Microsoft и других лучших корпораций мира. Впрочем, как и заработной платой – порядка 700 тыс. руб. в месяц. То обстоятельство, что неуместная мимика была вызвана частым языковым непониманием, осталось за кадром и ничуть не испортило нашей милой беседы. В результате мой, пожалуй, еще не пригодный для выживания в Австралии уровень английского языка не стал причиной позорного краха. Мне выдали техническое тестовое задание и продолжили поддерживать письменную связь – несказанное благо для умеренных лингвоэкспертов. Кстати, если у вас есть возможность, выбирайте видео-, а не аудио-, связь в собеседованиях на языке, носителем которого вы не являетесь. Визуальный ряд несет набор дополнительных невербальных символов, облегчающих понимание там, где в противном случае вам приходилось бы рассчитывать только на знание слова.

В-третьих, готовьтесь организационно. От полного провала австралийского разговора меня спасла подготовка. Я пересмотрела десяток видео местных носителей языка, чтобы привыкнуть к акценту. Нашла видеоматериалы с особенностями фразеологии: нестандартными приветствиями и частоупотребимыми фразами. Подключила своего преподавателя по английскому – она подготовила для меня набор шаблонов с вежливыми просьбами повторить, замечаниями про плохое качество связи, которые оказались как нельзя кстати. Тем не менее, почти единственным моментом, понятым мной и поддержанным в части телефонного разговора, стало весьма любопытное заявление рекрутера о том, что сейчас они ищут исключительно девушек. Несколько удивленная таким сексизмом прогрессивной страны, я незамедлительно переспросила: почему же? Ведь это звучит так нетрадиционно, согласитесь. Как оказалось, политика компании исходит из максимального комфортного существования в рабочих пространствах представителей любого пола. Нанимая сейчас активно девушек, они стремятся избежать гендерных перекосов в коллективе и поддерживать баланс. Согласно мировой статистике профессии девушек серьезного уровня гораздо меньше. А значит, каждая – гораздо более ценная находка и, подозреваю, объект послаблений на технических собеседованиях, нежели ни в чем не повинные разработчики мужского пола.

Узнайте заранее – нет ли подобных ценностей в вашей целевой компании. Как знать, быть может, одна из присущих вам черт или одно из смежных увлечений станут пропуском в желанный для многих мир работы-мечты. Лишь то, что вы девушка, может послужить входным билетом при равном или худшем техническом уровне. Текущий дисбаланс в IT вынуждает многих хотеть заполучить представительниц слабого пола в коллектив. Пользуйтесь.

Оцените идеологию компании, типажи разработчиков. Так вы сможете заранее прочувствовать потенциальную атмосферу разговора и лучше в него вписаться. Выясните, насколько неформально общаются сотрудники компании, насколько уместен будет юмор и в каком ключе. Помимо, само собой, изучения сайта фирмы, проанализируйте профили ее разработчиков в соцсетях. Близки ли вам их характеры? Успевают ли будущие коллеги заниматься любимыми хобби, путешествовать, или же их единственная страсть и есть профессия? Та ли это волна, что жаждете поймать вы?

Воспользуйтесь преимуществами онлайн-собеседований. Разместите памятки на столе. Небольшие хитрости с подсказками и «шпаргалки» здесь вполне останутся незамеченными. Более того, как показывает практика, даже крамольные поиски в Google могут быть пропущены собеседующим – разумеется, если у вас бесшумная клавиатура, выключенный микрофон или высокий скилл маскировки данной активности под написание кода. Однако никогда не пытайтесь изобразить намного больше, чем вы есть. В конце концов, возможно, вам действительно придется там работать.

Мне доводилось быть по обе стороны процесса. Как руководитель фронтенд-отдела, ответственный за найм, я собеседовала и отсматривала тестовые задания десятков кандидатов. Признаюсь, я сама совершала немало оценочных и субъективных ошибок, которые нередко осознаешь, лишь оказавшись на иной стороне. Однако ваше умение решать задачи, понимание по квалификационным вопросам и отсутствие зажатости – три кита успеха, на которые всегда смотрела я как нанимающий, и которые никогда не вызывали вопросов ко мне как у собеседуемого. Разумеется, всё это верно при прочем «операционном» соответствии позиции: опыте, языках, технологиях и инструментах.

На тему собеседования написаны десятки книг, вплоть до приведения конкретных задач и вопросов для тренировки, как, например, в пособии Гейла Макдауэлла «Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию». Однако надо понимать, как быстро всё устаревает. Те же логические задачи и вопросы про круглые люки, поговаривают, и по своему опыту я готова это подтвердить, давно уже не в ходу у мировых гигантов отрасли. Десятки статей с личными историями и попыткой подвести черты вы найдете и на Хабре. Здесь – мой опыт, лаконичная агрегация того, что я считаю важным для успеха, и того, что помогало мне. Я не претендую на полноту. Просто надеюсь, что, делясь ключевыми моментами, позволю вам упростить себе жизнь.

Что еще, помимо подготовки?

Покажите готовность играть по правилам.

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

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

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

Поддерживайте баланс диалога.

Уступая роль ведущего, не допускайте значительных перегибов. Подавляющие 95 процентов времени их вопросов и монологов против ваших скромных «здрасьте – до свидания», сухих ответов и ничего кроме – плохо выглядят со стороны. Делайте шаги влево-вправо по ситуации, подготовьте и задайте вопросы. Уточняйте детали в ходе беседы – об используемых версиях фреймворков, выбранных решениях, используемом стеке. Суженный контекст и прицельное замечание на технической почве – способны показать ваш уровень адекватности как коллеги и профессиональную ориентацию лучше прямых правильных ответов, даваемых каждым вторым. Любой кандидат, грустно вздохнувший о буквах IE, сверкнувший огнем в глазах на модные в компании React и GraphQL, отметивший скорость достигнутых интервьюирующей командой CSS-анимаций и прокомментировавший любопытную деталь их реализации, запомнится лучше и затронет струны личной привязанности – психология, ничего личного. И да, для этого придется препарировать сайт их компании, проинспектировать, начиная от веб-инспектора и заканчивая бизнесовыми тонкостями, продукт, на который вы нанимаетесь, – вложить лишнее время и силы. Задумать пасхалки – любопытные обнаруженные вами моменты, требующие более чем поверхностного интереса и профессиональных знаний. Невзначай подвести к ним разговор впоследствии – отличная возможность побыть серым кардиналом собеседования, не отбирая сладостной роли рулящего у вашего интервьюера.

Отсутствие живого диалога в секциях с написанием кода способно нивелировать все ваши формально верные программистские строчки. Проходя через онлайн-решения задач, я всегда рассуждала вслух, проговаривала выбранные варианты, демонстрируя заодно знание существующих альтернатив и их недостатков. А еще прибегала к любимому хаку: спрашивала, что же я еще не учла, что упустила в финальном решении, где я могла ошибиться? Разогретый режим диалога вынуждал оппонента что-то говорить в ответ и… Местами неосознанно и даже самому того не желая, неявно выдавать весьма полезные подсказки, замечания и способствовать созданию мной стопроцентно верного решения. «Что я сделала не так?» – волшебная фраза, позволяющая вам не молчать в минуты затруднения, направляющая дискуссию и помогающая – подчас запретными силами собеседующего – совершенствовать результат. А заодно продемонстрировать вовлеченность и способность мыслить.

«Увидьте» типаж собеседующего.

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

Субъективизм молодых и неопытных интервьюеров – один из камней преткновения для талантливых кадров отрасли. Простые участники команды или тимлиды, выросшие слишком быстро, не всегда истина в последней инстанции – помните это, не сокрушайтесь горько неудачам. Всегда знайте истинную цену себе.

Прособеседуйте их сами.

Насколько хорошо ваш оппонент знает продукт? Соответствуют ли его подходы вашему отношению к работе? Не раз за видимым громким именем и соблазнительными описаниями великих продуктов вскрывались мною слабые команды и нездоровые атмосферы коллективов. Не раз я чувствовала диссонанс и внутреннее отторжение – худший уровень и веющую на меня скуку от будущего потенциального места ежедневного пребывания.

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

Видя мокрую и красную меня, встречающая девушка заботливо и неоднократно интересовалась, не плохо ли мне и не нужно ли мне воды. Внимание приятное, хотя я бы предпочла не доказывать наличие связи затрудненного дыхания вовсе не с детским волнением, а с ударной пробежкой. Оставив меня наедине с новостью о скором переезде в новый шикарный офис и пачкой распечатанных логических задачек, она удалилась сменить себя техническими интервьюерами. Пока я наслаждалась неожиданным путешествием на машине времени в Google прошлого с их «круглыми люками» – благо азарт решения головоломок не чужд и мне, – в комнату гордо вошли три внушительного мышечного вида мужчины, напоминающие фитнес-тренеров более, чем представителей офисного интеллектуального труда. При виде скромной юной особы женского пола их глаза начали излучать поставленный на мне как на кандидате крест. Я остро ощутила повеявшую насмешливую атмосферу сразу же после приветствия. Дальнейшая беседа походила на попытку доказать друг другу, кто круче, и самоутвердиться за счет малоприкрытого унижения кандидата, не похожего на еще одного «качка». В процессе выяснилось, что меня собеседуют вовсе не в команду авиапродукта, которая озвучивалась рекрутером, а на иной, менее лакомый, на мой взгляд, проект. Озвучена данная информация была с удивлением и ухмылкой – куда мне на тот-то, топовый. Еще один тревожный звоночек в организационной части. Далее – очередная логическая задачка – теперь уже под кодирование, общеквалификационные вопросы, ни слова о ежедневном опыте… Признаться, я не блистала. Однако уже в начале разговора ко мне пришло осознание – одной компанией мечты стало меньше: я ни за что не хочу вливаться в сей коллектив. Они не прошли мое собеседование.

К чему в век повсеместных удаленных коммуникаций вызывать собеседуемого на подобные очные беседы? Хочется верить, что руководство той организации осознает их крайне низкую эффективность, затраты для компании и царящую ленивую атмосферу самоутверждения лидов, будто бы не стремящихся нанять к себе ни единого кадра.

Впрочем, надо отдать должное, билеты на собеседование до Москвы кандидату они оплачивали сами. Tutu.ru, как-никак. Могут себе позволить. Хотя не обошлось и без возвратов.

Вторым по яркости провальных впечатлений оказался питерский офис одной компании среднего звена. Горечь потери мною еще одного работодателя омрачалась парой просиженных над тестовым заданием вечеров – пожалуй, еще одним спорным моментом и пережитком прошлого отрасли. Вначале вскрылось, что сейчас они ищут чисто верстальщика, под словом фронтенд у них на самом деле запрятана допотопная должность создателя гипертекcтовой разметки, а JS-код пишут бэкенд-программисты. Учитывая, что успешно выполненное мною задание требовалось реализовывать на React – что несколько не вписывалось в логику происходящего, столбик привлекательности компании обрушился для меня сразу на половину пунктов. Дальнейшее «падение акций» не заставило себя ждать, как только мне довелось задать парочку технических вопросов будущей начальнице. Термин «монолитное приложение» ввел ее в ступор, возможность разработки бэка и фронта в одном репозитории, натягивая верстку поверх кода, как, скажем, во фреймворках на PHP или Ruby, оказалась ей совершенно неведома. На чем написан их бэк, она не знала. Со степенью адекватности здесь всё было в порядке – интервьюер быстро признала, что, пожалуй, мне у них будет скучно, – они не прошли по технической части. Позже мне упорно звонили, предлагая более «серьезные» вакансии уже с JS, но в молодые годы я предпочитаю компании с большим числом комнат, в которых ты не «самый лучший». Чего и вам желаю.

Третий запомнившийся «провал работодателя» касался позиции в одну телекоммуникационную фирму, обслуживающую крупных сотовых операторов. Опаздывающий интервьюер решил прособеседовать меня по телефону, в условиях прерывающейся связи, кажется, то ли на бегу, то ли из салона своей машины. Уточнив опыт работы с фреймворком Angular и получив ответ про его наличие у меня только в части предыдущей версии, он принялся упорно выспрашивать детали реализации вроде ключевых слов, названия методов и «фишечек» новой версии. Более глубоких пластов знаний, чем нагугливаемые при необходимости за пару минут ответы о тонкостях конкретного фреймворка, он вскрывать не стал. Последовавший звонок рекрутера-посредника, традиционно интересующегося, «как всё прошло», застал меня в редком состоянии – желании предоставить развернутый фидбек о методике проведения собеседований и их эффективности. Позднее со мной связался технический руководитель той компании – и после общечеловеческой беседы о продукте я получила оффер. Достойное предложение, но всё же я выбрала Яндекс. Он прошел «мое собеседование».

Сохраняйте профилактические собеседования.

Ходите на собеседования. Профилактически. Даже не планируя изначально принимать оффер. Но только в компании, где вы в принципе желали бы работать. На крайний случай, при полном отсутствии кандидатов первой категории, – в компании, где вы готовы ежедневно проявлять лучшего себя.

Поддерживайте актуальные профили в соцсетях: ВК, LinkedIn, Facebook, держите обновленным резюме. Так вы сможете оставаться в пассивном поиске и быть в курсе потребностей рынка. Сейчас частенько HR сами отыскивают вас и присылают различные предложения, и, даже если вы не планируете смену работы, – такая информация незаметно для вас приносит немало пользы. Я всегда просматриваю присылаемые мне предложения рекрутеров, особенно в части требуемых технических навыков. Процесс занимает не более 30 секунд, но это позволяет мне держать в голове соответствие текущих знаний и требований компаний разного спектра. Не прикладывая особых усилий, я получаю очень ценную информацию, позволяющую увидеть пробелы и наметить следующих кандидатов на изучение – будь то TypeScript, SVG, RxJS, монорепозитории или иные имеющие тенденцию к захвату мира технологии, инструменты и фреймворки.

Всегда отвечайте рекрутерам. Достаточно завести шаблонную фразу – я обычно использую нечто вроде «сейчас не в поиске, но я напишу вам, если ситуация изменится, – давайте оставаться на связи». При необходимости я добавляю персонализации и адресности сообщению в случае особо ценных для меня вариантов, например, отмечая, что компания и продукт мне очень интересны и я как раз имею многолетний релевантный для них опыт или познания в специфичной предметной области. Для вас – не более 30 секунд копипаста и источник пассивной полезной информации о рынке, для них – сигнал живости аккаунта и зеленого света для дальнейших предложений. Безусловно, не стоит размениваться по мелочам и тратить время на заведомо неподходящие и неинтересные вам варианты. Обратите внимание на место работы рекрутера. Если он сотрудник ненужной вам IT-компании – можете не отвечать или же явно дать понять о нежелании получать от них последующие предложения. Если же он представитель HR-агентства, очевидно, что компания и вакансии в следующий раз могут быть кардинально другими. В случае если уровень агентства по характеру компаний, с которыми они работают, вас устраивает, направьте рекрутера в нужное русло – напишите какие предложения: компании, позиции, стек – вам были бы интересны.

Оставайтесь любознательны в беседе.

Спрашивайте в ответ. Для позиций, страстно желаемых вами, сия нехитрая политика позволит собеседующему понять: вам есть что обсудить, вы в курсе отрасли. Для профилактических собеседований или же компаний, утративших ваш интерес в ходе беседы, – спрашивайте всё равно. Так, в корыстных целях, вы узнаете крупицу нового – расширите кругозор, послушаете, как устроены у них процессы, поймете, что следует подтянуть вам. Нередко найденное ценное зерно чужого опыта из отклоненных офферов способно пригодиться вам на текущем месте. Свежее дуновение любой подобной беседы «на стороне» немного переключает вас, приносит новые мысли или дает готовые решения. Внедрите услышанную систему сторипойнтов, подключите упомянутую полезную библиотеку поиска устаревших пакетов, замените все «тормозящие» и давно убранные интервьюерами CSS-свойства, нарисуйте и повесьте в комнате увиденную схему уже для своего продукта – сделайте мир своей компании чуточку гармоничнее, заслужите уважение коллег и подрастите профессионально сами.

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

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

Советы в конце подраздела

–› Сделайте собеседования вашим хобби.

–› Подготовленная случайность – залог душевного диалога.

–› Сохраняйте ночные кормления. Любознательность, я имею в виду.

Цена себе: зарплата и справедливость

В IT много платят. Так говорят. Вспоминая роскошную жизнь, яхты и рестораны, тем не менее мы чаще представляем топ-менеджеров и бизнесменов, нефть и газ. Почему? Отчасти, потому что много в IT платят не всем. Да, здесь есть хорошие зарплаты для комфортной жизни и спокойных путешествий, но разработчики так же напряженно выплачивают ипотеки и покупают продукты по акциям. А отчасти потому, что у нас другой менталитет и, порой, иные статьи расходов.

Зарплаты по отрасли, как и статистика по ним, сильно разнятся. По данным Хабр Карьера – HR и рекрутинг-сервиса с довольно профессиональным сообществом – средняя сумма получаемая в IT на руки во втором полугодии 2020 составила порядка 125 тысяч рублей. Агрегатор сайтов трудоустройств – портал trud.com, по России, в среднем, приводит цифру в 41 тысячу для IT-специалистов в целом и 59 тысяч для программистов. Среди вакансий популярного HeadHunter в порядке вещей найти предложения от 10 тыс. для стажеров и начинающих вебмастеров в регионах до свыше 500 тыс. для опытных техлидов и сеньоров. И это еще не беря в расчет космические по суммам зарубежные релокации в места вроде Австралии, превышающие 10 000 USD.

Нет смысла фиксировать цифры – ищите актуальные данные в исследованиях и блогах топовых для IT HR-агентств, в регулярно публикуемых статьях на Хабре, рекрутинговых постах на vc.ru, в открытых вакансиях и информации с LinkedIn. Детали меняются, но есть общие тенденции максимизирующие ваш доход. Главное понимать, что влияет на приближение к той части IT, которая скорее склонна задуматься о личной яхте.

Какие факторы в первую очередь влияют на зарплату?

В первую очередь опыт. Начинающие в отрасли получают сильно меньше новичков многих других профессий c даже более низким порогом входа: менеджеров по продажам или курьеров. Мизерные суммы выправляются через пару лет плотного погружения. Самый большой скачок происходит как раз между уровнями «зеленого» джуниора и обычного мидла.

Сильную разницу дают языки и стек. Сейчас наиболее высокооплачиваемые из них и склонные к дальнейшему росту популярности: Go, Kotlin, Java, Swift, Python, JavaScript. Теряющие «модность» и сопутствующие большие цифры: PHP и 1С. Нечастые, но еще востребованные и «дорогие»: Ruby On Rails, C++.

Как частный случай влияния фактора стека, фронтендеры, работающие с вебом, получают меньше бэкендеров и разработчиков нативных приложений. Менеджеры и тестировщики – еще меньше.

Сфера деятельности компании. Там, где фирмы специализируется на IT, зарплатная сетка будет выше, чем в случаях, когда разработка выступает отдаленной вспомогательной деятельностью компании. Приличные цифры будут и в крупных корпорациях, например, работающих в сфере e-commerce, с выделенным собственным и мощным IT-отделом. Государственные, муниципальные учреждения, поликлиники и школы предлагают смешные для программистов бюджетные оклады. Любая ассоциация «IT – это непрофильная для нашего финансового результата активность» снижает зарплатные коэффициенты.

Локация. Компании или заказчика. Очевидно, в офисах крупных городов вы получите больше, чем в регионах. Работая на проектах, предназначенных для европейских, американских или иных «валютных» заказчиков – еще больше. Однако разница столиц и регионов постепенно сглаживается удаленной работой. Многие выбирают оставаться в домашнем городе с дешевым жильем и меньшими иными расходами и работать на зарубежные или столичные компании.

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

Английский язык. Работа на зарубежных, более высокооплачиваемых, проектах требует общения с коллегами и заказчиками на английском. Он же необходим для получения достойных сумм на фрилансе в случае самозанятости. Как правило, уровня Intermediate бывает достаточно при готовности быстро наслаивать недостающие знания в процессе.

Дискриминация. Хоть официально её не существует, но ваш возраст, наличие детей и порой даже пол способны вносить свои корректировки. Пожилому семейному сисадмину с меньшей вероятностью повысят зарплату – кадр будет склонен все равно остаться, его не надо держать так, как молодого отовсюду соблазняемого рекрутерами и релокациями IT-шника.

Как получать больше?

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

Хорошо продать себя на старте – отличный способ существенно повысить зарплату.

Суммы, выплачиваемые разработчикам одного уровня на одном проекте, могут сильно разниться во многом и из-за текучести в IT. Если вы только пришли в компанию, дорого себя продав, вы можете получать больше уже работающих, индексация которых не доросла. Разрывы сглаживаются, если вы долго трудитесь в данном месте или фирма невелика.

Периодически проверяя «температуру по отрасли», вовремя меняйте место работы, если внутренний рост зарплаты не такой высокий, как хотелось бы, и не успевает за внешними рыночными.

Не продешевить и актуализировать — два ваших ключевых повышающих коэффициента. Верить в себя и в это поверят. Цените собственную программистскую личность.

Знайте процессы формирования и роста вашей зарплаты. Поймите правила игры. Каков процесс пересмотра, за что платят премии. Возможно, все просто и вам нужно явно попросить повышение или выполнить ожидаемые от вас KPI по минимизации багов и покрытию кода тестами. Где-то требуется личная беседа с руководителем и ваш рассказ о том, как выросли, что выучили, что сделали для продукта и чем незаменимее стали для компании. Нередко можно получить персональный список технического развития на следующий период – опорная точка следующего повышения по итогам его выполнения.

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

На испытательном сроке оплата может быть частичной, порядка 60 %, а длится он – 3 месяца. На стажировках нередко и того меньше. Оговорите четко ваши пробные сроки.

Уточните, гарантированная ли ежемесячная сумма указана в оффере? Её часть может значиться премиальной, выплачиваться при соблюдении условий или неофициально.

Пользуйтесь дополнительными бонусами. Узнайте, есть ли в вашей компании льготы на ипотеку или беспроцентные займы и какие еще послабления положены сотрудникам. Распоряжение ДМС, оплатами питания или трансфером до офиса способны неявно повысить уровень вашего дохода. Прибегайте к помощи инфраструктуры работодателя.

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

Внедряйте новое. В IT, чтобы сорвать джек-пот, некогда ждать указаний. Пока их сформируют – все изменится. Поймите потребность, проявив инициативу. Близость к руководству, без бюрократического фанатизма, и легкость общения позволяют выиграть и вам, и бизнесу от реализации свежих, идущих снизу, идей.

Выбирайте «серьезное» IT. Работа на индивидуального предпринимателя может требовать знаний тех же языков и инструментов, что и профильное IT и зарубежные проекты. Разве что более поверхностных в первом случае. Но с разницей зарплаты в 10-ки раз. При том подтянуть свой уровень в рамках того же, знакомого, стека при сколько-нибудь прямых руках сложнее точно не в десять раз.

Другой рабочий вариант – повышать масштаб. Для приверженцев фриланса – нанять менеджера, поставляющего вам заказы. Или, напротив, найти других фрилансеров, исполняющих найденные вами. Умело автоматизировав и поставив на поток генерацию сайтов на банальном Wordpress, можно заработать не хуже опытного разработчика IT-корпорации. Однако помните, высокие риски и низкая ценность вас как специалиста могут проявить себя в будущем.

Брать подработки посильно многим трудящимся фултайм программистам. А в эпоху удаленных форматов и экономии времени на поездках в офис – даже устроиться параллельно на вторую работу. Один мой знакомый разработчик вышел на новое место, не уволившись с предыдущего. Частая тенденция работодателей в IT сейчас избегать классического трудоустройства. Работа по договору оказания услуг в одной компании и стандартный трудовой договор в другой формально никак не конфликтуют между собой. На практике сложно понять, чем занимается программист в данный момент рабочего дня, если он не связан обязанностью посещать офис. Ночными коммитами, выправляющими фактическое отсутствие на одной из работ днем, никого не удивишь. Тем более если вовремя отвечать в мессенджерах. По крайней мере несколько месяцев пересечения с учетом отпусков и испытательного срока вы можете себе позволить. Главное здесь – в гонке за двойными зарплатами – не сгореть.

Культура зарплат в IT

Здесь не принято хвалиться. В первую очередь – среди своих коллег. Часто все слишком индивидуально. И часто запечатано запретами NDA. Не принято спрашивать без доли неловкости, не свойственно отвечать без размытых границ.

Переработки редко оплачиваются. Именно потому, что решение об их необходимости почти всегда принимается самим разработчиком. Гоняясь полдня за непонятным багом и мало успев, натыкаясь на тонкости фреймворка, обычно сам считаешь себя недостойным. Доделываешь вечерами, в попытке загладить продуктовую вину. Явные просьбы работодателя выйди в выходные, пожалуй исключение из собственных инициатив. Но зато оплачиваемое, как положено, по двойному тарифу.

Регулярность и стабильность выплат – приятная особенность наемного труда в IT. Но не исключены попытки сбить итоговые суммы. Штрафы редки, но имеют место быть, чаще в небольших или непрофильных организациях. А вот на площадках фриланса – не редкость.

Если оплата почасовая, требуется доказать, что ты работаешь. Специальные программы делают скриншоты рабочего стола и посылают их заказчику с заданной периодичностью. Простая гарантия целевого расходования для клиента оплачиваемых им минут разработки.

На что тратят деньги IT-шники

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

Ничто не вечно. Рост интереса к IT и, как следствие, предложения на рынке вакансий способны внести свои нерадужные коррективы в заветные суммы. Но есть и то, что куда прямее зависит от вас. Зарплата без повышений может упасть с сопутствующей инфляцией. Если вы не инвестировали в свое самообразование, не перешли вовремя на перспективный по стеку проект, а знакомые языки и привычные приемы потеряли актуальность. Не забывайте повышать свой уровень. Увы, или к счастью, он ваш главный пропуск к высоким цифрам.

Советы в конце подраздела

–› Учитесь продавать себя.

–› Справедливость определяется умением играть по правилам.

–› Инвестируйте в развитие своевременно.

Работа за границей

Когда все вокруг покупают iPhone, рано или поздно вам придется решить – стремиться заполучить последнюю модель или же делать выбор по нужному вам функционалу, оставаясь немного в стороне от вызывающих зависть тенденций. Заветная коробочка с яблоком – готовая простая цель. Достичь ее, значит получить удовлетворение от выхода на новый уровень и, что самое приятное, ощутить признание достижения от окружающих. C одной стороны, готовая планка с бонусами эйфории достижения, с другой – навязанная общественным признанием цель. Мода на зарубежную релокацию в IT не лишена тех же проблем – вызывающий восторг шаг, но нужно ли это вам?

Арбуз – довольно оригинальный способ проставиться напоследок. Тем более он виделся таким мне, тогда еще начинающему разработчику, хотя уже и привыкшему к высокой текучести кадров и частым прощальным пиццам. Откусывая очередной кусок, я традиционно поинтересовалась у покидающего нас коллеги: куда же? «Пхукет», – последовал ответ. Не припомнив компаний с таким названием в нашем городе, я уточнила: «Это в Москве?» «Нет, Лена, я уезжаю в Таиланд», – спокойно пояснили мне.

То был первый случай зарубежной релокации в моем провинциальном окружении. Затем они последовали один за другим, отражая набирающую обороты тенденцию, а чуть позже затронули и меня.

Несколькими месяцами позже мой непосредственный начальник и глава фронтенда эмигрировал во Вьетнам, в компанию электронной коммерции, затем вошедшую в Alibaba Group. Приложенные усилия на грани возможностей: интервью на английском, высокий технический уровень и решение бытовых проблем с визой и переездом, – безусловно, вызывали восторг и уважение. Спустя непродолжительное время ему удалось заманить в азиатские края еще одного нашего коллегу-фронтендера, пришедшего аккурат на его место. Уезжали лучшие. Один из самых крутых бэкендеров, побывавший на обучении в Google и открывший для меня мир фриланса, стал четвертым и пополнил ряды пхукетского офиса Aviasales, присоединившись к первому смельчаку, прощавшемуся с нами арбузной вечеринкой.

Несмотря на то, что привозимые ими гостинцы в виде червяков, тараканов и сомнительно пахнущих конфет с дурианом не впечатляли, факт их релокации казался ростом, новой планкой, которую хотелось брать мне как человеку, привыкшему бывать в первых рядах.

Я стала просматривать сайты зарубежных вакансий, возобновила занятия английским, зарегистрировалась в международных программах. Для одной из них, предполагавшей релокацию в Веллингтон (Новая Зеландия), мне даже пришлось записывать видеообращение, разъясняя свой неподдельный энтузиазм и имевшийся достойный опыт. Надо заметить, сложнее задания мне получать не доводилось ни до, ни после, – в отсутствии техники, штатива и навыков работы на камеру пришлось помучаться инженерными конструкциями из подручных средств, телефона и сделать целую серию дублей.

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

Переписки и разговоры с рекрутерами, выполнение тестовых заданий… Пока на очередном из них – в ту самую желанную многими сиднейскую Canva – не пришло осознание: я не перееду.

Исходя из коснувшегося меня опыта, релокация за границу служит двум основным «богам»: получению новых впечатлений и признанию достижения – обществом или самим собой, в том числе достижения лучшего образа жизни, будущего для вас и детей. Тех же целей почти всегда можно достичь, путешествуя, переехав в новый город и перейдя в крутую компанию.

Темные стороны зарубежной релокации – стирание предыдущих «локальных позиционных» достижений, разрывы социальных связей и чуждая культура – наивно игнорируются многими.

Будьте готовы начинать все с нуля. И начинать еще раз, окажись вы слабее, чем рассчитывали, и не потянув переезд. Заслуженное уважение коллег, ваша репутация со школьной или студенческой скамьи, работающая на вас, поскольку сокурсники теперь живут или трудятся рядом с вами, – весь этот ореол признания развеется в миг, перейди вы границу своего города. Будьте готовы снова стать никем, завоевывать доверие и привязанность заново в новом обществе. В случае зарубежной релокации ситуация осложняется еще и тем, что вам придется сменить бытовые привычки, стиль общения и даже ценности. Будучи трудоголиком, нацеленным на результат, сможете ли вы беспечно жарить барбекю в парках Австралии, где привычные нам успехи в виде собственной заработанной квартиры или солидной позиции не ценятся обществом? Будет ли вам комфортно среди атлетически сложенных бегунов в парке и ловящих мощные волны серферов не разделять эти главные хобби и цели нации? Сможете ли применить на практике постулаты Дейла Карнеги «завоевать» новых друзей, либо же – не страдать от их отсутствия?

Участник и призер чемпионатов мира по программированию, мой сокурсник, поработавший над системой музыкальных рекомендаций «ВКонтакте» и популярными продуктами Яндекса, не смог принять реалии Силиконовой долины. В своем рассказе для абитуриентов факультета компьютерных наук ВШЭ он делился опытом релокации в Сан-Франциско. Ощущение изоляции в связи с отсутствием круга общения, друзей и общих тем для разговора – социальные причины стали одним из основных мотивов не жалеть о возвращении назад. Не так легко оказалось приспособиться даже не к самой экзотичной американской кухне. Технический английский, виртуозно знакомый программистам такого уровня, на практике не покрывал потребностей многих свободных бесед. Невозможность обсудить успехи местных команд американского футбола вряд ли добавит вам комфорта и поспособствует восполнению ограниченных социальных связей. В итоге – возвращение на родину, переход в другие лучшие, но теперь уже российские компании.

Размышляя над зарубежными вакансиями, отбросив моду и подсознательное ощущение крутизны происходящего, твердо ответьте себе на следующие вопросы: какой цели вы хотите достичь, нет ли иных способов, трезво ли вы видите темные стороны процесса и готовы ли их преодолевать? Здесь, как и во многих делах, главное – определиться. И оставаться преданным выбранному курсу, несмотря на ветра подсознательной зависти или скуки.

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

К слову, половина моих бывших коллег, релоцировавшихся во Вьетнам и Таиланд, через пару лет устали от азиатской экзотики. Насытившись впечатлениями, они вернулись в «комфорт» из специфичной чуждой зоны – перебрались в более привычные нам по менталитету и уровню жизни европейские страны: Испанию и Швецию.

Жизнь в относительно небольшом городе виделась мне не столь перспективной, в том числе для будущих детей. Хотелось повысить уровень, создать лучшую площадку для их старта. Вот та первопричина, и в ее случае лучше подходила не экзотическая, пусть и вызывающая зависть и восторг зарубежная релокация в примерно равноценную по уровню жизни страну, а переезд в крупный город. Благо лично-семейные обстоятельства позволили реализовать давно назревшее желание. Так я оказалась в Санкт-Петербурге и Яндексе.

Позже волна релокаций захлестнула мое окружение с еще большей силой. Переезжали старые коллеги и новые соседи по комнате из питерского офиса. Канада, Дания и даже Люксембург – широкий круг стран развитого мира для ответственных толковых кадров. Однако меня более не посещало желание поддаться общему тренду открывшихся для IT-специалистов возможностей – на данный момент я определилась.

Буквально сейчас в момент написания я отклоняю приглашения от Новой Зеландии. Регулярно мне приходят заманчивые предложения со всего мира с целью пообщаться. Facebook не смутило даже мое декретное положение: с душевными замечаниями «конечно, семья в первую очередь» их рекрутер выражал готовность обсудить работу на будущую перспективу. Amazon, ABBYY, Intel, Alibaba, Reddit и десятки других любопытных вакансий находили меня сами через соцсети. Еженедельно я стараюсь отвечать – отказом – заинтересовавшим рекрутерам. Добавляйте HR-сотрудников в свои связи на LinkedIn, принимайте заявки в друзья от перспективных, на ваш взгляд, агентств. Давайте понять: ваш аккаунт живой. Даже если не планируете рассматривать никаких предложений. Вдруг что-то изменится, у вас всегда будет разогретая почва. Есть и еще один бонус поддержания подобной активности: в мире могут существовать вакансии и продукты, о которых вы и не задумываетесь, но, едва прочтя описание, поймете – это оно, зажигающая глаза идея, способная перевернуть вашу жизнь.

Советы в конце подраздела

–› Соразмерьте ваши цели и средство релокации.

–› Учитывайте ценности общества.

–› Регистрируйтесь в международных программах. Пробуйте. Яркие краски жизни вам обеспечены.

Детали мастерства

Однажды, стоя в очереди в столовую, я наблюдала любопытную и весьма самоуверенную тираду молодого сотрудника. Он живо описывал коллеге свои планы на организацию рабочего процесса: переложить все задачи на стажера и занять такую позицию, когда вроде он сам есть, а над чем трудится – никому не понятно. Затем, пользуясь такой непрозрачностью в части конечного исполнителя, прийти к тому, чтобы заниматься своими делами под взрощенным прикрытием. Не думаю, что его в долгосрочной перспективе ждет успех. По крайней мере, не в текущих реалиях IT-индустрии.

Соблюдайте прозрачность. Не делайте ничего объемного втихаря. Можно прочитать полезную статью между делом, но, затевая крупные траты времени, всегда нужно «продавать», согласовать их. Стремитесь держать кристальную прозрачность каждый час, каждую минуту вашей работы – менеджерам и руководителям должно быть понятно, чем вы занимаетесь в данный момент. Не доводите их до необходимости спрашивать! И тем более, не допускайте ответов, что вы и вовсе не заняты ничем из того, что они ожидают от вас. Тем самым вы вызываете недовольство руководства, путаете бизнес. В любой компании – это сильный минус и звоночек для последующего финального гонга увольнения. Вас обязательно попросят так не делать. Переводите тикеты в актуальные статусы, необходимость отвлечься на другую срочную задачу согласуйте с менеджером или владельцем продукта, разделяйте с ними ответственность. В случае экстренности хотя бы доводите смену планов до их сведения в информационном порядке, приводя разумные аргументы, почему вам пришлось сейчас переключиться на иную деятельность. О любых отклонениях от оговоренного и задержках сообщайте первыми, не ждите вопросов «почему так долго?». Это вызовет уважение, доверие и понимание, что вы контролируете ситуацию.

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

Способность заниматься важными бизнесу задачами и самому чувствовать, что приоритетнее в данный момент, – черта, отделяющая новичка от мастера. Если же вы разработчик «не первой свежести» – ее отсутствие опасный знак, выдающий в вас не лучшим образом организованного, либо плохо управляемого сотрудника. Умейте сами увидеть нужные задачи и не забывайте «продавать» их. Таков следующий уровень.

Забудьте про оправдания. Признавая ошибки, не крутите хвостом. Не сделали? Не сделали. Забыли? Так и скажите. Не учли? Признайте. Не тратьте ни свое, ни время коллег на детские попытки притянуть за уши обоснования вашему провалу. И тем более не ищите виноватых среди ваших напарников. Даже если это так – время расставит всё на свои места, а ваш сдержанный нейтралитет скорее завоюет уважение, нежели явные указания пальцем. В конце концов, если вы оказались «на ковре» по милости нерадивого коллеги – значит, и вы сделали что-то не так, доведя ситуацию до пиковой точки. Не предвидели, не предупредили владельцев продукта вовремя, не скорректировали поведение команды. Если видите причину неудачи – всегда доносите ее до руководства: явное вам изнутри не всегда столь очевидно им. Обсуждайте меры по улучшению в абстрактных лицах. Указывайте на несовершенство процесса, невыполненные в срок этапы работ, а на ответственности за них того самого нерадивого коллеги не стоит акцентировать внимание – менеджеры сами легко сложат «два плюс два». Будьте кратки, конкретны и беспристрастны. В первую очередь к самому себе. Лепет оправдания всегда выглядит жалко и отдаляет вас от ореола профессионализма.

Работайте на совесть. Никогда не делайте плохо. Конкретизируйте требования, отказывайтесь идти на поводу у постоянных дедлайнов. Быть может, раз или два наскоро встроенный костыль и сойдет вам с рук. Но со временем некачественный, тяжело поддерживаемый код обязательно всплывет, и вашей репутации будет нанесен серьезный урон. Уметь быстро поставить заплатку и спасти ситуацию на продакшене – полезная черта, особо любимая менеджерами и руководством, вытягивающим бизнес любой ценой. Да и натренированный навык оперативно мыслить в стрессовых ситуациях, безусловно, выдает в вас неплохого специалиста. Однако если вам раз за разом не удается вернуться к проблеме и переделать ее решение на совесть – бойтесь таких продуктов. Почти всегда они обречены на провал в недалеком будущем. И, что хуже всего, обречены ваши профессиональные навыки – проектирования, качественной разработки и рефакторинга. Сегодня не хотите, завтра уже не можете.

Работайте больше. Нет проще способа вызвать расположение коллег на новом месте, чем задержаться на часок. Не справляться с работой это одно, однако проявить инициативу и чуть засидеться над изучением нового продукта или решением не срочных, но важных проблем старого – мне доводилось заставать за подобными занятиями только лучших программистов. Если же вы только начинаете свой путь и «оверджобы», скорее, вынужденная мера – что ж, хотя бы заработаете репутацию ответственного и старательного кадра. И не забудьте после перестроиться и использовать в дальнейшем переработки только для «сверхцелей».

Мелкие дела должны быть переделаны в рабочие дни и, крайне желательно, часы – необходимое условие поддержания себя в тонусе. Выходные за работой, которую от вас ожидают в будни, – либо вы так и не научились верно оценивать сроки, либо не научились отстаивать их под давлением менеджмента, либо вы просто-напросто не тянете занимаемую позицию.

Наслаждайтесь подработкой. Квартальная зарплата за один вечер – приятный бонус узкоспециализированных знаний. Именно столько удавалось зарабатывать мне, настраивая открутки реклам в HTML5-плеере. Когда качественных опенсорс-решений с поддержкой последних возможностей стандартов VAST, VPAID рынок не предлагал, а потребности бизнеса жаждали процветания – я наслаждалась возможностью применить свои релевантные познания для нетрадиционных решений и самописных рекламных модулей, поддерживающих фичи, которых еще не было у большинства конкурентов. Модификации отправки статистики, разбирательства со сложными неработающими креативами, поддержка более чем одной рекламы подряд по новой версии стандарта и постоянная борьба с браузерами за автоплей видео – ситуация напоминала вечную гонку криптографов и криптоаналитиков. Кстати, довольно интересно описанную в «Книге кодов» – одном из моих любимых студенческих чтений.

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

Заведите пет-проекты. Если с заказами от знакомых пока туго или желание связывать себя обязательствами день и ночь отсутствует напрочь, подумайте о проекте в качестве хобби.

Острая потребность делать что-то руками, приведшая меня к изготовлению нашивок, принесла немало пользы и моему профессиональному опыту в целом, и текущему продукту в частности. Хендмейд для многих не столь увлекателен, если некому им похвастаться, или же – в случае людей как и я, грезящих своим пусть и мини бизнесом и наличием альтернативного пассивного источника дохода, – если некому его продать. Продажи требуют распространения информации – банально рекламы, путеводной нитью ведущей целевые аудитории в ваши руки. Поскольку последними, к сожалению или к счастью, в современном мире служат «посадочные страницы» и всяческие социальные и групповые интернет-представительства – то бедному IT-шнику, мечтающему выпустить из рук тачпад или мышь, променяв их на иголку или рубанок реальной жизни, – увы, очень скоро приходится воссоединиться со своими цифровыми мучителями. Стремясь всячески избежать участи быть разработчиком еще и для собственного сайта и оставить сие хобби, призванное изначально добавлять перезагрузки от IT-жизни, в плоскости реальных материй, я делегировала задачу заведения лендинг-пейджа своему молодому человеку. Дабы скрасить его, по странному стечению обстоятельств тоже IT-шную, жизнь столь рутинным заданием, мы затеяли спор. Удастся ли нам за час создать себе с нуля мини-сайт одностраничник, развернуть его на хостинге и поддержать минимальное SEO, и кто, я или он, сделает это быстрее. Он выбрал накидать вручную html-разметку, взяв один из бесплатных CSS/JS шаблонов верстки, скачанных на просторах сети. Мой способ был еще ленивее: бесплатные конструкторы вроде WIX. Признаться, я особо не старалась и благополучно осталась в проигравших, оставшись в праведном шоке от качества выбранной категории инструментария. Однако даже с полученным готовым простеньким решением мне потребовалось в дальнейшем настраивать аккаунты в Яндекс. Метрике и Google Analytics, мониторить целевые запросы и заводить таргетированные рекламные кампании в Instagram’e и «ВКонтакте». То оказался чудесный повод актуализировать вебмастерские знания и прикоснуться к рекламной аналитике: расширить рабочий кругозор смежными знаниями, шагнуть чуть в сторону ежедневных задач, взвешеннее и многофакторнее принимать решения – черты, присущие тимлидам и скилованным разработчикам. Ведь нет для новичка задачи проще, чем добавить кнопку, и нет ничего сложнее добавления кнопки для опытного разработчика.

А еще мне довелось выступить в роли стороннего пользователя для одного из продуктов, в разработке которых я участвовала: Яндекс. Форм. Десятки созданных форм в рабочих целях, сотни прогнанных тестов, против всего одного флоу добавления формы обратной связи на свой пет-сайт – и россыпь идей, кажущихся несовершенств и острых пользовательских потребностей явно очертились перед моими глазами. Почти все из них были впоследствии претворены нами в жизнь, в частности возможность оплаты, отсутствующая у конкурентов.

Наличие пет-проекта – антисимптом выгорания. Мысль об открытии редактора с кодом вне рабочих часов, приводящая вас в ужас, – тревожный звоночек, особенно для IT-специалистов моложе предпенсионного возраста.

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

Не подключайте библиотеки слепо. Оценивайте, что внутри, – то зерно сути, которое решает вашу проблему. Весьма вероятно, что достаточно подсмотреть всего одну нужную вам волшебную строку и не тащить к себе весь груз. Не исключено и наткнуться на уязвимости, недобрыми намерениями вставленные дыры, рекламные «пасхалки» или заведомое легаси. Хороший мастер всегда избегает черных ящиков. Даже если вы убедитесь в сложности и/или затратности самописной реализации, вам никогда не будет лишним знать, что там «под капотом».

Разрабатывайте знания, как карьер. Если копать только вглубь, стены обрушатся – хрупкие узкие знания (названия функций и ничего больше) быстро устареют, и вам будет не выбраться без опоры на понимание (аналогов в других фреймворках, решений «с нуля»). Если вширь – вы рискуете никогда не найти ценное, не набрать крупиц породы, «фишек и секретов», делающих мастера таковым. Уходящие в недра знаний конусообразные ступени – залог надежности вашего профессионализма.

Детализируйте суждения соразмерно уровню. Если вы новичок в отрасли или даже профессионал, но на новом месте работы, другом продукте либо в малознакомой вам предметной области, – избегайте оценочных суждений. «Это просто», «месяц работы», «невозможно» – емкие простые оценки, вызывающие, на первый взгляд, уважение коллег, экономящие время команды и окутывающие вас ореолом профессионализма, могут сыграть злую шутку, ошибись вы хоть раз. Кратко излагающему профессионалу верят еще и потому, что в данном коллективе он притерт, испытан временем. Никогда не вешайте ярлыки, не будучи убежденным на 121 процент. Являясь новичком, разворачивайте вслух цепочки ваших умозаключений и финальный вывод. Так вы оставляете возможность более опытным коллегам скорректировать рассуждения, лучше понять «кухню» самому, заодно продемонстрировав способность и желание мыслить. А еще – дать окружающим представление о складе вашего мышления с целью налаживания взаимопонимания в дальнейшем. Имея же многолетний опыт и релевантные знания – позвольте всем восхищаться меткостью ваших фраз. За брошенными вскользь «полчаса» и «невозможно» пробегающему мимо менеджеру скрываются мощная база знаний, огромная ответственность и ваша репутация. Будьте кратки как профессионал. Шерлок Холмс завоевал завидное для многих амплуа именно за счет выкидывания промежуточных рассуждений из информации, предоставляемой им на всеобщее достояние.

Не избегайте пути первопроходца. Название компании, ставшей моим первым серьезным рабочим местом, вряд ли скажет что-то даже неплохо знакомому с рынком IT-шнику. Однако именно в ней – узкоспециализированной и известной лишь в кругах видеохостингов и онлайн-вещаний – происходили погружения, велись исследования и случались такие увлекательные открытия, что многим гигантам отрасли не грех было позавидовать. В первые годы после 2011-го – время зарождения интереса к телевизионной разработке – мы знали больше про Smart TV приложения, чем можно найти в Интернете на официальных сайтах для девелоперов Samsung, LG и Philips. Тогда, создавая первые ТВ-представительства для портала Videomore, телеканалов типа СТС, и других крупных поставщиков медиаконтента, о красиво сверстанных онлайн-документациях нам не приходилось и мечтать. Сакральные знания собирались крупицами через одно-единственное окошко: форумы разработчиков с членством официальных представителей компаний. PDF-мануалы высылались сотрудниками поддержки компании лично, по отдельному запросу. Надо сказать, что ничего увлекательнее и удивительнее создания приложений под те первые версии Smart TV-платформ мне делать, пожалуй, не доводилось. Действительно, сложно было сдержать удивление, когда в век становления мощнейших браузерных анимаций новенькая модель Philips 2012 года не была способна отрендерить на странице – каталоге видео с превью – несколько картинок одновременно. Приходилось разделять запросы за изображениями таймаутом, иначе интерфейс тормозил до такой степени, что пользоваться им и видеть бесконечные прелоадеры становилось просто невозможно. Телевизоры тех лет – настоящая машина времени, уносящая разработчиков на 10 лет назад. Абсолютное позиционирование в верстке, старенькие и урезанные версии браузерных движков под капотом… казалось, конкурировать по темпам прогресса с ней могла разве что кроссбраузерная верстка писем. Те, кому хоть раз доводилось прикоснуться к святому граалю выживания табличной верстки в почтовых клиентах в годы флексов и гридов, – легко прочувствуют атмосферу.

Для тестирования внесенных изменений и проверки приложения на ТВ требовалось скопировать его на флешку, причем положить очередную версию следовало в папку с определенным названием, которая в свою очередь размещалась в папке – также с волшебным именем, а та – в еще одной. Тонкости разнились по платформам и быстро эволюционировали, не всегда спеша доступным образом уведомлять об этом разработчиков. То менялось название магических директорий, то способ их установки на самом ТВ – да-да, помимо прочего, требовалось проделать еще десяток манипуляций в интерфейсе устройства, чтобы приложение установилось или обновилось. А то и вовсе пропадала поддержка USB-носителей, и все сборки приходилось загружать на специальные сервера через сайт для TV-девелоперов платформы. Каждая такая операция на каждой платформе имела склонность не работать. Просто не делать очевидно от нее ожидаемое: «увидеть» обновленную версию приложения, запустить очередную сборку, подконнектиться к ПК или серверу. Только внутреннее чутье и передаваемый из уст в уста тайный опыт позволяли выживать в мире ТВ-разработки. То требовалось обязательно изменить название приложения, то указать порт для соединения, то проставить секретную галочку. Лидером по сюрпризам и скорости их изменения, пожалуй, был Samsung. Модель каждого года неизбежно меняла свою цепочку танцев с бубном. Возможность просто закинуть код на флешку, вставив ее в ТВ, быстро сменилась необходимостью синхронизировать приложения со своим рабочим сервером. Разумеется, выполнив предварительно ряд волшебных настроек на своем ПК, в интерфейсе ТВ и поменяв конфигурационный файл для очередного багфикса. А в конце 2010-х уже приходилось выполнять пачку операций по пересборке и переустановке в специально поставляемой консоли разработчиков или же в IDE. Рядышком держался LG – простота копирования на флешку сохранилась там несколько дольше, хотя и требовала постоянных пересборок через специальный сайт с выставлением определенных последовательностей галочек и выбором магических опций. Philips оставался мечтой тестировщика, пожалуй, дольше всех. Достаточно было запустить веб-страничку приложения на своем локальном веб-сервере и для открытия его на реальном ТВ требовалось всего лишь ввести IP-адрес вашего ПК, доступный внутри сети. Другой вопрос, что ввод двоеточий, слешей и прочих символов с телевизионного пульта – то еще удовольствие, по удобству напоминающее те чудесные интерфейсные решения, когда для переключения чекбокса вам приходится перетаскивать скролл или ловить бегающий по экрану мяч.

Мы опытным путем доходили до сотен мелочей, неизвестных сообществу. Сталкивались с десятками сюрпризов. Маленькая команда общалась с представителями ТВ-платформ, выясняя тонкие моменты. Помню получасовую борьбу со странным багом – невозможностью выставить выбранный элемент в выпадающем списке на одной из моделей. Простейшая операция, работающая в браузере на моем ПК («у меня же всё работает»), других платформах, но упорно отказывающаяся вести себя приличным образом на «бракованном телеке». Оказалось, что установленная на ней версия браузера, видимо, была настолько урезана в возможностях JS, что поддерживался только базовый вариант выбора свойства по индексу – работа как со списком, без именованного «синтаксического сахара».

Мы лично обсуждали с тестировщиками ТВ-платформ вопросы аппрува наших приложений и, быть может, первыми побеждали уникальные баги встроенных в них плееров – перемотки шифрованного live-потока в неверное место, подвисания и уходы в бесконечную буферизацию. И это всё: дух исследовательства и атмосфера первопроходца, неожиданные баги и вызовы службы поддержки с их любопытными причинами отказов в аппруве – добавляло азарта, добавляло необходимости думать своей головой (Stack Overflow и Google здесь бессильны) и, в конечном итоге, – добавляло мастерства.

Мне доводилось регулярно переписываться в «Скайпе» с милой девушкой из Индии, уточняя у нее детали реджекта очередной заявки, а также выясняя дозволяемые ими способы устранения. Релизы ТВ-приложений – особенно в начальные 2010-е – отдельная увлекательнейшая для познавших дзен тема. Могли ли вы представить себе, что, став уважаемым разработчиком, вы будете вынуждены составлять PowerPoint-презентации, описывая каждую кнопку и кликабельный элемент в интерфейсе – как обязательные требования релиза вашего кода? Составлять таблички с номенклатурой каждого экрана, интерактивных частей интерфейса, рисовать схемки перехода? Безусловно, учитывая единственно имеющуюся русскую локализацию наших сервисов, тестировщикам из Индии можно поставить памятник за их нелегкие трудовые будни – вряд ли бы мои пользовательские флоу оказались столь успешными, попадись мне приложение на хинди. Разумеется, у каждой платформы были свои мнения о форматах и номенклатуре поставляемых с приложением иконок, технических и интерфейсных описаний. Неизменным оставалось только стремящееся к бесконечности число заполняемых форм, прикрепляемых ppt– и xls-файлов и размеров нарезаемых пиктограмм. А еще – нигде изначально не задокументированных причин реджектов. Так, только опытным путем можно было установить, что ваше приложение не попадет в стор, если в какой-то момент на экране не окажется какого-либо элемента в фокусе. Причем фокус должен быть заметен с нескольких метров и желательно представлять собой жирнющую рамку (здесь дизайнеры грустно вздыхают) красного/желтого или очевидно контрастного цвета. Если вы случайно решили подсветить выбранный тамбнейл фильма, а заодно и кнопку «Купить» на нем – можете попрощаться с перспективой подарить новую версию приложения пользователям где-то еще на месяц: именно столько мог занимать каждый ретест, нередко вдобавок требующий личных напоминаний и «подпинываний» поддержки. Почему? Понятное дело – потому что теперь у вас одновременно два элемента в фокусе.

Мы репортили баг с переключением форматов видео в Firefox. Как только DASH и Widevine DRM наметились в качестве жизнеспособных реалий бизнеса, мы стали плотно тестировать наши доработки плеера для их поддержки. Надо отметить, что возможность шифрования, в частности, получения необходимых ключей, требовала сертификации от Google и наличия в штате не менее двух сотрудников, данный сертификат получивших. Наши ребята ездили в Сиэтл, проходили обучение и сдавали тесты (успешно!) – думаю, не так много компаний в то время могли похвастаться тем же. И вот, почему-то обычный рекламный ролик, нешифрованный mp4, напрочь отказывался играть в Mozilla после основного шифрованного. Объект HTML5 видео безвозвратно крэшился после смены формата контента, приводя к невозможности проиграть ни пост-, ни мид-, ни пауз-ролл, ни, соответственно, сам контент после при попытке запуска его с какой-либо рекламой. Поскольку политика автостартов и традиционная механика работы требовала загрузки в плеер сначала основного контента, а затем уже запуска пре-ролла, то для пользователя не происходило ничего: черный экран без права насладиться хотя бы предшествующим рекламным творчеством. Серия локализующих проблему экспериментов сделала очевидным факт – баг на стороне самого браузера, в механизме смены шифрованного видео на обычное в рамках одного объекта плеера. Хотя, казалось, дизайн сайта разработчиков с их тикетами и багами не обновлялся со времени создания самого «огненного лиса» – наш репрепорт был принят сообществом. Баг исправили и включили в один из ближайших релизов браузера.

Новички могут только найти и усвоить чужой опыт. Профессионалы его создают. Для этого должны быть глубже понимание и уникальней нейронные связи. Решение нерешаемого ранее порождает яркие эмоции и повод для гордости. Придает уверенность. Является проверкой вашего уровня, преимуществом для резюме в серьезных компаниях. Дает желание расти дальше, вкус побед. Именно их вы станете вспоминать в первую очередь – не дайте серым будням поглотить вас, создавайте несуществующее.

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

Никогда не останавливайтесь. Вам будет сложно сдвинуться с места при нулевой начальной скорости. Тем более в любом не самом юном возрасте – когда первичная эйфория профессии постепенно сходит на нет. Информационные технологии – та сфера, где, даже мчась на всех парах: ежедневно решая востребованные задачи, вникая в технические посты, – не так просто угнаться за всеми новыми знаниями. Стоит вам дать себе передышку: не почитать новости неделю, не ознакомиться с особенностями последнего релиза, снова отложить на потом планы попробовать новый фреймворк, редактор кода или любопытную CSS-анимацию, – и пропасть разрастется настолько, что однажды вы рискуете осознать: я уже неспособен ее перепрыгнуть. Уходя в декрет или по иным причинам «отрываясь от производства» более чем на месяц – старайтесь хотя бы раз в неделю просматривать новостные статьи, еще лучше (непросто, я знаю!) – заведите пет-проект. Подкидывайте дров в разведенный костер. Сохраняйте инерцию.

Советы в конце подраздела

–› Трудитесь самозабвенно.

–› Кормите свои пет-проекты. Надевайте шкуру пользователя для проектов рабочих.

–› Отдыхайте на полную катушку. Ежедневно, еженедельно, ежегодно.

–› Избегайте оценочных суждений в роли новичка, будьте кратки в роли профессионала.

–› Движение – жизнь.

DEBUG

Отлаживаем баланс

Поиск: проблемы дальнейшего развития

Когда вы «оверскилд», вас не понимают в команде. Порой скука гложет вас по ночам. Интеллект не оценен, труд недооплачен, кумиры оставлены позади. Смена команды и работы – свет в конце туннеля. Обманчиво яркий подчас – непросто всё начинать сначала, кем бы ты ни был раньше.

Жизнь разработчика сейчас напоминает существование в мире, состоящем из россыпи африканских или индейских племен. Ты растешь в одном, принимаешь его ценности, учишь язык, привыкаешь называть еду вот таким словом, вот так смотреть на вступление в брак, носить вот эти украшения. А потом тебе приходится уйти из племени, решив, что мамонты на соседнем поселении водятся жирнее, столкнувшись с внешне-семейными обстоятельствами, пострадав от влияния более амбициозных соседних племен, насадивших свою религию, или же просветлев и осознав свой рост, ищешь иное и чувствуешь, что пора двигаться дальше. И вот, придя в иное племя, ты должен выучить другой язык, принять их ценности, начать называть еду иным набором звуков, молиться новым богам, хотя там – за всем этим – всё так же стоят те же законы физики, сущности, та же жизнь и смерть. Тебя откидывает назад в своем развитии, ты должен решить массу проблем базового характера, удовлетворить потребности низшего уровня пирамиды Маслоу – в конце концов, не оскорбив товарища и не нарушив никаких законов племени, не перепутав гортанных звуков, попросить глоток воды. Ты становишься никем. А между тем ты уже способен смотреть на мир шире и знаешь, что назови ты реку иным набором слогов, ничего не изменится в устройстве вселенной, но ты должен пытаться доказать членам свою ценность и играть по их законам. Осмотревшись, рискуешь осознать, как мало созидательного было в смене одного угла взгляда на мир на другой. Да, карта по-прежнему не территория.

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

Мне было тяжело. Принять скромность своей новой роли, понять переоцененность надежд о значительном повышении окружающего меня технического уровня… То, что вы делаете каждый день, на что способны – вот что главное. Ища пути дальнейшего развития, разберитесь в своих амбициях – желанное название компании или реальный каждодневный рост – что нужно вам. Второе почти всегда решается большей дисциплиной, упорным трудом и саморазвитием. Благо, что такие признанные гиганты отрасли, как Яндекс, способны создавать лучшие условия для поддержания живого любопытства к происходящему вокруг вас ежедневно. Культура устранения переработок, сказочные по-домашнему уютные офисы, разносторонне развитые коллеги – следствие грамотного поддержания «work-life balance». Сосредоточиться или обсудить вопросы, не мешая коллегам, здесь помогают изолированные переговорки, оборудованные всем необходимым от видеосвязи до канцтоваров, и многочисленные менее формальные островки с уникальными дизайнами, комфортными пуфиками и яркими диванчиками. Не отвлекаться от сути – зоны для чая и кофе с уже подготовленными фруктами и печеньями. Быстро перемещаться по коридорам – выручают самокаты. А тихий уголок библиотеки, настольный теннис, тренажеры, массажное кресло или поход к офисному массажисту при необходимости позволяют переключиться.

Отсутствие прогресса – почти всегда усталость от бюрократизма, встречающегося, увы, поверх даже самых крутых и техничных команд или от нарастающей монотонности вашей жизни. Править стоит исходные причины, не следствия. Но если вас всё же гложет мысль о смене как единственном способе роста – пробуйте. Хотя бы раз, иначе нереализованное действие разрушит вас изнутри. Да, IT не та сфера, где место назначается пожизненно. Столь сильная привязанность сейчас выглядит весьма странно. Впрочем, еще поколение – век торжества роботизации вкупе с гибкостью ума, – и подобная участь постигнет подавляющее большинство отраслей. Главное – оцените, можете ли становиться лучше на текущем месте? Единственный ли выход другая компания? От чего вы бежите? Помните о накладных расходах, способных нивелировать воображаемый вами рост.

Адаптация, новый технологический стек, в конце концов, иной стиль общения и другая ширина рабочего кресла – типаж чувствительного интеллектуала по-прежнему доминирует в отрасли – все вызывает микрорегресс продуктивности, словно непривычная рукоятка ножа в руках хирурга. Да, стоять нельзя, важно идти. И найти куда.

Со старым местом, старой сферой порой сложнее. Будучи весьма осведомленным специалистом в одной предметной области, наверняка вы чувствовали, как вам приходится вгрызаться всё глубже и глубже в твердые породы узкого каменистого туннеля. Чем дальше – тем меньше похвал, меньше дошедших туда же и способных оценить ваш путь. Каждое новое знание – тщательно собранная крупица – дается всё тяжелее. Но делает вас уникальнее и, пожалуй, послужит большим поводом для гордости в уютном кресле-качалке по прошествии десятков лет. Обратная сторона – нехватка воздуха, сил и, быть может, чуть более остро заточенной кирки, лежащей в соседнем ущелье.

Новые известные туннели, соседние племена – также развивают вас. Но не так же. Освежают взгляды, меняют перспективу, расширяют. С другой стороны, декорации отвлекают, а их рассматривание порой создает иллюзию изучения нового. Чем крупнее компания, тем больше самописных инструментов вам придется освоить. Больше поводов для радости от микропобед, забытого и желанного ощущения движения. Больше шагов в сторону. Отвлечение и суррогат тоже имеют право на жизнь – по крайней мере, они поддерживают вашу способность учиться. Главное правило реальности – не запутайтесь в своих иллюзиях.

Проблемы дальнейшего развития – удел каждого сознательного разработчика. Один мой коллега и руководитель группы однажды рассказывал, что в какой-то момент остро почувствовал нехватку идей для последующего изучения. Казалось, всё нужное ему уже известно, курсы пройдены, классика прочитана, алгоритмы наработаны. Тогда на просторах сети ему попался контакт одного из сотрудников Google. И он решил написать – обратиться с просьбой подсказать области для дальнейшего развития. Ответ был получен, и свежие рекомендации стали спасительным глотком, в конце концов приведшим коллегу в статус уважаемого разработчика крупнейшей российской компании.

Змейка шагов в сторону и вперед так или иначе должна служить вашей желанной цели. Ее конкретную схему выбирайте сознательно. Есть ли вам что сказать здесь и сейчас или пора отойти и посмотреть чуть со стороны? Главное, не прекращайте развиваться в своих поисках.

Советы в конце подраздела

–› Избегайте горизонтальных резких движений.

–› Двигайтесь, созидательно повышая уровень.

Профессиональное выгорание

Оттуда не возвращаются прежними.

Яприходила домой, опускалась на пол и в трансе сидела. Или ревела, повторяя, что я так больше не могу. Нет жизни. Подъем, клетка из офиса и единственная радость – путь до работы за рулем своего авто. Хотелось выйти на свет. Так мне виделось мое существование. Однажды пришлось сидеть на работе до полуночи после и без того напряженных недель девелопмента с ежедневными переработками и офисными выходными, а замдиректора ходила рядом и просто не давала мне уйти – сохранение отношений с заказчиком сильно зависело от текущей задачи. Кто-то из тестировщиков ночевал в офисе на диванчике для посетителей. Отнюдь не уникальная мировая практика, как я могла заключить впоследствии, глядя на фото из вьетнамского опенспейса моего бывшего начальника, делившего ночные рабочие часы с азиатскими коллегами. Но тогда, придя домой за полночь – в очередной раз сильно позже положенного, – я думала: это всё. Завтра я пишу заявление, увольняюсь… на свободу.

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

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

Экзистенциальный кризис… Программист умное существо, мы быстрее прочих задаемся вопросом, зачем это всё: Маск запускает ракеты, а я занимаюсь ничтожными, бесследно стираемыми временем вещами. Писать буковки, сидеть дни напролет в офисе, не познав мира. Один из коллег так объяснил свой уход: «Засыпая, закрывая глаза, я думаю о работе. Не о близких, не о своей жизни. Это неправильно». Я тоже часто засыпала в компании сегодняшних тикетов, стоящих перед глазами строк. Наш мозг так устроен – анализировать деятельность за день. Однажды я проснулась от мысли, что не поставила закрывающую скобку в последнем хотфиксе, а значит, выкаченный перед уходом код упадет в продакшене. Наутро так и оказалось. Случалось, лежа в постели, я вздрагивала, осознавая, что не обработала тот или иной граничный случай. И в этом нет ничего плохого – чудесная концентрация и эффективность вас как работника для нацеленных на карьеру лет. Концепция «чем больше ты убиваешься на работе, тем лучше результат» хороша, но имеет опасный побочный и отсроченный эффект. Просто отмеряйте нужный лимит от вашей жизни. Договоритесь с собой о допустимой дозе, дабы не найти себя однажды нырнувшим глубже желаемого и почти не имеющим сил всплыть к сбалансированному существованию на поверхности.

Качели, сладостно и непривычно высоко уносящие вас в самозабвенный рабочий полет, способны забросить на обратном ходу вашу жизнь в несвойственные ее размеренному ходу слои. Когда вы проходили мимо уличных музыкантов после напряженного релиза, приходила ли вам в голову мысль, что один из стоящих участников бэнда может оказаться вашим вчерашним коллегой? Однажды мой собеседник за чашечкой кофе на рабочих этажах поведал, как, устав от IT-шных перипетий он бросил всё и… ушел играть диксиленд на укулеле. Ансамбль, кстати, обладал весьма символическим названием: «Облегчение». Правда, постранствовав немного по уличным концертам разных городов и по счастливому стечению обстоятельств оказавшись в Санкт-Петербурге с его офисами известных IT-компаний, он всё же решил вернуться в программирование, дающее стабильность и финансовую обеспеченность. Пока остальные участники бенда разъезжались по домам, завершив «турне». И он обрел, быть может, больше, чем доступно среднестатистическому разработчику с размеренной жизнью: верных друзей и маленькую – и такую ценную своей свежестью и удаленностью от кода – страсть. Хобби, покоряющее улицы столиц, и по сей день живет параллельно с напряженными мозговыми штурмами вселенной IT, даря такое важное и желанное многими программистами переключение контекста. Но не проще ли было хотя бы изредка брать отпуск? Как выяснилось из дальнейшей беседы, данным инструментом разгрузки он пренебрегал на протяжении долгих лет. Когда нет профильного образования, вас «кидает» на не ставший успешным стартап, вы попадаете в поддержку ЖЖ, вырастаете там до достойного разработчика, и с каждым днем нарастает ощущение «не хочется уже ничего»… Возможно, не только отсутствие пляжа несет усталость от профессии, но я глубоко убеждена, что оно делает углы острее.

Я спрашивала. Практически у всех ответственных и опытных разработчиков, с кем мне доводилось общаться, случались выгорания. Единственным встретившимся мне исключением стала девушка-программист, спокойно пожавшая плечами на вопрос про переработки: «Вроде так у нас здесь не бывает… не знаю, не сталкивалась». При том что ее стаж несколько превышал мой временной послужной список. Хочется искренне позавидовать. А может, нет: ты оказываешься лишен чего-то, испытанного многими и сделавшего их сильнее.

Признаки выгорания

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

Автоматизм. Однажды на кухне коллега заявил мне: «Да у тебя старость мозга». Тогда за куском печенья с чаем я пыталась найти аргументы для своего отказа попробовать то ли новый редактор, то ли еще какой-то очередной перспективный инструмент. Хотя подобная оценка возмутила меня, чуть позже, усмирив свое внутреннее негодование, я вынуждена была признать: пожалуй, он прав. Только дело не в возрасте или лени, упомянутая «старость» на самом деле была пугающим и беспристрастным симптомом выгорания. Однообразие и цикличность — удовлетворение доставляли однотипные повторяющиеся действия, а не что-то новое, даже потенциально более эффективное. Сон, работа, ужин… выбор самых простых тикетов – замкнутый круг, оцепляющий ваше развитие, оставляющий на месте себя выжженное пепелище карьеры, жизни без весомого вклада, без вечного следа.

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

Обратные отсчеты. До отпуска. До выходных. До вечера. Потом до обеда. До чая. Сужающиеся диапазоны ожидания чего-то иного. Жизнь впереди, а не здесь и сейчас в омуте текущей задачи.

Крайние левые мысли. Бросить всё. Уйти делать мебель, продавать самогонные аппараты. Получить другое образование и начать всё с нуля в этой новой (непременно лишенной всех тех проблем) сказочной области. Мозг подсказывает: пора что-то передернуть.

Я сама мечтала переучиться на медика или химика и проводить в лабораториях исследования, схожие по детективному духу с поимкой багов. И только здравый смысл, осознание огромной сложности и колоссальных временных вложений для успеха, останавливали от следования крайностям.

Один мой знакомый, трудившийся в экономической сфере, решил облегчить ежедневную рутину и автоматизировать работу с помощью скриптов Excel. Сначала он увлеченно изучал его возможности вечерами. Затем – в официальные рабочие часы, что еще не выглядит столь зазорным, ведь призвано повысить эффективность выполняемых операций. Затем – вместо работы. Баланс был упущен. Прямые обязанности настолько ему опостылели, что он искал любой предлог сбежать… оставаясь на месте: не в силах признать правду, лишая себя шанса устранить истинную проблему, превращаясь в фальшивого, померкшего работника. Нет ничего страшнее для целостности вашей личности, чем врать самому себе. Закутывание в кокон легких решений искривляет ваш путь, завешивает пеленой истину. Сегодня не хотите, а завтра не сможете ее разглядеть, сами не заметите, как превратитесь в скользкого, неискреннего и противного себе персонажа. Прямота, не гнущийся в стороны стальной стержень, россыпью осколков освобождающий место для своей сильной основы, – вот что манит нас в лучших мира IT и не только его.

Как вернуть вкус к IT-жизни?

На популярных IT-ресурсах вы найдете немало историй, как люди боролись с последствиями переработок и выгорания. Кто-то говорит, что процесс занял более года, кому-то пришлось прибегнуть к услугам психотерапевта.

Однажды мне в руки попала чудесная книга Джека Шафера «Включаем обаяние по методике спецслужб», описывающая от первого лица приемы сотрудника ФБР для вербовки агентов, способы заведения доверительных отношений с совершенно незнакомыми людьми и методы расположения к себе с целью дальнейшего манипулирования. Пожалуй, она стала одной из самых ярких находок моего сознательного возраста. Думаю, ее советы вполне применимы и к установлению обоюдной симпатии с капризным миром IT. В книге описывалась история становления тесной дружбы с одной юной леди, любившей конные прогулки. Агент показывался ей на глаза в часы верховой езды. За счет выделяющихся от физической активности гормонов радости – эндорфинов – постепенно формировалось положительное подкрепление его образа. Спустя некоторое время завязывание разговора и дальнейшая эскалация доверия были делом техники.

Пользуйтесь биологическими бонусами. Свяжите бег и прослушивание подкастов, усаживайте себя за опостылевшие когда-то строки с самым ароматным кофе и самыми любимыми конфетами – пусть IT возникает рядом в лучшие с точки зрения ваших гормонов моменты. Общайтесь только с симпатичными вам представителями IT – теми, на кого хотите быть похожи в своих хобби, отношении к жизни. Прогуливаясь по ухоженным улочкам Копенгагена – загляните на местный митап. Стремление дотянуться до смежных аспектов способно распространить позитивный ореол на требующую коррекции профессиональную тему.

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

И да, всегда лучше не возвращать – не лечить, а просто не доводить до болезни.

Предотвращение проблемы

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

Какой самый необычный тикет получали вы? Как-то придя на работу солнечным весенним днем, в процессе утреннего разбора почты я обнаружила от нашего таск-трекера уведомление следующего содержания:

«Feature #65367: Носить платья

Status: New

Priority: High

Assignee: Елена Правдина

Category: Дизайн

Target version: Вне релизов

Points:?

Description: «При работе над проектом Лене обязательно нужно носить платья».

Авторство задачи принадлежало нашему находчивому, по-своему весьма талантливому и запредельно компанейскому менеджеру. Улыбка не сходила с моего лица добрых полдня – мне шли платья, и данный не раз подмечаемый факт мой коллега решил закрепить документально. Отличный способ сделать комплимент, создать добродушную атмосферу в команде и скрасить рабочие будни: платьями и смехом.

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

Не участвуйте в крысиных бегах. Исчерпывающая фраза для знакомых с основами бизнеса и философией Роберта Кийосаки, описанной в книге «Богатый папа, бедный папа». Не чужда она и миру IT. От количества мелких операций, суеты и ничтожных тикетов – пусть и заманчиво легких, – вы устанете скорее. Стратегическое планирование и действия, следующие крупной цели, заземляют вас, делают существование осмысленнее. В минуты душевных терзаний и мыслей о тщетности бытия вы всегда сможете ответить себе на вопрос, зачем всё это. У вас всегда будет что-то за душой. Воспоминания об одном из больших «дел всей жизни», намеченных мной, не раз поднимали настроение, спасали в тяжелые дни декрета и послеродовых депрессий, напоминали, что помимо рутинной уборки и кулинарии у меня есть что-то более значимое, отличающее от остальных, тех, кто растрачивает минуты здоровья и отмеренного времени на быт и рутину, на развлечения и скучные тикеты. Заведите цели хотя бы на один метауровень выше зоны риска выгорания. Тогда вам будет проще найти смысл очередного дедлайн-проекта на наемной работе, пока вы стремитесь открыть свой хобби-магазинчик. Вам удастся подпитать любовь к IT в ходе скучных рефакторингов, пока вы жаждете провести мастер-классы по программированию для африканских детей.

Ходите на курсы, учите языки, читайте, занимайтесь спортом, смотрите фильмы. Все это создает ваш общий тонус – умение крутиться, успевать, выполнять разноплановые активности. Что, в конечном итоге, повышает и скорость решения рабочих задач, и способность поддерживать параллельность процессов: делать фичи, вести обсуждения в чатах, не забывать о срочных багах и готовиться к мероприятиям. Со временем я выработала для себя и закрепила на видном месте план «идеального» дня. Согласно нему, ежедневно, помимо работы, я должна была найти время на:

– хотя бы получасовую зарядку;

– продвижение английского языка: занятия на курсах, или, в дни их отсутствия, на самостоятельное изучение новых слов, чтение или фильм;

– просмотр Хабра и поддержание себя в курсе новостей;

– чтение. При этом всегда я стремилась параллельно держать 2 книги «в процессе». Одна из них обязательно не-IT-шная: биографии известных и не очень, достойных уважения личностей, мировая классика, научно-популярная литература по биологии, химии, космонавтике. Книги о том, как разрабатывались вакцины и шла «охота на микробов», как рассуждал Хокинг в своих трудах, гений ли Тесла или умелый пиарщик – те самые мостики к новым нейронным связям. Вторая – профессиональная: новый стандарт JavaScript, NodeJS, GIT, CI, архитектура приложений, паттерны разработки, классика рефакторинга и совершенного кода, прохождение собеседований, документация нового фреймворка, очередные хитрости верстки и т. д.

Простой список помогал придерживаться излюбленной китайской мудрости: «Не страшно медленно идти, страшно остановиться».

Не перерабатывать и отдыхать. Да, опять и снова про отдых! Не все могут, как Маск и Джобс, ночами жить в офисе. Не все легко справляются с зависимостями. Непоправимый урон здоровью способен предрешить вашу карьеру. Поверьте, вам не нужны такие навязанные решения. IT – область повышенного азарта, сродни сферам научных исследований. Да, побочным продуктом полнейшего погружения может стать революционного открытие. Но, кажется, таких случаев история знает меньше, чем драм от потери холодной головы, – хотя они бесспорно революционны, чем драм от несохранения холодной головы.

«Никакой работы вне работы», – врезавшийся мне в память девиз одного моего коллеги. Мне выделили его в помощь для совместного проекта на стыке двух компаний. Он вдохновлял меня скоростью выполнения, свежестью взглядов и умением молниеносно разобраться в чем угодно. Хотелось соответствовать, и в общих задачах мозг вкупе с клавиатурной моторикой начинали работать быстрее. Пока я оставалась настраивать нотификации проекта или корпеть над версткой слайдера внеурочно, он уходил в 19:00. И… успевал ничуть не меньше. И это было правильно. Верный жизненный тонус давал лучшие результаты, чем изматывающее высиживание лишних часов. Кстати, тот коллега рано ушел из наемного труда и, кажется, весьма преуспел в роли танцора.

Ограничить рабочие часы. Сменить место работы. Переезд? Звучит хорошо. Близкие к крайним, но действенные средства. Профессиональный рост в современных реалиях в любом случае предполагает увольнение раз так лет в шесть. Только не упоминайте выгорание.

Не забывайте про отпуск – сфера очень абстрактна. Синхронизироваться с внешним миром, найти аналогии виртуальных процессов и, как следствие, новые идеи – вот для чего он необходим вам. Все мои знакомые отмечают: голова проясняется, смелее пишутся жесткие и гораздо более истинные комментарии в тикетах, принимаются нетривиальные решения – иначе смотришь на привычное.

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

Качество отдыха определяется степенью смены впечатлений. Отпуск – это обязательно другая обстановка. Худший выбор в эти дни – не поменять ничего. Сидеть дома, в том же городе, делать те же шаблонные операции. Даже если сериалы и прогулки с псом предел ваших мечтаний, комбинезон для вашего четвероногого друга обязан едва сбросить магазинный ярлычок, а санитарные тропы – проложить себя через новый парк.

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

Переезжаете в новый город? Можете запланировать больше задач – новые впечатления скомпенсируют вашу накопленную усталость. Хотите сделать больше, открыв второе дыхание? Задумайтесь о переезде. Руководите командой? Если вам надоело искать новые кадры, вспомните: командировки и поездки на конференции способны «вернуть в строй» ваших подопечных не хуже отпуска.

Узнайте о бонусах вашей компании. Выдача акций? Возможно, она вернет вам любопытство. А случайно оставленные вне поля зрения премии и вкусные обеды порой способны подкрепить ваш боевой дух.

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

Как руководитель угощайте «плюшками» свою команду. Бодрость подопечных имеет свойство эскалировать свой позитивный эффект и защиту от выгорания – на вас самих.

Но… разрабатывая системы поощрений и выбирая критерии для оценки качества работы сотрудников, помните: если вы используете формальные метрики для умных людей – рано или поздно они будут взломаны.

«Пчелы против меда». Так не бывает. Будучи некогда толковым кадром, а теперь от усталости чувствуя себя бесполезным и находясь на грани выгорания, не спешите разочаровываться в себе, винить в непродуктивности и искать утешение совести в смене работы. Вы должны понимать, что ваша замена дорого обходится компании: пчелы не против меда. Скажем, порядка полутора годовых зарплат уходит на процесс рекрутинга и найма. Не бойтесь позволить себе ненадолго выдохнуть, замедлиться – в конечном итоге так будет лучше вам обоим.

Советы в конце подраздела

–› Создайте метацель.

–› Никакой работы вне работы.

–› Качество отдыха определяется степенью смены впечатлений.

–› Отпуск – таск с высоким приоритетом.

REFACT

Вычищаем лишнее и смотрим в будущее

Анализ

Очередной раз внося небольшую серийную правку в файлы, найденные поиском по проекту, я заметила любопытную разницу в конфигах для разных платформ. Созданные когда-то путем старого доброго паттерна программирования «копипаст», они отличались теперь на одну строчку: в мобильном варианте она отсутствовала. Всё бы ничего, если не принимать во внимание тот факт, что назначение строки-призрака сводилось к включению в сборку директорий с мобильной версией. Без них на всех телефонах и планшетах вместо части проекта – довольно крупной фичи – просто выдавалась ошибка. Мелочь, пожалуй, грустная для менеджера, позорная для тестировщика и веселая для программиста-неавтора – потеряшке шел уже третий год. Впрочем, данное обстоятельство не мешало разработчикам несколько лет добросовестно править и изменять никогда не подключаемые модули.

Теперь, имея многолетний опыт, став уважаемым программистом или руководя разработчиками, проводите рефакторинги не только программного кода, но и себя, – сбрасывайте балласт. Возрождайте полезное и забытое, переструктурируйте модели работы и жизни в гармоничных пропорциях. Дефрагментация нужна не только дискам.

Начните с крупных фрагментов – курсы, сериалы, свободное время.

Целый год я добросовестно получала второе высшее – юридическое – образование. Тогда IT еще не было очевидным и популярным выбором, а правовая карьера выглядела хорошей подстраховкой. Да и способствовала расширению кругозора. К тому же, обучение в гуманитарно-правовом лицейском классе заложило во мне интерес к основам юриспруденции еще со школы. Однако формат на «высшем» уровне стал для моего технического и «правильного» менталитета отличницы настоящим испытанием. Пока все скачивали курсовые из Интернета, я – страшно сказать – шла в библиотеку и честно анализировала юридические журналы. Впрочем, это еще полбеды. Первая и последняя в жизни полученная мной четверка на экзамене – по конституционному праву – досталась мне, единственной из группы самоотверженно сей предмет учившей. Остальные, разумеется, благополучно списали. Я же стремилась оставаться выше шпаргалок и «показного» образования. А потом бросила. «Забрала документы». Потому что поняла – нужно отсечь лишнее. Даже несмотря на наличие так рекомендуемого мной уникального стыка дисциплин: программирования и права – тот стык оказался бесперспективным. Возможность устроиться на реальную работу и глянуть в сторону спортивного программирования тогда выиграла в моем случае битву ресурсов за их разумное использование.

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

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

…И на работе. Проведите черты. Вы уже не мальчик на побегушках, чтобы работать ночью. Молча проглатывать навязанные дедлайны. У вас должно быть что-то «кроме». Установите, сколько вы готовы отдавать работе, каков процентный work-life баланс. 60 на 40? Отлично, решение принято. Осталось выторговать подходящие условия. Умение вести переговоры с владельцем продукта, начальником или работодателем – тем более на том этапе ваших отношений, когда он является наймодателем – залог вашего душевного (и финансового) спокойствия. Научитесь быть немного политиком. Сейчас самое время. Уже пора.

Мне пришлась по душе книга Кеннеди Гэвина «Договориться можно обо всем! Как добиваться максимума в любых переговорах». И нам, IT-шникам, нужно уметь торговаться, продавать себя на рынке, где два равноуровневых коллеги нередко получают разнящиеся в два раза суммы лишь потому, что один из них умеет только говорить, а второй договариваться. Способность получить заманчивый проект, разрешение прикрутить желаемую библиотеку или увидеть «зеленый свет» на переписывание (наконец!) всего проекта на новый стек – почти всегда зависит от вашей убедительности как переговорщика, ну и, быть может, совсем чуть-чуть, легкой доброй хитрости. Главное, добиваясь желаемого, всегда оставайтесь верными себе.

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

И не важно, что вы выберете дальше: погружаться в черную дыру мира IT или свернуть на новый путь, – вы всегда останетесь цельны и неотразимы как приведенный в порядок код.

Советы в конце подраздела

–› Рефакторинг не только для кода.

–› Проведите черты.

–› Добивайтесь желаемого, оставаясь верным себе.

Горизонт событий

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

Одно из главных разочарований отрасли сейчас – бюрократизация. Ее рост, к сожалению, – общая тенденция для многих новых профессий, как неизбежный цикл их эволюции. Ричард Шепард – судмедэксперт, причастный к расследованию смерти принцессы Дианы и последствий теракта башен-близнецов, сокрушался об аналогичных процессах, разрушающих его отрасль. В своем труде «Неестественные причины» он упоминает отчеты на 10 листах, заменившие в последние годы аналитический подход и азартную детективную составляющую профессии патологоанатома. Коммуникации и комплексный подход к каждой жертве с обсуждением всех деталей в компании представителей полиции стали никому не нужны – формализм отчетов убивает всё. Тогда как судьбоносные решения нередко способны нести ошибки без лишнего обсуждения и простого человеческого взаимодействия. Автоматизация отдельных фрагментов, такая удобная сейчас и, безусловно, такая важная в будущем, стирает связи между этими кусочками, пока еще не предоставляя ничего взамен. Общество научилось формализировать части, но пока еще плохо умеет автоматизировать их взаимодействия, так как это было бы под силу человеку. Не бойтесь лишний раз лично написать дизайнеру и обсудить с ним сомнительное, на ваш взгляд, положение кнопки – он, по отлаженной цепи передавая вам свой вычлененный кусочек работы – макет, может чего-то не учесть. Не бойтесь остаться старомодными там, где жизнь еще не готова привнести стоящие решения. Держите поближе мысль, что именно вы можете создать, продумать и предложить миру те недостающие формализованные связи. Не утопайте в бюрократии, не делайте презентацию или отчет, если разговор или скрипт покажут ситуацию полнее. Опасно даже начать, даже один раз… потом форма поглотит вас. Сражайтесь за здравый смысл! Донесите лучшие решения окружающим – поднимитесь на уровень выше и найдите более подходящий вариант.

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

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

IT – черная дыра, затягивающая увлеченных бесконечностью своих знаний, поглощающая ответственных скоростью своих изменений. Не падайте туда без оглядки, оставайтесь на горизонте событий: с хобби, семьей, детьми. Они несут пусть порой и серые, но краски.

Если вы выбираете продолжать идти…

Имейте хобби. Имейте другие дела. Именно сейчас, преодолев основные этапы эволюции разработчика, вы рискуете ощутить на себе всю тяжесть экзистенциального кризиса. Десять лет спустя вы уже не тот беззаботный мушкетер, на скаку пронзающий баги. Вам нужны большие победы. Что-то кроме. Коллеги, знакомые, друзья, да и я сама «в поисках гармонии» осознанно или незаметно для себя заводили увлечения, мини-бизнесы. Кто-то покупал гараж, реставрировал ретро-автомобили, кто-то собирал все возможные титулы на выставках собак и становился заводчиком. Один из моих коллег всегда повторял одну просьбу уезжающим в отпуск – привезите карандаш. Коллекция сувенирных экспонатов со всего света (признаться, есть парочка и моих) и даже посвященный им сайт – отличная разрядка, повод для радости от очередного обретения и укрепление человеческих связей. Ну а еще – готовая нешаблонная демонстрация для рекрутеров.

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

Станут ли ваши увлечения началом нового не-IT-пути – вам решать. По крайней мере, у вас всегда будет выбор.

Помните про семью

Еще до зарождения популярности умных домов я собирала на Arduino простенькие модули. Между делом и с удовольствием мне удалось вспомнить типизированные языки, что оказалось весьма кстати ввиду последовавшего вскоре прихода TypeScript – очередной пример полезного side-эффекта от наличия у вас хобби. К тому же, промышляя подобными модными в тот момент поделками, мне было бы что ввернуть в разговорах с коллегами для поддержания беседы.

То хобби особенно запомнилось мне еще и потому, что я поделилась им с отцом. Одним питерским вечером реализация небольшой давней фантазии претворилась в жизнь: дистанционный включатель для чайника на Arduino был собран. Нажатие кнопки на пульте ДУ приводило в действие шаговый двигатель с закрепленным на нем рычагом, который и совершал желаемое механическое нажатие на тумблер заветного устройства с водой. Гордая собой, я прислала фото и видео отцу. И… он не оценил. Всегда на волне инженера, он любил мастерить и радовался, как мне казалось, видеть во мне страсть к тому же. «Это всё для соцсетей», – резюмировал отец. Почему-то я едва сдерживала слезы. Мне было обидно – не такой реакции я ожидала на мои близкие к инженерным занятия. Хотя в глубине души я ощущала его потенциальную правоту: нечто показное, рассказа, а не сути ради, затесалось в моих мотивах. Со сдавленным горлом я поспешно и скомканно попрощалась. А потом он умер. На следующий день, совершенно неожиданно для всех, преисполенный здоровья, подготовленный ко встрече меня с шашлыками на праздники, после насыщенного рабочего дня и игры в теннис. То был наш последний разговор. На такой ноте мы расстались. Благодаря тому Arduino теперь, говоря с дорогими мне людьми, я всегда держу в голове: этот разговор может быть последним.

Налаживайте отношения

Встречи двух абстрактно мыслящих людей – всегда интересны. Бурные нестандартные романы и браки двух разработчиков пока еще относительно малоизученные для общества явления. Счастливо состарившиеся пары программистов, вспоминающих на лавочке забавные ассемблерные баги с ошибочной записью в регистры процессора AX и CX или удобство былых DOS-овских команд, мир вряд ли с легкостью найдет. Культ саморазвития, порой излишнее усложнение восприятия жизни, идеализм и глубина сознания, подчас граничащая с психологическими патологиями, – нередкие атрибуты средневозрастных IT-семей. Здесь, как и с прочим рефакторингом: не увязните в проблемном и ненастоящем до той степени, когда единственным решением остается начать все сначала.

Объятия, утренний поцелуй – обычное ежедневное прощание с мужем, поездка на любимом авто в офис – так начался мой один, вполне себе обычный, день. Сложно вспомнить, пожалуй, он и был таким, но вечер… Вернувшись домой и привычным жестом открыв входную дверь… нет, я не застала мужа с посторонними личностями в спальне – я не увидела ничего: ни единой его вещи. Шок, испытанный тогда, стал, пожалуй, самым сильным в моей жизни. Отсутствовали обувь, одежда, часть посуды, пропал даже чайник. Из холодильника испарилась, кто бы мог подумать, – начатая банка икры. Целый рабочий, как оказалось, взятый отпускным, день потребовался на вычищение жилища «до последнего носка» после нашего традиционного и теплого прощания. Когда сталкиваешься с совершенно неожиданным, не логичным для твоего сознания, мир пошатывается. Реальное и нереальное смешиваются, подменяя собой друг друга. Один из известных способов свести человека с ума – заменять очевидное ложным устами его окружения. Скажем, вытащить из постели с удивлением, почему он спит в вашей, положив предварительно пижаму жертвы в якобы «его» кровать. Повторять каждый день членами всей семьи. Перекладывать вещи. Напомнить о походе к зубному. Как не записывался? Если позвонить, клиника сообщит назначенные вашими руками часы.

После установившегося с мужем семейного мира моя главная просьба заключалась в призыве не поступать так впредь. Испытанное потрясение заставило меня впоследствии, порой даже неосознанно, каждый раз, открывая дверь, искать глазами вещи человека. Успокаиваться, находя всё на своих местах, понимая, что мир таков как есть, что верно трактуются отношения, я не ошибаюсь в своем понимании происходящего. Но… Ведомые шепотом звезд напарники опасны своей непредсказуемостью в жизни, в работе. Принимая послания с планеты Сириус, леча пассами рук людей и чистя чакры по выходным, можно прийти к опасным для окружающим выводам. Избегайте иметь что-либо общее с такими забавными своими странностями коллегами. Увы, выход из общепринятых норм часто сопутствует не худшим умам в наших рядах, маскируясь под образное мышление и увлечение эзотерикой. И только близкие могут увидеть суть, только ежедневные напарники рискуют пострадать. От нелогичного, невытекающего, неадекватного, скрытого. Позже случились снова: вечер с работы, дверь и… полное отсутствие личного стаффа моего законного супруга. Хотя с тех пор прошло немало лет и, благо, наш развод состоялся, порой я всё еще ловлю себя на том, что, возвращаясь домой, первым делом ищу взглядом вещи живущих со мной теперь.

Когда работаешь в абстрактных, удаленных от земного естества сферах – таких как IT, проще потерять сцепление с настоящим. Будьте особенно осторожны с эзотерично настроенными представителями нашей профессии – они могут подарить вам острые чувства, завлекающие неординарностью и кажущейся глубиной. Однако, если вы намерены лишь испытывать эйфорию от сближения с амбассадорами высоких материй, но не разделять, – это может дорого обойтись вашей психике.

Странные, «не ваши» отношения, дружбы и сложные браки – бесспорно, весело в начале пути, но вряд ли нужно вам для душевного равновесия на горизонте… Избавляйтесь от битых секторов в своем окружении без жалости и колебаний.

Есть ли жизнь после? Наследования

Дети нужны. Кому вы оставите иначе нажитые нескромными, тьфу-тьфу, пока еще, программистскими зарплатами квартиры и яхты? Просто постарайтесь сделать всё, что вы хотели, «до». Особенно если вы девушка.

Испытывая смешанные чувства неловкости и профессионального азарта, я подходила к стойкам компаний на крупной конференции JavaScript-разработчиков HolyJS. Куртка, небрежно наброшенная на выставленное вперед предплечье, с переменным успехом прикрывала живот шестого месяца. По числу решенных заковыристых задачек, пройденных викторин и выигранных сувениров от спонсоров те дни стали рекордом. Картхолдер, кружка, мячик, шесть футболок, рюкзак, хаб, зарядка и десятки мелочей, честно заработанные знаниями подводных камней языка, пополнили мою коллекцию. Да-да, драйв меценатства захватил и меня, как хобби, как разрядка, – я тоже собираю: знаковые IT-футболки, в которых бились призеры на ЧМ по программированию, оригинальные наклейки, необычные спонсорские сувениры – всё любопытное, связанное с IT. Кстати, если у вас завалялся подобный знаковый IT-стафф, вы знаете, где меня найти.

Тогда я наслаждалась соревновательным азартом, небольшими победами мозга, поймала кайф, как в последний раз, словно предчувствуя (но не веря): такой возможности больше не будет. Во время своего «интересного положения» мысли о существенном ущербе материнства профессиональному развитию казались мне преувеличенными. До последнего я посещала конференции и выступала с докладами, уверенная, что смогу расти.

На том же HolyJS я выиграла главный приз TCX Proposal ES6 – за лучшее предложение в стандарт языка JS. Среди тысяч участников конференции и десятков идей. Вариант, отправленный в последний момент, в утренней спешке, после затянувшегося свидания с керамическими атрибутами ванной комнаты, казался мне несерьезным и был, по сути, мелким дополнением в прототип объекта String, повышающим удобство и внутреннюю целостность. Я уже ушла с объявления победителей, когда меня разыскивали организаторы конференции, дабы вручить приз. Ну а потом, увы, уже не смогла посетить следующую по выигранному билету: появившийся ребенок вносит свои безапелляционные коррективы. То было главное расстройство моего внутреннего IT-шника и знаковый переломный момент.

Ребенок вам не позволит прохлаждаться за бесполезными симпатичными анимациями, холиварными статьями или чужими историями о жизни. С ним еще скрупулезно придется выбирать, на что потратить крупицы свободы. Стремясь сохранить достойный уровень, придется научиться видеть нужные, а не развлекательные знания. Чувствовать ставки, достойные единичных минут вашей жизни, отнятых от возможности потратить их на себя. И обрести сии ценные навыки стоит еще до появления на свет вашего нового и пожизненного 100500-сторипойтного проекта. Необходимость сначала кормить каждые 2–3 часа, затем занимать, развивать и обучать программированию наследника связывает руки, притупляет остроту былого ума. Даже написание книги – не самая интеллектуальная деятельность – дается с трудом: концентрация в условиях постоянных прерываний с молниеносным переключением контекста, увы, не самая сильная сторона человека. Так что IT-шная жизнь есть и после, если быть готовым к длительной вынужденной паузе, возрождению из пепла устаревших знаний и последующей работе с учащенными INT 21H.

Выводите себя в свет

Конференции, встречи бывших коллег – всё способно дать вам заряд дальнейшего движения. Порой крутым специалистам недостает признания. Они будто чахнут в единении своих сложных тикетов. Но подай им только свет софитов! «Бальный зал» званого вечера, затянутый кожей стол абстрактного элитного клуба. И неожиданно оказывается – это и было нужно, чтобы переосмыслить свои позиции, найти точки развития, привнести необходимые связи, поддержать мотивацию и идти вперед – быть может, к строкам поворотного для общества продукта.

Три дня заучивания текста презентации, мокрые трясущиеся руки со спасительными листочками, неестественный напряженный вид и абсолютная скованность на вопросах из зала – мое первое публичное выступление в качестве фронтенд-разработчика перед студентами технического университета. Ужасная неловкость и стыд – основные столпы того «маложеланного к воспоминаниям» опыта.

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

С тех пор я побывала докладчиком не на одной конференции и взяла за правило регулярно выступать с любопытными материалами по узким темам перед своим отделом.

Выступайте, когда уже обрели опыт. Спикерство переключает на другой характер деятельности, привносит часто забытый сеньорами вкус первых побед и осознание: вы способны не только сидеть перед экраном. Попробуйте, и вам обязательно понравится ощущение признания и восполнение глубоко закопанных в нас современным миром социальных потребностей. Мы, разработчики, командные единицы в контексте проектов. Не избалованные направленным на нас светом софитов, мы острее наслаждаемся концентрированным потоком внимания с оттенком почтительности и открытыми ртами, внимающими нашему рассказу. Вдобавок ко всему публичные выступления – отличный способ прокинуть мосты к своим смежным целям: мечтай вы открыть стартап, автоматически выставляющий время на любых устройствах по солнцу – или связи со спутником – без вечных накликиваний часов и минут, у вас гораздо больше шансов на успех, упомяни вы об этом после своего доклада. Семена, разбрасываемые на любом доступном вам клочке вокруг, скорее взойдут, нежели трепетно оберегаемые вами запасы в ваших стеклянных вакуумных недрах. И дадут гораздо более необычные результаты, нежели выверенные подсадки в признанных подходящих условиях. Воспроизводя, нельзя произвести. Открывайтесь миру.

Илон Маск на одной из конференций заявил: последней профессией останется разработчик ПО. Согласитесь, чем не повод самоотверженно идти по этому сложному, меняющему и такому важному для всего человечества пути?

Советы в конце подраздела

–› Влияйте на будущее.

–› Помните истоки.

–› Воспроизводя, нельзя произвести.

Что кроме

Не все могут, не все хотят. Прокладывают запасные тропы или сворачивают на новую дорогу.

IT пока еще не единственное дело в мире. Многие уходят в куда более близкие им по духу области. Прожив яркую IT-жизнь, живут другой.

Мой скромный десятилетний опыт видел десятки успешных начал программистов и верстальщиков, дизайнеров и менеджеров в сферах, порой, казалось, удаленных от IT на тысячи световых лет.

Они уходили и преуспевали. Дизайнеры и художники популярных игр становились востребованными тату-мастерами. Вдохновлявшие меня технические разработчики перевоплощались в привлекательных танцоров. Наемные профессионалы анимаций открывали свои независимые студии. Столкнувшиеся с жизненными потрясениями программисты трансформировались в глубоких персональных коучей. Встретившиеся в пространствах IT-комнат менеджеры и дизайнеры закладывали свой успешный бизнес по продаже билетов. Хрупкие бэкендеры трансформировались в востребованных фитнес-тренеров.

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

Какова будет ваша история? Путь до конца или новый выбор?

Я часто вспоминаю отца. Спустя безвозвратно уходящее время я всё больше скучаю по нашим глубоким беседам, его вопросам. Они направляли меня, служили триггером всех переломных достижений, заставляли делать что некомфортно, чего боюсь. Его забытое признание – такое ценное для меня, как только, наконец, удавалось достичь успеха. Он был моим стержнем. Сейчас, когда отца не стало, порой мне не хватает того мощнейшего драйвера – вновь делать то, что требует колоссальных усилий над собой в попытке взять новую планку. Как-то раз в ходе одной из наших бесед на вечную тему «как жить дальше» я задалась вопросом: а как понять, делаю ли я все правильно, живу ли сейчас правильно? На что мой отец ответил: если жизнь доставляет радость, значит, ты всё делаешь верно. Если нет, значит, нужно что-то менять.

Советы в конце подраздела

–› Теплота мечты выше на весах, чем ее воплощение. Вскрывайте запасы в срок.

Вместо заключения

Всё меняется.

К концу вашей жизни вряд ли в бою останется неизменный кусок кода, написанный вами.

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

Продукты, сайты перерождаются, отмирают. Вы можете считать, что сделали достаточный вклад по пути: помогая людям решать их проблемы в свое время. Но если вы хотите выпустить в мир что-то вечное – уделите этому время, пока не поздно. Помните, жизнь не обязательно равно работа. Что вы оставите после себя? Крутой продукт, изменивший мир, удовлетворенное самолюбие и бесполезную звучную должность, или, быть может, путеводитель по технической галактике?

Азарт так часто двигал мной на работе. В расследовании причин хитрых багов, успевании в невозможные сроки, поглощении знаний, создании невозможного. И даже в ночных офисных сидениях, погоне за убегающими дедлайнами. Я получала удовольствие. Где-то в глубине меня мучает совесть – то не был труд, то было моим вечным развлечением. Игрой по постоянно меняющимся правилам: новым версиям фреймворков, очередным «единственно верным» подходам, моде, табам или пробелам. Развлечением, ничего не оставляющим за собой – годы обновлений стирают твой вклад. Здесь и сейчас мне хочется оставить что-то «после». Например, эту книгу.

Надеюсь, спустя года, увидеть каждого причастного к нашему техническому миру не в мучительной работе, но в радостной игре.

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

REVIEW

Обратная связь ценна прямотой.

Если вы хотите полюбопытствовать о деталях историй, выразить навеянные мысли, поддержать дух меценатства и передать вещичку для музея IT, сказать или спросить, а главное, просто сообщить о прочтении – напишите. Загляните на минутку отметиться в простенькой форме на сайте книги, и я буду вам признательна. Теперь вы знаете обо мне слишком много – давайте и я узнаю о вас.

way-in-it.ru

hel.jer@yandex.ru

github.com/helenjer

instagram.com/hel_jer

vk.com/elena_pravdina

Глоссарий

Agile – методология разработки программного обеспечения, обобщающее название гибких подходов, призванных быстро адаптировать процесс к меняющимся условиям и ускорить получение рабочих версий продукта.

Angular – JavaScript-фреймворк для фронтенд-разработки.

Arduino – платформа для быстрого построения простых программно-аппаратных систем, популярная при изучении электроники и робототехники.

Background – свойство CSS, определяющее вид фона элемента.

Background-size – свойство CSS, определяющее размер фонового изображения элемента.

BIOS – микропрограммы, обеспечивающие интерфейс для работы с аппаратными составляющими компьютера и подключенными устройствами.

Bitbucket – сервис для хранения кода и совместной разработки, в том числе с использованием популярной системы контроля версий Git и возможностью закрытия кода от общего доступа пользователей сети.

С++ – язык программирования общего назначения. Один из наиболее популярных при университетском обучении программированию, создании операционных систем, прикладных программ.

CI – сокращение, см. Continuous Integration.

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

Continuous Integration – подход в разработке, основанный на быстрой интеграции программных фрагментов, по мере их готовности, в общую рабочую версию продукта.

DASH – стандарт адаптивного потокового вещания через Интернет, созданный в качестве общего отраслевого решения, в отличие от HLS.

DevOps – объединение разработки программного обеспечения с настройкой среды и инструментария, необходимых для процесса создания и работы данного продукта.

DOS – операционная система, основанная на использовании жестких дисков или дискет. Зачастую ассоциируется с наиболее популярной в 1980–1990 годах MS-DOS.

DRY – принцип разработки программного обеспечения, призывающий к повторному использованию фрагментов кода вместо их дублирования, сокращение от Don’t repeat yourself.

Falcon – ракеты-носители, разработанные частной компанией SpaceX и отличающиеся возможностью многоразового использования части ступеней.

Flex-box – CSS-система компоновки элементов на странице, удобная для создания гибких дизайнов.

GraphQL – язык запросов, используемый клиентскими приложениями для работы с данными.

Grid – CSS-система компоновки, удобная для создания гибких дизайнов, и основанная на представлении страницы в виде двумерной сетки.

HLS – стандарт адаптивного потокового вещания через Интернет, продвигаемый Apple.

Hr – тег HTML-разметки, представляющий горизонтальную линию.

Gem – пакет, готовая библиотека, для программ на языке Ruby.

GitHub – сервис для хранения кода и совместной разработки с использованием популярной системы контроля версий Git.

Helmet – готовый компонент для React, позволяющий управлять заголовком веб-страницы.

HTML – язык разметки документов, описывает содержимое веб-страниц в браузере и влияет на его отображение.

IE – сокращение от Internet Explorer, браузер корпорации Microsoft, устанавливаемый на ОС Windows.

INT 21H – прерывание работы программы, позволяющее выполнить команды самой операционной системы DOS.

JS – сокращенное обозначение, см. JavaScript.

JS-специалист – программист или фронтендер, разработчик на языке JavaScript.

JavaScript – язык программирования, широко распространенный для обработки поведения веб-страниц в браузере.

jQuery – библиотека, содержащая набор функций на языке JavaScript для упрощения организации взаимодействия с HTML-документом.

Linux – семейство операционных систем, разрабатываемых по принципам свободного и открытого программного обеспечения, в отличие от систем Windows и Mac.

Live – прямой эфир, система отдачи видео конечному пользователю в режиме реального времени с места событий.

MVP – продукт, обладающий набором первоочередных по важности функций на данный момент времени, быстро выдаваемая рабочая версия, которая позволяет пользователю удовлетворить основные потребности, а бизнесу оценить эффективность; аббревиатура от «minimum viable product».

NodeJS – программная платформа для работы с JavaScript на серверной стороне.

Number – объект языка JavaScript для работы с числовыми значениями.

ОС – сокращение от «Операционная система», набор взаимосвязанных программ для управления ресурсами устройства и взаимодействия с ним.

PHP – язык программирования, один из наиболее популярных для разработки веб-проектов.

Product owner – роль Scrum-методологии, исполняющий её участник отвечает за развитие продукта.

Raspberry Pi – мощные и миниатюрные компьютеры на Linux с одной платой, удобные для обучения программированию и занятий робототехникой.

React – библиотека для фронтенд-разработки, созданная на JavaScript.

React-библиотека – готовый фрагмент программного кода для использования при разработке на React.

Ruby – язык программирования, используемый для разработки веб-проектов.

RxJS – библиотека, помогающая организовать асинхронную обработку множества событий.

Scrum – подход к организации разработки, базирующийся на принципах гибкой методологии разработки программного обеспечения, четко описывающий детали процесса, инструменты планирования, включая назначение и порядок ведения встреч, роли участников.

Scrum-мастер – участник Scrum, контролирующий соблюдение командой всех атрибутов методологии и ответственный за дальнейшее улучшение процессов.

SDK – набор средств разработки: библиотек, программ и утилит, упрощающих для программиста создание продуктов.

Select – элемент HTML-разметки, представляет собой раскрывающийся список интерфейса с возможностью выбора значений.

SOLID – краткое обозначение пяти основных принципов разработки программных систем, составленное по первым буквам названий данных принципов.

StackOverflow – популярная онлайн-платформа с системой вопросов и ответов по IT, помогающая быстро найти решение в случае затруднений и способствующая обмену опыта между разработчиками.

toString () – метод объектов в языке JavaScript, возвращающий их текстовое представление.

TypeScript – язык программирования, расширяющий JavaScript.

UX – сокращение от User Experience, опыт пользователя, определяющий восприятие и реакцию пользователя на дизайн продукта.

UI – сокращение от User Interface, пользовательские интерфейсы для программного обеспечения.

VAST – спецификация, описывающая параметры работы видео-рекламы для плеера: число и порядок показа роликов, ссылки на рекламу, время отображения плашек пропуска и крестиков закрытия, данные для сбора статистики и другую информацию.

VOD – система доставки видео конечному пользователю по запросу, как правило, подразумевается отдача с серверов ранее подготовленного медиа-файла, например, фильма, для его просмотра на устройстве.

VPAID – устаревший стандарт описания интерфейса рекламного ролика, обеспечивающий расширенные интерактивные возможности рекламы, например, встроенные кнопки, а также совместимость с различными плеерами.

Аппрув – одобрение приложения представителями магазина или хранилища приложений, необходимое для размещения в нем данного продукта.

Аппрувер – лицо, утверждающее изменения кода проекта или лицо, пропускающее новую версию приложения в магазины.

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

Баг – ошибка в работе программного продукта.

Бекэнд – часть продукта или разработки, непосредственно невидимая пользователю. Включает в себя взаимодействие с базами данных и поставку данных для фронтенда.

Верстальщик – специалист по оформлению веб-страниц с помощью CSS и HTML для придания им красивого вида в соответствии с дизайном, а также для достижения удобочитаемости и доступности пользователю.

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

Инпут – элемент HTML-разметки, предназначенный для ввода пользователем данных. Например, текстовое поле, переключатель, кнопка отправки и др.

Конфиг – набор настроек проекта, обычно размещаемый в отдельном файле.

Легаси – устаревший код или средства разработки, используются на проекте, но давно не обновлялись.

Мидл – разработчик со средним стажем в отрасли, как правило, от нескольких лет, и достаточно большим объемом накопленных специальных знаний. Зачастую мидл-разработчики составляют основную, наиболее массовую, часть состава компаний. Вторая из трех ступеней градации профессионального уровня, после джуниора и перед сеньором.

Монолитное приложение – продукт, объединяющий в едином месте все свои основные части, включая клиентскую, серверную, базы данных, которые развертываются совместно.

Опенсорс – программное обеспечение с открытым для просмотра, использования и изменений исходным кодом.

Пул-реквест – запрос на принятие изменений исходного кода в существующий проект.

Прод – см. продакшен.

Продакшен – окружение, в котором продукт взаимодействует с реальными пользователями и данными и предполагает полностью рабочее его состояние; финальная стадия внедрения изменений.

Репозиторий – хранилище файлов, содержащих код и иные данные.

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

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

Таб – символ отступа для форматирования кода, по названию клавиши Tab на клавиатуре.

Таск – задача на разработку нового функционала, его изменение или иные манипуляции с проектом. Зачастую оформляется одним из видов тикетов, наряду с багами.

Техлид – специалист с глубокими знаниями, главный в команде, нередко – руководитель группы разработчиков или продукта.

Тикет – задача, поставленная в программе-менеджере задач, с описанием необходимого результата и отражением процесса его достижения.

Фича – дополнительная функциональность сервиса, потенциально полезная пользователю.

Фреймворк – программный продукт, облегчающий разработку и определяющий структуру крупных проектов.

Фронтенд – часть продукта или разработки, видимая конечному пользователю.

Фронтенд-разработка – процесс создания клиентской, видимой конечному пользователю, части продуктов.

Фронтенд-разработчик – разработчик клиентской части продуктов. Совмещает в себе функции верстальщика и программиста на исполняемых в браузере, т. е. на стороне пользователя, языках, как правило на JavaScript.

Фронтендер – см. фронтенд-разработчик.

Хотфикс – срочное исправление критической ошибки. Зачастую не идеальное технически и являющееся временным быстрым решением.

Эникейщик – юмористическое название специалиста технической поддержки с довольно широким спектром обязанностей и низким уровнем глубоких специальных знаний, «мастер на все руки» с негативным по профессионализму оттенком в IT.

Примечания

1

Хабрахабр, habr.ru – новостной сайт с системой блогов, наиболее популярный в русскоязычном сегменте IT-сообщества.

2

Здесь и далее вы можете найти пояснения к терминам, названиям технологий и инструментов в Глоссарии в конце книги.

3

Раз два три (нем.).

4

Меня зовут Лена (нем.).

5

Я замужем (нем.).

Content

Елена Правдина
Говорят, в IT много платят
Как построить успешную карьеру разработчика, оставаться востребованным и не выгорать

Вступление

Для кого эта книга

Структура книги

Польза от прочтения

DESIGN От зарождения идеи добиться успеха в IT-разработке до первых действий

Когда начать

«А если я хочу начать раньше?»

«Хочу поменять профессию. Что, если начать позже?»

С чего начать

Как выбирать информацию и отсеивать ненужное

Закладываем фундамент

Выстраиваем стены

Настелим крышу

Добавим деталей

WRITE Обучение и переход к профессиональному коду

Базовый класс: основы успеха

Вдохновение

Усердие и глубина

Типаж

Конкуренция

Расширяем роли: смежные активности

Факультативы

Публикации

Спортивное программирование

Параллельные миры

Первая весна Естественного Интеллекта

COMPILE Основы карьеры

Выбор сборщика

Примеры бинарников

Благотворительность

Опенсорс

Фриланс

Мелкие компании

Стажировки в корпорациях

Оптимизация поведения

RUN Работа и развитие

Выбор движка

Между 0 и 1: карьера и руководство

Личные взаимоотношения

Собеседования

Цена себе: зарплата и справедливость

Какие факторы в первую очередь влияют на зарплату?

Как получать больше?

Культура зарплат в IT

На что тратят деньги IT-шники

Работа за границей

Детали мастерства

DEBUG Отлаживаем баланс

Поиск: проблемы дальнейшего развития

Профессиональное выгорание

Признаки выгорания

Как вернуть вкус к IT-жизни?

Предотвращение проблемы

REFACT Вычищаем лишнее и смотрим в будущее

Анализ

Горизонт событий

Помните про семью

Налаживайте отношения

Есть ли жизнь после? Наследования

Выводите себя в свет

Что кроме

Вместо заключения

REVIEW

Глоссарий

Примечания