Код
#Интервью

7 этапов взросления программиста: Михаил Флёнов о пути в профессию

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

Михаил Флёнов

Автор популярных книг по программированию и защите информации. В IT с 1993 года. Работал со многими международными компаниями, среди которых Sony US — на протяжении восьми лет участвовал в различных проектах, включая SonyRewards и WheelOfFortune.

В начале карьеры Михаил писал в журналы «Игромания» и «Хакер» — вёл рубрики «Кодинг» и Hack-FAQ. Сейчас новые статьи выходят в личном блоге, который посвящён жизни и нюансам работы программиста. Ещё за контентом можно следить на YouTube-каналах «Програмысли» и «Програмысли Видеоуроки».

На канале «Програмысли» Михаил Флёнов делится опытом, рассказывает о жизни программиста в Канаде, отвечает на вопросы подписчиков и высказывается на разные IT-темы.

«Програмысли Видеоуроки» — канал об уроках по HTML, JavaScript, PHP (Symfony), Python, SQL и C#. Здесь автор делится знаниями и на простом языке объясняет сложные для новичков вещи.

Книги: livelib.ru.

Проекты: profwebdev.com, enthunder.com.

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

Например, в возрасте 1–3 лет малыш стремится всё делать сам. Если родители этому не препятствуют, то у ребёнка закрепляется уверенность в собственных силах. И наоборот: нетерпение и ругань за проступки развивают чувство стыда перед людьми.

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

Мы решили выяснить, существуют ли карьерные кризисы у программистов, и пообщались с Михаилом Флёновым. Из этого интервью вы узнаете, как Михаил начинал свой путь в IT, развивался в профессии и с какими проблемами сталкивается сейчас, несмотря на колоссальный опыт.


александр бабаскин

Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно — возможно, вы ещё не прочли его следующую публикацию.


Этап 1


Первая работа и её влияние на карьеру

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

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

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

— Повлияла ли первая работа на твою карьеру программиста?

— Думаю, сильного влияния не было. Моя первая работа была на заводе Ростсельмаш в Ростове, где большую часть времени я программировал как одиночка. Какое-то время я числился в IT-отделе, но в нём не было командной работы.

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

Михаил Флёнов о первой работе на заводе Ростсельмаша. Видео: канал «Програмысли»

— Что можешь посоветовать человеку, который ищет первую работу? Каких компаний избегать?

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

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

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

Этап 2


Роль наставника

— Был ли у тебя наставник и повлиял ли он на карьеру?

— До 2009 года я занимался десктопными приложениями, достаточно хорошо знал нужные технологии и особо не нуждался в чьей-то помощи. Всё изменилось после переезда в Канаду и трудоустройства в компанию Klick — я попал на нагруженные сайты с веб-программированием на C#, хотя до этого писал веб только на PHP и о нагрузках знал только в теории. Здесь у меня появился первый реальный наставник.

Благодаря начальнице я за полгода освоился и стал единственным программистом в команде, кто мог от разработки до запуска поддерживать проект Sony Rewards. Помимо программирования для их сайта я также отвечал за DevOps и поддержку рабочего окружения (отчасти выполнял обязанности системного администратора).

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

Михаил Флёнов о работе в Klick. Видео: канал «‎Програмысли»

— Обязательно ли программисту работать с наставником?

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

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

— Каких наставников лучше избегать?

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

— Расскажи о своём опыте наставничества. Как это происходит?

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

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

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

Этап 3


Публичная деятельность

— Зачем ты начал писать книги?

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

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

Михаил Флёнов: «Как я начал писать книги». Видео: канал «‎Програмысли»

— А что насчёт блога?

— Блог — это просто один из способов делиться знаниями. С книгой много условностей — она долго готовится к печати, нужно подстраиваться под формат издательства и так далее. Главное: не для каждой темы нужно выпускать книгу.

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

И это не считая розыгрышей книг. Вот только недавно отправил призы подписчикам в Беларусь, Казахстан и Санкт-Петербург — одни почтовые расходы превысили доходы от монетизации YouTube за последний месяц.

— А YouTube-канал?

— Никогда не думал, что меня кто-то будет смотреть. Поэтому я не появлялся в YouTube, пока популярность блога не начала падать — людям больше нравится смотреть видео, чем читать. Так я решил рискнуть и завёл канал «Програмысли».

На удивление количество подписчиков стабильно росло — это при условии, что я ничего не делал для продвижения. Наоборот: я даже опасался популярности и в первый год казалось, что сейчас набегут хейтеры и начнётся. А оно мне надо? В 2000-х у меня была неприятная история со статьёй в журнале «Хакер», поэтому я не хотел повторения и не афишировал канал, не писал комментарии и не постил видео.

К счастью, хейтеров оказалось немного. За всё время существования канала в бан попали максимум пять человек — убрал тех, кто писал гадости в комментариях.

Сейчас я по-прежнему ничего не делаю для продвижения, но и не скрываю канал.

Михаил Флёнов: история со статьёй в журнале «Хакер». Видео: канал «‎Програмысли»

— Как думаешь, стоит ли опытному программисту заводить блог, канал или писать книгу? Даёт ли это какие-то преимущества?

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

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

Михаил Флёнов о токсичности IT-сообществ. Видео: канал «‎Програмысли»

Этап 4


Карьерный рост

— Насколько легко программисту влиться в новый коллектив, при необходимости сменить работу и вернуться, если потребуется?

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

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

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

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

Михаил Флёнов: как увольняться и не оставлять осадок. Видео: канал «‎Програмысли»

— Как программисту не бояться просить о повышении зарплаты?

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

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

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

Подытожим: не бойтесь просить повышения, но делайте это тактично и правильно.

— Предположим, человека устраивает его текущая работа. В какой момент ему полезно задуматься об увольнении?

— Не знаю, когда это обоснованно. Если для программиста важна карьера и какие-то звания, то он может уйти, когда компания не помогает развиваться. Я где-то читал, что многие увольняются из-за legacy code — устаревшего кода, который перешёл по наследству от бывших сотрудников. И их можно понять: человек хочет изучать новые технологии, а приходится разбираться с чьей-то непонятной писаниной.

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

Этап 5


Пик профессионализма

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

— Именно чтобы хотел — такого не было. Я вообще мало откликался на вакансии сам, и обычно все собеседования проходили только после того, как ко мне обращались рекрутеры.

Могу только вспомнить опыт с Amazon, куда я пробовал попасть, ещё живя в России, — тогда мне казалось, что это очень крутая компания. Ответа я не получил. Однако уже в Канаде я начал работать в Klick, участвовал в больших проектах, и рекрутеры Amazon сами на меня выходили — приглашали на собеседование. Однако я не пошёл, потому что у меня были серьёзные проблемы с английским.

Позже мне ещё много раз писали из Amazon — говорили, что в их записях обо мне много положительных отзывов, и предлагали откликнуться на любую должность. Я отказал и больше ни разу с ними не общался — к этому времени у меня появился опыт работы в компании Ceridian, которая насчитывала около 6–7 тысяч сотрудников по всей Канаде и США. После Ceridian я предпочитаю небольшие команды и меня не тянет работать в компаниях размера FAANG. Возможно, в этом вопросе я неправ.

— Что делать программисту, который давно в профессии и застрял в развитии? Был ли у тебя подобный период и что с этим делать?

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

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

Сейчас я не засыхаю, поскольку постоянно занимаюсь собственными проектами. Например, во время одной из стагнаций я написал несколько игр на Swift, которые доступны на сайте enthunder.com. Там все игры мои, кроме Project Voyage — это игра моего сына, который в 16 лет смог её самостоятельно написать на Unity.

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

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

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

Этап 6


Пересмотр жизненных ценностей

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

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

Михаил Флёнов: сколько часов в день работает программист. Видео: канал «‎Програмысли»

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

Большое путешествие по Канаде — Banff, Jasper, Drumheller. Видео: канал «Ира и Миша»

— Что выберешь: дополнительный отпуск или сверхурочный проект?

— Зависит от ситуации. Я могу сейчас взять прибыльный проект, но при условии, что он будет для меня интересен. После его завершения я смогу взять семью и рвануть в 10 стран — я люблю путешествовать, но это очень дорогое удовольствие.

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

— Поделись секретом с программистами, которые посвящают всё время работе и не успевают заняться чем-то ещё?

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

Этап 7


Будущее

— С какими страхами сталкивается опытный программист?

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

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

Михаил Флёнов о страхе потерять работу. Видео: канал «‎Програмысли»

— Что будешь делать, если в ближайшее время в IT появятся новые инструменты, с которыми накопленные знания окажутся ненужными?

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

— Ты занимаешься программированием более 25 лет. Что это: любознательность, любовь, страсть? Можно ли это чувство воспитать и как понять, что пора уходить на пенсию?

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

Я не представляю ситуацию, в которой мне надоест писать код. Я 25 лет занимаю разные позиции, на каждой что-то пишу и уверен, что меня ещё хватит лет на двадцать. Поэтому о пенсии я пока даже не задумываюсь — стукнет 65, а там посмотрим.

Михаил Флёнов о карьере и возрасте программистов. Видео: канал «‎Програмысли»

— Ты часто даёшь интервью и отвечаешь на вопросы подписчиков. А есть ли какой-то важный, на твой взгляд, вопрос, который почему-то никто не задаёт. Если да — о чём он?

— Не думал об этом. Раз с ходу в голову ничего не пришло, значит, пока нет такого.

Курс

Профессия C#-разработчик

Хотите создать сайт или игру? Или написать мобильное приложение? А может, вы мечтаете программировать многопоточные сервисы? Тогда вам точно стоит освоить C#. Язык вобрал в себя лучшее от Java и С++ и применяется во всех сферах: от веб-разработки до геймдева. Освойте C# с нуля до уровня Pro, примите участие в командной разработке мессенджера и станьте классным программистом на востребованном языке.

Узнать про курс
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована