В издательстве «Бомбора» вышла книга «Говорят, в IT много платят. Как построить успешную карьеру разработчика, оставаться востребованным и не выгорать» фронтенд-разработчика «Яндекса» Елены Правдиной. Представляем отрывки из главы «Обучение и переход к профессиональному коду», в которой говорится о портрете разработчика, склонного достигать успеха.
Как построить успешную карьеру разработчика и не выгорать
Алена Шаповалова
Как и в любой области, в IT можно сформировать некий портрет разработчика, склонного достигать успеха.
На тренингах по подбору персонала, которые мне доводилось посещать, составление подобного портрета и вовсе считалось необходимым шагом к успешному найму.
Технический директор
Встречайте портрет первый: технический директор. Его обязанности предполагают руководство компанией в части её стратегического технического развития.
Онлайн-галерея «Цифровые двойники». Угадай, что изображено на картинах.
Такой человек — лидер для всех разработчиков, определяющий, какие технологии, инструменты и аппаратные части будут использоваться в масштабах всей организации.
Технический директор агрегирует в себе глубокие знания программирования и бизнеса. Он решает, как выстроить архитектуру продуктов на верхнем уровне, организовать взаимодействие проектов, если их несколько и выиграть от интеграции.
Как обратить техническую конъюнктуру конкурентов себе на пользу, не упустить их лучшие решения и предвидеть развитие отрасли. Он же — активный участник управления высшего звена, ведущий переговоры с партнерами и обеспечивающий наличие перспективных контрактов.
Для работы на данной позиции вы должны сначала воспитать в себе черты всех низлежащих типажей, пусть и в быстрой манере. А затем… Интуиция, умение видеть наперед. Широкий кругозор и ваша сформированность как личности.
Как устроен иммунитет, почему Intel сворачивает линейку новых процессоров, что такое опцион — вы должны быть образованным стратегом. Если вам удается живо интересоваться, глубоко понимать процессы экономики и инженерии и вдохновлять людей — есть шанс.
Если в играх вы не терпите поражений, продумываете ходы наперед — стоит попробовать. Вы должны быть психологом второго уровня. Манипулировать людьми, понимать людей, программировать. Знать НЛП — пусть и неосознанно и не под таким названием. Уметь заводить связи и окружать себя перспективными людьми.
Уверенность, сдержанность и осознание «сейчас» и «завтра», недоступное остальным. Естественная манера держаться, речь, энергетика лидера — зачастую они либо есть, либо нет.
Признайтесь себе честно, фальшь чувствуется всегда. Ни Маск, ни Гейтс или Цукерберг — никто из них не отталкивался от внешней формы. Внутреннее содержание и сила личности уже как следствие дают нужный внешний эффект.
Что еще? Вы должны быть энергичны, быстры. Лучшие техдиректоры, которых доводилось мне встречать за карьеру, поражали способностью адаптироваться, легко принимать и пробовать новое. Разобраться в неизвестном пакете и за минуту прислать разработчику верную наводку, молниеносно обновить конфиг — отчасти следствие профессионализма как разработчика, но во многом — особо верное отношение к изменчивости мира.
Если вам присуща косность мозга, вы консервативны и предпочитаете посиживать в персональной зоне комфорта, закутавшись в уютный плед с чашечкой смузи, — вам не сюда.
Амбиции — это прекрасно, что-то из вышеперечисленного вы сможете воспитать в себе, но не лучше ли изначально честно понять себя и грамотно воспользоваться своими главными чертами?
Когда перед глазами нет образцов, когда вы юны и смутно представляете, что ждет профессионала-программиста через 10—20 лет, надеюсь, подобная информация поможет вам осознаннее выбрать цель и направленнее двигаться к ней.
Руководитель группы
Портрет второй: техлид проекта, руководитель группы. Обязанности «главного на проекте» — выбор инструментов, фреймворков и решений, оптимальных для своего продукта, и координация действия подчиненных разработчиков.
Техлид следит за целостностью, скоростью работы и качеством программного кода проекта, а также обеспечивает профессиональное развитие своих сотрудников.
Уметь быть авторитетом и учителем. Вам придется в первую очередь воспитывать вчерашних студентов или перекраивать под нужды продукта вновь пришедших более опытных разработчиков.
Техлидов редко нанимают: ими не приходят — ими становятся лучшие гибриды профессионала и руководителя. Вы староста группы, с легкостью входите в командную работу и эффективно советуете, как разделиться, чтобы выиграть? Легко находите выход из спорных ситуаций, сохраняя хорошие отношения с обеими сторонами? Тогда вам стоит взращивать эти качества и дальше.
Вы должны вызывать естественную веру людей в ваши знания.
Каждый двоечник с трепетом подходит за помощью к отличнику, цепляясь как за соломинку за возможность списать. Он верит — там будут правильные ответы и полученная информация спасет его от неминуемого провала.
Точно так же разработчики потянутся к техлиду, когда его решения верны: совет ускорил реализацию фичи, упростил поддержку в дальнейшем, просветил о неизвестном методе, вызвал «вау-эффект» у пользователей и благосклонность начальства.
Такой человек — умеющий принимать верные многофакторные решения — станет настоящим техлидом. Истина — она либо одна, либо внушаема.
Учитесь видеть единую правду или убеждать в ней остальных. Или же оставьте попытки стать тем, кем являться не в силах, и смиренно листайте дальше.
Техлид или руководитель группы всегда хранит в себе чуткость к межличностным отношениям. Способность понимать, что движет каждым, — фундамент успеха в этой роли. Важно уметь дать мотивацию любому.
Лучший носитель данного портрета исследует психологию, учится общаться и ладить с людьми, находит компромиссы между технической и полезной для продукта составляющими. Он немного политик, готов пойти на риск, не боится где-то слукавить или нарушить правила, но лишь во благо и лишь потому, что сами правила не так гибки, как того требует ситуация.
Я встречала немало крутых технических лидеров и руководителей небольших групп или продуктов. Типаж успешных людей всегда схож: уравновешенность и сдержанность, холодный ум и легкая хитрость, дальновидность и техничность.
Вариации с поправкой на темперамент случались — но, так или иначе, всем лучшим были присущи описанные выше черты. Досконально изучили язык или фреймворк для лабораторных и знаете, какие из возможностей применить для лучшей презентации задания? То, что нужно!
Но помните, если вы не есть хороший разработчик — пусть не виртуозный, но как минимум хороший, — успех не заглянет к вам в гости.
А значит, для начала следует воспитать в себе и нижеприведенные черты портрета разработчика-профессионала.
Виртуозный разработчик
Портрет третий: виртуозный разработчик. Главные обязанности программиста — создание надежного, поддерживаемого и расширяемого кода. Оптимизация скорости, рефакторинги, обновление версий пакетов и актуализация инструментов — одни из основных сопутствующих зон его ответственности.
История скорее про глубину, чем про широкие просторы смежных знаний. За вычетом, разумеется, описанных ранее бесценных ответвлений для развития прикладных интересов.
Вы сдержаны, увлечены, интровертны, упорны и щепетильны — что ж, у вас есть чудесная возможность не лезть в начальники и сделать виртуозную высокооплачиваемую карьеру ценой логического ума и преданности своему выбору.
Вы обладаете рациональным мышлением, с легкостью проходите IQ-тесты, оставляя далеко позади других участников, в дружеских отношениях с точными науками, не прочь поизучать статистику и математику без лишних принуждений, любите собирать собственно разработанные инженерные конструкции, паяете или тесно дружите с радиоэлектроникой? Тогда добро пожаловать.
В этой роли как нигде вам позволительно быть интровертом, но не «аутистом» — важно уметь продуктивно обсуждать решения с другими. Разработчики-виртуозы умеют читать чужой код, понимать его логику.
Кроссревью кода сейчас — стандарт «де-факто» любой крутой компании.
И если вы не умеете чувствовать коллег, местами быть лояльным и соглашаться с мнением, отличным от вашего, а также не склонны проявлять тактичность в критике других — вам будет трудно преуспеть.
Самодисциплина — еще одна неизменная черта лучших представителей данного вида IT-специалистов. Быть в курсе: максимально обновлять операционные знания, впитывать всё новое и держать в голове большой набор информации «в ширину» — неизбежная «домашняя работа» успешного программиста.
Победители и участники международных олимпиад по программированию, досконально знающие все базовые алгоритмы и их модификации — те, кто со студенческой скамьи днями просиживал за решением задач спортивного программирования.
Они способны комбинировать, совершенствовать непростые для понимания структуры данных, оптимизировать алгоритмы, молниеносно находить наиболее подходящий вариант для описанной ситуации. Скорость набора, горячие клавиши — каждый нюанс создает сложнодостижимый уровень.
Именно такие разработчики оказываются в ядрах ключевых для мира продуктов, способных двигать отрасль и прогресс человечества вперед. Они — те, кто тратит всё свободное время, личную жизнь на погружение в абстракции. Чаще, сродни ученым и творческим личностям, увлекаются диаметрально противоположными сферами: фотографией, музыкой, и следуют им с той же маниакальный щепетильностью, добиваясь результатов не хуже многих профессионалов.
Нашли в такой картине себя? Обратите внимание на недостающие мазки — и, быть может, вы впишете свое имя в историю разработки ПО.
Но есть и другие виртуозы, оставившие алгоритмику и олимпиады в стороне. Разработчики бизнес-решений, популярных сервисов — те, кто качественно и надежно переносят процессы реального мира в мир виртуальный. Не всем дано, не каждому интересно манипулировать алгоритмами и приближать свою ежедневную работу к реалиям спортивного программирования. Но вы всегда можете конкурировать иным непобедимым оружием — качеством.
Бизнес-разработчик
Легко продумываете граничные случаи, чувствуете связь автоматизации с предметной областью, учитываете всё до мелочей, планируете в повседневной жизни ваши действия на случай, если что-то пойдет не так в каждой итерации? Звонка в Хьюстон от вас не дождаться? Вероятно, вы станете уважаемым бизнес-разработчиком.
Они всегда адекватно оценивают сроки для менеджеров, указывают им на забытые подводные камни, отдаленные последствия принимаемых сегодня решений. Их ценят в коллективе и носят на руках владельцы продуктов. Принципиальны и ответственны, способны принять лучшие многофакторные решения с учетом как технической, так и продуктовой составляющей и обеспечить в срок MVP или даже больше.
Продукт, созданный ими, удобен для внесения изменений с появлением новых фич — понимание сферы приложения позволяет верно расставить точки расширения программ на первых итерациях. Надежность, внимательность, вовлеченность — одни из главных черт. Такие программисты болеют душой за дело, приходя домой, могут с любовью рассматривать на продакшене выложенный новый релиз.
Готовы корректировать поведение других в команде, прививать им тщательность, неумолимо заставляют на ревью переделывать недостаточно качественные решения. Со своим искренним отношением и верой качеству, что на рынке фирмам стоит положения, такой разработчик становится почетным представителем своей профессии.
Помните, что недостающие качества можно и нужно пытаться развить, если концептуально вам присущи все основополагающие черты того или иного типажа, или же вы пока далеки от описанного, но страстно желаете стать одним из них.
Стремитесь быть профессиональным программистом, но не хотите погружаться в алгоритмику? Учитесь подмечать детали и повышайте качество, осознавайте потребности предметной области и проектируйте программы, учитывающие изменения в этой самой области, на шаг вперед.
Трезво оцените, насколько вы соответствуете желанным портретам, готовы ли вы ломать себя, не испытывая отторжения впоследствии. Кем быть вам — выбирайте. Главное, не будьте никем.
Источник: