Мои советы после 20 лет в программировании

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Сегодня ровно 20 лет, как я начал программировать профессионально. За эти годы я:

  • Получил одобрение на петицию по грин‑карте за выдающиеся способности в науке.

  • Стал Google Developer Expert.

  • Стал IEEE Senior Member.

  • Был операционным директором в компании со 100 сотрудниками.

  • Написал код, который скачали 135 миллионов раз.

  • Выступал перед аудиторией в 2000 человек, дважды.

  • Стал самым честным человеком в России по версии НТВ.

Но упустил я гораздо больше и делал всё это слишком долго. Думаю, этот путь можно было бы пройти «на скорость» лет за 5 с теми подходами, принципами и приоритетами, которым я научился. Если вы только начинаете свой путь, этот текст может сэкономить вам 15 лет жизни. Представьте, что всё это (кроме IEEE, там надо 10 лет) будет у вас к 23 годам, а не к 38, как у меня.

В первой части я кратко опишу свой профессиональный путь — для контекста. Во второй части — самые значимые советы.

Часть 1. Как я жил с 2003 по 2023 годы

22 декабря 2003 года мне не спалось, и я пошёл пробивать свободные домены. Среди прочих я нашёл GetSoft.ru и купил его.

«Ну и что теперь с ним делать?» — подумал я. — «Придётся делать каталог софта».

К тому времени программировал 7 лет (с 11 лет). Я делал тетрисы, бомбермены, танчики и т. п., загружал их на свой сайт и выкладывал ссылки в разные каталоги софта. Они были неудобными, и я знал, что там надо поменять.

Я выучил PHP просто потому, что половина адресов в интернете кончалась на «.php»

4 марта 2004 года я запустил GetSoft.ru.

Мой первый бизнес.
Мой первый бизнес.

Я написал скрипт и пропарсил download.ru — одного из главных конкурентов тогда. Я отправил его пользователям персонифицированный спам, примерно такой:

Здравствуйте, (Имя). Мы запускаем новый каталог софта. Пожалуйста, добавьте в него ваши программы (Название1, Название2, Название3…)!

Это сработало и дало мне стартовый контент. На него пришёл трафик с поисковиков, и дальше закрутилось:

Благодаря этому сайту меня взяли стажёром в нижегородскую компанию Telma (теперь Harman Connected Services). Они были больше всего известны тем, что делали весь софт для телефонов Motorola. Через год я уволился, потому что думал, что я умнее, и реклама на сайте приносила доход.

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

Я так и не придумал, как оживить сайт, и стал просто делать сайты‑визитки на заказ. Я надеялся однажды открыть настоящую студию.

В 2011 я на время отошёл от программирования. Я познакомился с Сергеем Гранем, крутым преподавателем. Он помог мне сделать курсы по фотографии и видеосъёмке — моим хобби, — и я вёл их до 2013 года.

Потом я на спор с ним сделал сайт компании по ремонту квартир, настроил на него Яндекс.Директ и получил поток лидов на 2 миллиона рублей в день — всё за две недели. Я стал продавать лиды ремонтным бригадам в городах, но там долгий цикл сделки, а Директ съедал по 20 тысяч в день, и вскоре пришлось его отключить. В целом получилось лишь в небольшой плюс, потому что у меня плохо с переговорами. А мог бы сейчас быть вторым Домогацким. Потом до середины 2014 я вёл курсы по размещению рекламы и продаже лидов, тоже для Сергея Граня.

Потом я работал у него руководителем отдела по выпуску учебных материалов и выстроил команду из 12 фрилансеров: дизайнеров, иллюстраторов, наборщиков, корректоров, звукарей и монтажёров. Потом стал техническим и операционным директором, сделал свою учебную платформу. На пике у нас было больше 100 преподавателей, больше 2500 учеников и больше 100 активных партнёров, которые гнали трафик. Выручка за 2015 год была 44 миллиона рублей, из них 20 миллионов — чистая прибыль.

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

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

Я поработал редактором текстов для Бизнес Молодости, вычистил для них 19 статей, но они закрылись. Только с Аязом не работал — был бы полный бинго.

К лету 2019 я наконец понял, что я упустил, не работая в больших компаниях. Тогда я переехал в Москву и пошёл разработчиком в Calltouch — они делают кол‑трекинг и аналитику рекламы. А осенью 2020 я ушёл оттуда, потому что почувствовал тупиковость PHP и опять захотел поделать что‑то своё.

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

Я уехал в Грузию и нашёл работу в Akvelon, которая всё для меня изменила. Они делали проекты для Apache, и их ревьювили ребята из Google.

Apache Beam Playground и Tour of Beam -- два open-source проекта, где я был лидом фронта, всё это донатили в Apache под присмотром гугловцев.
Apache Beam Playground и Tour of Beam — два open‑source проекта, где я был лидом фронта, всё это донатили в Apache под присмотром гугловцев.

Я проработал в Akvelon год, и к тому времени мой open‑source и статьи принесли мне звание Google Developer Expert.

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

США давно притягивали. Всю жизнь у меня была мечта заработать на инвесторскую грин‑карту, но вот я узнал про программу выдающихся способностей EB-1A и что она не для богов и пройти по ней в принципе реально. Нужно было только ещё немного прокачать репутацию.

Я вступил в IEEE и получил получил там грейд Senior Member.

Сеньорская членская карточка IEEE.
Сеньорская членская карточка IEEE.

Я подал заявку на судейство CODiE award, и её одобрили. На самом деле после некоторой критической массы все атрибуты репутации накапливаются, как снежный ком.

Вот так я сейчас вижу, как менялись моя профессиональная годность и авторитетность:

Это страшный график, потому что на нём куча потерянных лет в разных детских играх. И вот что я сделал бы по другому с учётом всего, чему научился.

Часть 2. Советы

1. Будьте в лучшем в мире месте и лучшем в мире сообществе

Я окончил ближайший к моему дому институт, до которого было 15 минут пешком. Так было принято в 2002 в провинции: маленький закрытый мир. Только одна моя одноклассница поехала учиться в МГУ, а заграница никому и в голову не приходила. Просто не было примера, что так можно. И интернета особо не было, чтобы сидеть и изучать.

Нижегородский Государственный Технический университет, первый корпус, фото Алексея Трефилова, лицензия.
Нижегородский Государственный Технический университет, первый корпус, фото Алексея Трефилова, лицензия.

А мой ревьювер из Google родился в Мексике, учился в Южной Корее, там попал в Google, потом переехал в США. И он на 4 года младше меня. Представьте такое для себя через 6 лет после школы.

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

Всю жизнь у меня была идея, что где‑то есть лучшее место, и каким‑то образом я там однажды окажусь. В этом месте за последние 20 лет случилась куча чудес — без меня.

Знаете лучшее место? Переезжайте туда сейчас же.

У меня есть друг, который сразу после школы поступил в институт в США (правда, ему не дали визу, иначе я бы засмотрелся и отправился за ним). Я тогда окончил 4-й курс института в Нижнем Новгороде и слушал это с разинутым ртом. Оказывается, всё это время это было возможно.

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

Вообще второе гражданство должно быть такой же социальной нормой, как высшее образование. «Ты зачем его получил?» — «Родители сказали». Надо, чтобы оно было у всех к 25 годам, когда появляется хоть какая‑то осознанность, а ещё впервые приходят старческие мысли «вот раньше я бы легко, а теперь — нее». Это уже само по себе уменьшило бы конфликты, потому что гражданин двух стран будет стараться не допустить войны между ними.

Ещё до физического переезда войдите в сообщество. В России в основном живут в маленьких пузырях. Можно заполнить LinkedIn и писать там посты на английском для русских друзей, но всё равно получать сообщения только от HRов русских компаний и ближайшего зарубежья. Мало поменять язык. Нужно участвовать в международных ассоциациях и конференциях. Знаете успешное сообщество? Вступите туда, пишите и выступайте для них. GDE и IEEE — это только примеры, которые я нашёл. В мире тысячи глобальных сообществ, которые могут принести вам пользу.

Проблема в том, что у нас не верят в объединения. В СССР все объединения были прослойками государства, которые лишь распределяли путёвки в санатории. Если вы мыслите так, попробуйте посмотреть дальше.

Оставаться в пузыре — опасно. Сейчас, в конце 2023 года, государство давит на частный бизнес, чтобы запретить удалёнку не из России. У меня много друзей, которые уехали в спешке в 2022 году, но не наработали международные связи, и им пришлось вернуться со всеми рисками, которые прилагаются.

Сколько дней вам нужно, чтобы найти работу в США? А в Европе? Если не уверены, вступайте в сообщества и создавайте связи.

2. Это бизнес

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

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

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

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

3. Получите долю от прибыли

Главная проблема большинства программистов — их идеи не основаны на экономике.

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

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

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

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

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

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

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

Последствия для вас такие:

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

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

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

Способ 1. Получите долю от прибыли

Если ваша зарплата — это функция от прибыли, вы радикально меняете поведение.

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

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

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

Способ 2. Наймите кого-нибудь

Как только вы начинаете тратить свои деньги на стартап, третий глаз открывается. Какая‑нибудь умеренно полезная мелочь начинает стоить $500 или $5000 ваших денег, и вы хладнокровно откладываете её, пока не сможете профинансировать это из прибыли.

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

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

Освойте его как можно быстрее. Это сэкономит вам десятки лет жизни.

4. Заходите в технологию на раннем этапе, уходите из умирающей технологии

Искусственный интеллект

Я знал про нейронные сети десятки лет. 18 лет назад у нас был курс по ним в институте, и я сделал простейшую сеть. Тогда не было TensorFlow, и я вручную писал класс персептрона на C++ и всё, что уровнями выше. К концу курса я просто понял, что и вот такое тоже можно делать. Можно писать редакторы, калькуляторы, почтовые клиенты, а теперь ещё и нейронные сети. Это было просто «одно из», ничем не выделялось.

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

У меня был ещё один шанс через 3 года. Мне предложили поработать над системой, которая распознаёт воровство в магазинах по видео, и это был 2008 год! Я отказался, потому что хотел свой «бизнес».

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

Мобильные приложения

Ещё один тренд, который я проглядел — это мобильные приложения. У нас был курс по ним 17 лет назад. Тогда была Java Mobile Edition, и не было никакого кода, зависимого от платформы, но просто мозг взрывался оттого, что можно запустить программу на этой маленькой штуке в кармане. Ну OK, я написал Тетрис на JavaME, выложил его в каталоги и забыл про мобильные приложения.

Прошло 14 лет, и всё на свете стало мобильным. Я начал изучать Flutter без знания Android и iOS. Большинство вакансий по Flutter требуют опыт в нативной разработке и рассматривают Flutter лишь как модную надстройку, и я туда не подхожу.

При этом мой друг — техлид в студии, у которой «12 лет опыта в мобильной разработке. Их клиенты — KFC, Burger King, SAP и Mars. Я тоже мог бы сделать такую студию. Но не сделал.

PHP

Вместо этого я пошёл в PHP 20 лет назад. Это было правильно, чтобы запустить стартап за 3 месяца, но я застрял в нём слишком надолго.

Я понял это 4 года назад, когда захотел найти «настоящую работу» вместо фриланса. Вакансии с PHP были скучными. Почему‑то крупные компании использовали для новых проектов на бэке что угодно, кроме него.

Вот тогда я увидел правду. Она раньше мелькала где‑то на горизонте, когда появлялись Node.js, Go и прочее, но у меня было всё в порядке — были клиенты, которым PHP подходил по многим причинам. Но за это время «место, где свет» поменялось, и рынок PHP сжимался.

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

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

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

Как определить стадию

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

В идеале переключайтесь, когда перспектива очевидна. Или как минимум переключайтесь, когда увидели, что уже просто врёте себе.

Ставьте текущее под сомнение

Нужно быть проактивным. Постоянно спрашивайте себя «Это всё ещё тренд?»

Окружающие заинтересованы удерживать вас в старой технологии.

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

Посмотрите на зарплаты в опросе StackOverflow:

За Objective‑C платят больше, чтобы вы не перешли в Swift. За Perl платят больше, чтобы вы не перешли в Python.

Примечание

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

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

5. Думайте про следующее избавление

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

Я думаю, что

Вся история технологий — это история избавления, а не создания.

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

  • Каталоги типа GetSoft.ru возникли не потому, что людям нравилось на уютненьких сайтах и форумах искать заставки для экрана, а потому что люди не хотели ходить за дисками на радиорынок.

  • У каждой платформы появился главный или даже единственный маркетплейс, потому что запоминать и печатать «getsoft.ru» людям было лень, это был лишний шаг от позыва до установленной программы.

  • Всё стало мобильным не потому, что телефоны привлекательны, а потому, что компьютер — это тяжёлая ноша.

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

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

Всё чаще мы слышим про low‑code и no‑code решения типа FlutterFlow или AppSheet. Два моих друга независимо работают над тем, чтобы сделать «WordPress на Flutter», чтобы добить старые сайты и заодно легко генерировать приложения на Flutter — и это только те друзья, про которых я случайно узнал.

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

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

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

6. Делайте бизнес выше по цепочке

Когда я делал игры в 2002 году, конкуренция была сильной. У меня было около 10 посетителей в день на сайте, они приходили из каталогов софта, и это было бы сложно превратить в бизнес. Вместо этого я сделал свой каталог и получил 1100 посетителей в день в первый год.

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

Вскоре я понял, что есть шаг ещё выше. Толковый парень сделал SoftSearch.ru — поисковик по каталогам программ. Каталогов были сотни к 2004 году, и он использовал это, чтобы предложить своим посетителям по истине весь софт, который существовал. Не знаю про его доход, но когда каталоги развивались и вытесняли друг друга с рынка, он всё равно был в выигрыше. Я закрыл GetSoft.ru в 2014 году, а он закрыл SoftSearch.ru только в 2019.

То есть это прямо паттерн. Два примера, которые всем надоели — это Google и Uber. Google не стал конкурировать со всеми сайтами в мире, он просто встал на ступень выше и выигрывает от их конкуренции. И он не просто делал софт для Windows Phone и iPhone, чтобы конкурировать в их сторах, а сделал свой телефон. И Uber не полез в конкуренцию таксистов, а просто стал зарабатывать на ней, поднявшись над их рынком.

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

Ещё один пример подъёма по цепочке — это стать преподавателем. Например, есть такой хитрый способ найти хорошего фрилансера, если нет времени на перебор: найдите того, кто хорошо обучает этой профессии и у кого много успешных учеников, и закажите работу у него. Это дороже, чем у рядового фрилансера, но вероятность качества выше. Именно поэтому

На умирающих рынках преподаватели теряют работу последними.

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

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

7. Выбирайте науку, а не прикладную работу

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

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

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

Мой диплом инженера.
Мой диплом инженера.

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

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

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

Это лучше всего показывает подъём Питона. Этот язык популярен в основном из‑за функционала его математических пакетов.

Источник: PYPL (PopularitY of Programming Language)
Источник: PYPL (PopularitY of Programming Language)

Превознесение науки — это не новый тренд. 40 лет назад учёные работали над алгоритмами индексирования и поиска по базам данных. Завистливый программист кусал локти оттого, что не он придумал тот самый алгоритм и не он сделал лучшую СУБД. Но время прошло, и теперь этот программист просто наслаждается тем, что эти чужие системы стали удобным фундаментом, на котором он может творить свой волшебный софт более высокого уровня. То же самое будет с нейронными сетями. Просто будут готовые модели, которые можно подключать в бизнесы более высокого уровня.

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

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

Количество программистов, нужных на одного учёного, постоянно уменьшается.

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

Никто не знает, кто делал фронт ChatGPT.
Никто не знает, кто делал фронт ChatGPT.

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

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

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

8. Вкладывайте деньги не только в себя

Всю мою жизнь считалось, что программисты нереально востребованы и получают кучу денег. Поэтому я никогда не думал, что нужно копить. И вот мне 38, у меня только $20'000 в банках, 12-летняя машина и четверть квартиры в стране, откуда я уехал.

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

Это тяжело — осознавать, что 20 лет прошли, пока я жил где‑то в будущем и так и не сделал его реальностью.

Займитесь деньгами. Пройдите хороший курс по инвестированию. Начните инвестировать. Купите жильё.

Я хорошо постарался и получил звание Google Developer Experts certification, которое открывает дорогу в лиды и CTO. Без этого атрибута большинство работодателей предпочли бы 25-летнего 38-летнему, не говоря уже о 48-летнем, которым я буду через 10 лет.

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

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

Ещё хуже, что после 35 без денег и квартир все считают вас бомжом. Год назад мне отказали в австралийской визе с формулировкой, что я не демонстрирую навыков заработка и накопления и не привязан ни к какой стране [недвижимостью], поэтому они предполагают, что я у них останусь. Потом отказали британцы.

Это было шоком, потому что 10 лет назад я спокойно получал визы США, Франции, Голландии и других, с ещё меньшими деньгами и собственностью.

Когда вы молодой, вы многообещающий и все вас хотят. Все двери открыты для вас, и эта эйфория закрывает от вашего взгляда обратную сторону мира:

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

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

9. Ищите работу у лидеров IT

Я потратил 8 лет на фрилансе, и это не дало мне ничего, о чём можно рассказать. Ну, я сделал сайт для самой раскрученной стоматологии города. И что?

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

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

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

Хотел бы я знать это раньше. Но в ранних статьях по феномену фриланса, которые мне попадались, говорилось, как прекрасна эта свобода, поэтому я не ставил это под вопрос. На самом же деле свобода есть только в своём собственном бизнесе, но это совсем другая история.

Работа в малом бизнесе это чуть интереснее фриланса, потому что вы получаете навыки управления и рекламы (потому что в малом бизнесе приходится знать всё), но технически это всё равно пустышка. Например, я был техническим директором в образовательной компании. Я сделал CRM и учебную платформу на технологиях, которые много лет всем известны. Задача решена, компания процветала. Ну и что? Для всех остальных это просто PHP + MySQL и CRUD.

Одна из систем на простейших технологиях, которые принесли продажи на 44 миллиона рублей за год.
Одна из систем на простейших технологиях, которые принесли продажи на 44 миллиона рублей за год.

Вот что нужно большим компаниям:

  • Архитектура распределённых систем.

  • Высоконагруженные системы.

  • Транзакции, управление race conditions, параллельные вычисления.

  • Оптимизация запросов и профайлинг.

  • Автотесты и CI/CD.

  • Правильное соотношение рефакторинга и смирения с плохим кодом.

  • Мега‑аккуратность в деплое.

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

Сама асимметрия этого перехода диктует, что нужно искать работу в больших IT‑компаниях, пока вы ещё можете это делать. Заодно получите много того, чем потом можно хвастать.

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

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

Если вы самый опытный — бегите оттуда.

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

10. Делайте критически важное

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

Например, один из критериев в программе грин‑карты EB-1A требует выполнять критическую роль в компании. Там туманное определение, но в целом это значит делать что‑то такое, что значимым образом влияет на метрики компании или хотя бы отдела. В можете быть супер‑героем, который применяет новейшие технологии и все навыки в мире, но для стороннего человека эта работа не будет критически важной, потому что её влияние на метрики может быть непрямым, или вас таких много и вклад каждого оценить сложно.

С другой стороны, можно делать критически важную работу, вообще не трогая никакие современные технологии. Например, мне повезло заниматься системой авторизации в одной из компаний, где я работал. Это был просто PHP, но я находил и исправлял проблемы в безопасности. Ещё я помог им внедрить статический анализ в CI, и это уменьшило даунтайм из‑за ошибок. Благодаря этой работе мне скорее всего засчитали критерий для грин‑карты («скорее всего», потому что если грин‑карту одобряют с первой попытки, то не говорят, что именно засчитали из всего, что вы им отправляете).

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

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

Я только 4 года работал на должностях, где моя работа была критически важной для компаний. Это означает 16 упущенных лет, которые могли сделать моё резюме в 5 раз привлекательнее.

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

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

11. Поймите «Послание к Гарсии» правильно

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

Элберт Хаббард и его самый известный рассказ. Это не тот Хаббард, о котором все говорят.
Элберт Хаббард и его самый известный рассказ. Это не тот Хаббард, о котором все говорят.

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

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

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

Я был таким же. Однажды мне нужно было сделать ответ для фронта, есть ли какие‑то записи в базе данных. Я предполагал, что вскоре им понадобится и количество тоже, поэтому сразу вернул количество. И если оно действительно понадобится, фронты смогут его показать без моей помощи и без деполя бэка. Это было вот так просто:

SELECT COUNT(*) FROM t WHERE something;

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

SELECT 1 FROM t WHERE something LIMIT 1;

Оказалось в 20 раз быстрее.

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

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

Если вы правда не уверены, как сделать задачу, то

Наименее бесячий и наиболее продуктивный вопрос — это «Какие приоритеты?»

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

Второй ценный совет здесь — это просто знать, что такой баланс существует, и поскорее изучить все факторы, описанные выше, применительно к вашему проекту, чтобы стать лучше в задавании или не задавании вопросов.

Если вы в целом способный и проактивный, то

Баланс между задаванием вопросов и недёрганием руководителя — это один из ключевых факторов для вашего повышения.

12. Контрибьютьте в важные open-source проекты

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

Мой самый хорошо зашедший вклад в open‑source — это одна из возможностей в PHPStan — самом популярном статическом анализаторе для PHP. С моей доработкой его скачали больше 135 миллионов раз.

Статистика загрузок PHPStan. Когда мой PR вошёл в стабильную версию, было около 15 миллионов загрузок.
Статистика загрузок PHPStan. Когда мой PR вошёл в стабильную версию, было около 15 миллионов загрузок.

Скорее всего, эта доработка удовлетворила ещё один из критериев для грин‑карты: «научный вклад, имеющий большое значение для области», а каждый закрытый критерий — это ⅓ того, что нужно для аппрува.

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

Мои более интересные и самодостаточные разработки, хотя и менее популярные — это фронты двух приложений, которые я вёл для Apache (Beam Playground, Tour of Beam) и редактор кода на Flutter.

Вместе с моими текстами и выступлениями они принесли me the title of Google Developer Expert. Из собеседований в эту программу мне показалось, что open‑source их интересовал больше, чем мой контент, но это не точно.

Если вы правильно выбираете open‑source проект, то работа в нём это как покупка правильных акций на раннем этапе. Потом можно ничего не делать и смотреть, как капают миллионы (загрузок). Как и с акциями, если ничего не выбрать или выбрать плохо, то к определённому возрасту будешь не соответствовать социальным ожиданиям и подвергнешься дискриминации. Но в отличие от акций, даже если проект перестанет быть популярным, ваш вклад не сгорит, потому что его довольно часто оценивают по пику популярности проекта.

Как и с любой другой работой, вклад в open‑source чисто ради вклада — это скучно. Весь мой open‑source я делал, потому что так было надо для основной работы. Поэтому выбирайте такую работу, где вы сделаете много open‑source‑штук так, чтобы вам за это ещё и платили.

Ещё мы всегда хотим, чтобы наши собственные пакеты взлетели, чтобы быть не просто контрибьютером чего‑то известного, но и главным автором (а если у вас нет надежд на это, то меняйте проект). Это происходит далеко не со всеми. Самый главный из моих собственных пакетов Flutter входит всего лишь в топ-16%, и это досадно.

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

Я только 7% своей карьеры работал над open‑source, и хотел бы больше. Знаю таких GDE, у которых это 80% карьеры. Такие возможности есть, ищите их.

13. Станьте безумно публичным

20 лет назад быть публичным или нет — был выбор каждого. Тогда не было социальных сетей, в интернете не было видео, и для публичности нужно было писать в профессиональные журналы. Это довольно много усилий, поэтому было нормально искать работу, будучи непубличным. Надо было просто написать своё резюме в.doc‑файле и отправить его в компании. У них не было другого выбора, кроме как поверить вам и позвать на собеседование.

Это давно уже не так. Быть публичным сейчас ничего не стоит, и если вы ничего не публикуете, то это говорит о страхах, неспособности, или странных жизненных приоритетах. Даже интровертам нужно хотя бы писать статьи, чтобы не быть подозрительными. Если вы приходите из ниоткуда с 50 друзьями ВКонтакте, без статей и без каких‑то упоминаний вашей работы в интернете, нормальную работу найти трудно.

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

Вам должно быть труднее промолчать, чем опубликовать.

Пишите больше

Я опубликовал свою первую техническую статью 29 сентября 2004 года. На ProtoPlex её прочитали 5000 раз. Я был в восторге: учусь на третьем курсе, и уже мой опыт многим интересен и полезен.

По какой‑то причине следующую техническую статью я опубликовал только через 17 лет.

Я веду блог на Medium только два года, и там уже больше 100 тысяч просмотров и сотни подписчиков. Подписчики растут экспоненциально, потому что их количество там много где показывается, и оно само по себе привлекает новых. Если бы я не сделал паузу на 17 лет, был бы уже Чаком Норрисом.

Я напишу отдельную статью, как писать, когда будет тысяча подписчиков на Medium. А пока вот несколько коротких советов:

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

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

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

  • Превращайте всё в текст, даже отказы в визе. Так ваша жизнь станет беспроигрышной. Худшее, что может с вами случиться — это +1 статья.

  • Ведите личный дневник. Я научился этому у Стивена Кови. Стачала мысли короткие и тупые: «Пошёл туда, сделал это». А через год вы переходите к неплохой философии, не заметив, как это получилось.

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

У топовых видеоблогов в 10 раз больше подписчиков, чем у топовых текстовых. Поэтому нас почти не существует, если мы только пишем.

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

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

Я запустил YouTube-канал в 2011 году, довольно рано, но ничего с ним с тех пор не делал. Там больше 100 тысяч просмотров в сумме, и это неплохо. Однако, он не по программированию, а просто по всему подряд.

Я когда-то учился на курсах по съёмке и снял три учебных короткометражки (раз, два, три).

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

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

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

Выступайте вживую

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

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

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

Я выступаю 12 июня 2017 и 5 мая 2018 на пл. Ленина в Нижнем Новгороде.
Я выступаю 12 июня 2017 и 5 мая 2018 на пл. Ленина в Нижнем Новгороде.

От этого просто сносит крышу. Это невероятная свобода.

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

Выступления на конференциях также засчитываются для многих важных вещей: членство в организациях (GDE, IEEE), очки в иммиграционных программах, и т. п. А ещё история выступлений легко накапливается. Кого зовут выступать в первую очередь? Того, кто уже выступал раньше. Поэтому начинайте скорее.

Самый простой способ начать — напроситься преподавать в ВУЗ, где вас знают. Я попросил знакомого преподавателя подменять его неформально. Завкафедрой одобрил. Это позволило мне скомкать много блинов. Если захотите почувствовать себя лучше, просто посмотрите мои первые лекции (группа 1, группа 2).

Одна из моих первых лекций, Visual Basic 6 в Нижегородском Государственном Техническом университете для группы 06-СТ, 17 марта 2008.
Одна из моих первых лекций, Visual Basic 6 в Нижегородском Государственном Техническом университете для группы 06-СТ, 17 марта 2008.

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

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

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

14. Храните всё

Работа

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

Декабрь 1994.
Декабрь 1994.

Потом результат становится важным для вас. Вы всё накапливаете — вдруг пригодится, или просто покрасоваться.

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

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

Мой жёсткий диск умер в районе 2000 года, поэтому я не могу показать игры, которые писал до 15 лет. Вряд ли вам пригодился бы мой клон Понга 1998 на QuickBASIC 4.5, но я бы хотел иметь хотя бы скрин. Придётся довольствоваться клоном Диггера 2001 года на Visual Basic 5 со всеми объектами, отрендеренными в 3DS Max:

Когда будете писать свою статью к 20-летию в профессии, постарайтесь выложить что‑то из старого — это мило.

Обратная связь

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

  • Уйти с работы и потерять право подписать рекомендацию.

  • Забыть важность вашей работы для него.

  • Стать известным и занятым.

  • Поменять все контакты и исчезнуть.

  • Умереть.

Например, я доработал PHPStan в 2020 году. Он уже тогда был важным и популярным. Я думал, что если мне понадобится подтвердить эту работу, то PR никуда не денется, поэтому я не стал просить никакую рекомендацию.

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

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

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

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

Эта просьба была довольно корявой. Смысл был таким: «Здравствуйте! Я второстепенный контрибьютор проекта, про который вы, вероятно, знаете, но, может быть, и не используете. Автор проекта отказался подтвердить мой вклад. Могли бы вы посмотреть и подтвердить, что это важно?»

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

Не ждите, пока вас забудут. Вас забудут.

15. Заботьтесь о своём теле

Это должен быть первый совет, но тогда было бы похоже на дешёвый нью‑эйдж.

Мне 38, и со здоровьем проблемы.

У меня искривление позвоночника. В 17 врачи сказали мне, что если не исправить, то всю жизнь спина будет болеть. Но в этом возрасте все супермены, и я не послушал совет.

Всё было нетрудно исправить где‑то до 25 лет. Но я озаботился только к 30. К тому времени это уже было трудно. Я выпрямил спину с 25º до 21º за два года йоги и массажа, но прогресс был такой медленный, что я забросил. А лучше бы продолжил, потому что в 38 это ещё сложнее. Моя спина болит постоянно уже много лет.

Я не могу бегать, потому что коленка болит. Это началось с приседаний на одной ноге на физре в институте. Системе было наплевать на 17-летних ребят в 2002, никто меня нормально не осматривал, и упражнения просто заставили делать. Уже потом я узнал, что из‑за слабости некоторых мышц у меня неправильно идёт нагрузка на колени, и нагрузка на связки чрезмерная.

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

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

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

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

Я на вершине Эльбруса, 25 сентября 2020 года.
Я на вершине Эльбруса, 25 сентября 2020 года.

Ещё важна диета. Я пробыл вегетарианцем 2.5 года, но не позаботился о том, чтобы правильно заменить всё то нужное, что есть в мясе. Первый год был шикарным. Я чувствовал чистоту и бодрость — всё, как вегетарианцы обещают. Но со временем что‑то стало не так. Воодушевлённость прошла. Травмы участились: от лёгких падений я получал частичные разрывы связок голеностопа и запястья (а связки полностью не восстанавливаются). И было смутное чувство, что чего‑то не хватает — зов природы. Тогда я стал снова есть мясо. Хотелось бы, чтобы этих 2.5 лет не было, или хотя бы сократить их до полугода.

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

Я знаю много историй, когда люди вредили себе отказом от мяса. Их ткани деградировали и не восстанавливались. Они хватали травмы и хронические заболевания.

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

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

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

Резюме:

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

  • Большинству людей, которые отвечают за ваши тренировки, нельзя доверять. Им или всё равно, или они сами не знают, как правильно. Сходите к лучшим спортивным врачам.

  • Вылечите всё, что можно, до 25 лет. После этого многие двери закрываются.

  • Никогда не полагайтесь на свою способность к восстановлению. Эта супер‑сила проходит. Всё плохое, что вы сделали своему телу, вернётся после 30 лет.

16. Это не держит вас

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

Со свободами у нас всё понятно, дальновидные уехали в 2012 году. Если бы я не тянул, был бы на другом профессиональном уровне, и уже было бы второе гражданство. И тогда русских принимали лучше.

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

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

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

И не врите своим клиентам:

…но не давайте эксплуатировать вашу привязанность к работе больше, чем вам по‑настоящему комфортно.

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

Ещё у меня была любимая массажистка. И чудесный инструктор йоги, которого я уже 9 лет не могу заменить.

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

Когда я пошёл в институт, который не входит даже в топ-1500, но до которого идти 15 минут от дома, это, вероятно, была самая большая ошибка в моей жизни, учитывая эффект бабочки. Да, в 2002 году было сложно найти информацию или успешного друга, но кто‑то же уезжал уже тогда!

Беда не в мыслях «О, если бы вот эта вещь меня не держала...» Беда в неосознаваемом блоке даже смотреть по сторонам и видеть, что что‑то плохо и это вредит вам.

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

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

Для каждого изменения я всегда залипал в состоянии подготовки к нему. Нужно было что‑то ещё доделать, и это всегда было ложью.

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

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

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

Предлагаю вам увидеть её и сделать то, что вы хотите, прямо сейчас.

Фотография, которую я считаю своей лучшей. Лиссабон, январь 2015.
Фотография, которую я считаю своей лучшей. Лиссабон, январь 2015.

Вот так, 16 советов, а не 20 — не люблю притянутые за уши количества.

А точно можно пройти это «на скорость»?

OK, как сделать за 5 лет то, что заняло у меня 20?

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

На одном созвоне по Flutter я встретил Aila McPhail. Она с сестрой Sumay запустила онлайн-школу для детей два года назад, когда им самим было 9 и 12 лет. У них 1500 подписчиков в Твиттере (у меня 41), и что-то предоставили больше чем 500 ученикам. Они живут в городке Falls Church, где меньше 15 тысяч жителей.

Источник: семья McPhail
Источник: семья McPhail

Sumay по возрасту сможет подать заявку в GDE только через 4 года, но она уже на созвонах с топами из команды Flutter. Aila сможет подать заявку только через 7 лет, но она выражает мысли ясно, как взрослый человек, и только тембр голоса и видео выдают её возраст.

Я тоже начал программировать в 11. И я терял время задолго до 18 лет. А эти сёстры не теряют. И вы тоже можете не терять!

Про грин-карту

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

Подпишитесь на мои Телеграм-каналы:

  • На английском: ainkin_com

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

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

Источник: https://habr.com/ru/articles/782740/


Интересные статьи

Интересные статьи

В этой статье HR-менеджер нашей студии расскажет о том, что входит в онбординг, чем он выгоден для компаний и как мы погружаем ребят в новые обязанности. ***Привет! Меня зовут Валерия, я старший HR-ме...
По умолчанию Spring Data JDBC ожидает, что первичные ключи сущностей генерируются на стороне базы данных. В статье Introduction to Spring Data JDBC (Введение в Spring Data JDBC) мы использовали вариан...
Здравствуйте, друзья! Сегодняшняя моя статья будет посвящена не костным пластикам, которые, как я заметил, всем изрядно поднадоели, а другой, не менее интересной для вас ...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
В комментариях к моей статье Docker: вредные советы было много просьб объяснить, чем так ужасен описанный в ней Dockerfile. Краткое содержание предыдущей серии: два разработчика в жестком дедлай...