Привет, меня зовут Серёжа, мне 31 год, я живу в Брянске — и это точно не технологическая столица мира. Первая за десять лет ИТ-конференция прошла в нашем городе в этом октябре, а названия местных компаний, за исключением пары федеральных аутсорсов, едва ли что-то вам скажут. Тем не менее живя в самой настоящей провинции, я смог выпустить ряд книг по программированию (и они даже приносят доход), стать гостем зарубежных подкастов и начал как докладчик выезжать на различные конференции.
Нет, это не история о том, какой я уникум. Несколько лет назад я не знал, что такое SOLID — и на просьбу расшифровать аббревиатуру честно спросил: “А что это?”. Много лет я плыл по течению, пока не осел в уютном “болоте”. Но потом очнулся и, кажется, за несколько лет смог выбраться на твердую землю. Не повторяйте моих ошибок)
Надеюсь, что-то из моего опыта вам пригодится (решения простые и не требуют много сил и вложений). А еще очень хочу, чтобы другие ребята, которые смогли расти, не уезжая с малой родины, поделились своими советами в комментариях.
Как начать деградировать, но не поддаться
Пожалуй, единственное, в чем мой путь в ИТ отличается от типовой истории “увлекся компьютером в школе, достал первую книгу по программированию — пошел на программиста в институт”, это владение английским с детства.
Мы жили не сказать чтобы богато, но еще до школы родители стали отправлять меня на какие-то занятия. А школу выбрали с углубленным изучением английского — так, чтобы иностранный каждый день. И еще отправляли к репетитору после уроков. Короче, к старшей школе я мог очень сносно писать и читать.
В следующие 10 лет английский не пригодился мне почти никак.
Артикли есть? А если найду?)
Как и институтское образование. Нет, я благодарен всем, но учили нас понемногу и чему-нибудь. Не до конца понимая, что делать с обрывочными знаниями C, C++, PHP, .NET, алгоритмов и даже нейросетей, я пробовал устроиться в пару контор — но почитав документацию, приуныл. Тут однокурсники и позвали в аутсорс.
Получали мы неплохо — и мотивации уходить не было. Читать, смотреть и что-то изучать — в принципе, тоже.
Мы сидели впятером в офисе в Брянске, а ребята в Москве доставали нам заказы.
А в один день все закончилось — контора закрылась. И вот, когда после 5 лет в ней пришлось искать новую работу, я быстро понял, что просто не тяну. В хороших компаниях, куда можно было пойти на ту же удаленку, спрашивали про какие-то штуки, о которых я не слышал или двух слов не мог сказать.
Честно признался себе: да, деградировал. Решил, что не буду стучаться ко всем подряд, а подтяну знания и попробую пойти в команду, где ребята будут сильнее меня (так в итоге и получилось). Выписал все, чего не знал, и засел за изучение.
Зачем вести свой технический блог: и как не забить, если первый год тебя никто не читает
Итак, с собеседований у меня остались записки с кучей новых неизвестных слов. Найдя на-этот-раз-точно-временную работу за 40 тыс, я стал зарываться в книги и статьи по вечерам. Английский, который, на удивление, не забылся (спасибо родителям и 10 годам ежедневных занятий в юности), оказался очень кстати. Я быстро понял — на иностранном информации больше и она актуальнее.
Вот только как ее систематизировать и если что, найти нужное? Надо вести конспект — а чтобы он был доступен с любого устройства, можно выложить его в сеть. Формат блога подходил под эту задачу. Читал я на английском, так что и писать стал на нем же: да и лаконичней он, так проще. В первый год с выбором тем не было проблем: в чем разобрался, о том и напишу. Т.к. пост технический, с ним вдохновения не нужно: легко можно набросать страницу-полторы за вечер (ну а если тема будет сложной, за несколько вечеров). То, что поначалу это мало кто читал, меня не волновало — делал же для себя.
Ты не будешь не знать чего-то, если напишешь об этом статью в блог. Принцип, открытый тогда, работает до сих пор.
Год спустя, когда вопрос с новой и на этой раз хорошей работой был решен, желание писать не пропало. Зато появилось желание делиться знанием — асинхронность становилась все более актуальной, а я попробовал на одной из боевых задач ReactPHP. Информации о технологии практически не было даже на английском, так что я решил описывать свой опыт с ней: написал статью, вышел в твиттер, тегнул аккаунт разработчиков — и они ретвитнули материал. Это стало давать хороший трафик на блог. А дальше я выработал схему: обходить с новой ссылкой PHPtoday, Reddit, HackerNews, AwesomePHP и другие более-менее заметные ресурсы. Не вступать в дискуссии, не отвечать хейтерам, чтобы не тратить время — а просто постить линк. Ссылка дает переходы на блог, и это все, что мне нужно.
Пару раз попал в подборку PHP Weekly — это порядка 14к адресов. Кажется, там меня заметил Роман Пронский — и теперь берет мои материалы в PHP Annotated Monthly в блоге Jetbrains и “Дайджест PHP” на Хабре (кстати, у проекта отличный канал в телеграме)
Тем хватает до сих пор. Вот я написал свой инструмент для разработки долгоживущих приложений. А вот мы улучшили в команде практику код-ревью… Блогу пошел третий год, в месяц на него заходят несколько тысяч человек. Все не зря!
Конечно, помимо желания делиться полезным, я преследую и прагматические цели. Я хорошо запомнил урок четырехлетней давности: и в следующий раз, если он случится (тьфу-тьфу и три раза по дереву), не я должен стучаться к работодателям. Это они должны ко мне прийти и хотеть меня нанять. Личный блог — это хороший инструмент для построения т.н. личного бренда. Но это мы еще видео не попробовали)
Как и зачем писать скринкасты на английском
Аудитория блога постепенно прирастала, а я увлекся самообразованием: проходил курсы, смотрел туториалы. В том числе, начал платить за контент. И этот контент натолкнул меня на мысль: ребята показывают экраны, что-то пишут в IDE и говорят в микрофон. Это не rocket science — в принципе, я тоже так умею и могу)
Спонсор милоты на моем канале — кошка Буся.
Тем более, одним удобнее читать, другим — смотреть. Так и пришла идея переработать часть статей из блога в скринкасты. Как и с текстами, решил делать “как для себя”. В то время я был подписан на Джеффри Уэйя и его Laracasts — мне нравилось как он, в отличие от многих других, упарывался в детали. Никаких “тут у меня в коде опечатка, но я перезаписывать не стал” или “а тут у нас 5 минут что-то устанавливается, ну ничего, мы подождем”. Повезло — я нашел его мини-курс о том, как делать нормальные скринкасты, изучил всю кухню — софт, порядок действий, рекомендации по монтажу, и сел заводить свой канал.
Показатели канала: почти 1,3к подписчиков, самое популярное видео набрало уже более 9к просмотров.
Говорят, при производстве сериалов 1 день работы равен 1 минуте результата. В скринкастах 1 минута видео — это где-то час работы. Сначала я выбираю тему, затем открываю IDE и начинаю кодить. Проверив, что код работает — пишу сценарий ролика. Затем пишу видео по сценарию — только картинку, без звука. Затем отдельно пишу озвучку — и лишь потом монтирую, где-то подрезая «эээ” и “меее» в аудиодорожке, а где-то — подправляя мелочи в кадре.
Что это все дает?
Стали приглашать вести вебинары на английском. Скринкасты стали отличным инструментом продвижения: тема ReactPHP еще довольно узкая, экспертов по ней мало, так что я — один из первых в выдаче гугла. А формат ролика позволяет быстро оценить, как я подаю материал устно.
Мелочь, а приятно)
В итоге, одним утром ты заходишь в почту — а NomadPHP (порядка 3к человек в комьюнити) предлагают тебе провести вебинар. Несколько месяцев спустя, когда Брянск окутывает вечер, ты садишься за ноут, проверяешь свой верный микрофон за 1450 рублей и начинаешь вещать на аудиторию ребят из разных стран. А ведущий из Невады говорит, что у тебя акцент лучше, чем у него (все-таки умеют иностранцы в комплименты). Тему второй лекции предлагал уже я — и ребятам так понравилось, что они быстро организовали новый вебинар.
Начали звать в подкасты. Сначала — в англоязычный. Хотя читаю и пишу нормально, в жизни мало куда выезжал и особо не разговаривал с носителями языка. А тут благодаря всем этим активностям, меня позвал PHP Roundtable.
3 человека — и с ними надо говорить на иностранном. Волновался дико. Как раз незадолго до этого у меня родилась дочь, поэтому волновались еще за крики на фоне: так что на время записи жена забрала малышку гулять — благо, дело было летом.
В остальном, технически все прошло стандартно для подкастов: согласовали время, список тем, за полчаса до эфира созвонились, все проверили, а затем записались через видеозвонилку с локальным бэкапом голоса.
Русскоязычные подкасты тоже зовут: спасибо Петру Мязину за приглашение и интерес к ReactPHP!
Выпускаю книги. Когда кто-то слышит, что я написал несколько книг, то поражаются.
Они не издавались — я просто скомпилировал статьи в PDF, залил на Amazon и пару других сайтов, ну и стал ждать. Точнее как — два раза ко мне приходили с предложением “давай мы тебе сделаем бумажную версию”, но я заворачивал такие запросы. С самостоятельно собранной электронной копии я забираю почти все себе, а с бумажной от издательства — получал бы лишь 5%.
Наверное, доходы с книг не покрывают моего времени как старшего разработчика, но на приятные мелочи для дочки точно хватит)
Вот как все было: в один момент контента по отдельным темам накопилось много. Я подумал, что кому-то ведь наверняка неудобно лазать на сторонний сайт и искать там отдельные материалы. А вот открыть файл на компьютере и найти по оглавлению будет легко. Я же получу дополнительный охват. Потратил 4 месяца по вечерам на то, чтобы реорганизовать статьи в единую структуру с плавными переходами, выложил как единый файл — а затем написал новую статью, в конце которой упомянул про книгу. И через час пошли первые покупки. Эта конверсия очень порадовала. С тех пор, как приходит идея или набирается материал, повторяю процедуру заново.
Один раз меня и правда запиратили — но я написал тем ребятам, и они сразу удалили копию книги. Цены я выставляю небольшие — в среднем, от 6 баксов. Кто хочет, тот накидывает сверху.
Новые (интересные) знакомства. Алексей Пыльцин, переводивший документацию PHP на русский, сам вызвался перевести одну из моих книг. Еще одно полезное знакомство — Антон Морев, у него хороший опыт выступлений, есть с кем посоветоваться. Регулярно на митапах подходят люди и говорят: “Спасибо, читал твой блог, статья очень помогла”. Это очень круто мотивирует, спасибо вам, ребята!
Стал выступать на митапах и конференциях. Это свежий опыт: крепкой ИТ-тусовки в городе нет, летом уже думал сам писать ребятам из ростовского PHP-сообщества, но тут в компании появились специально обученные люди, которые стали двигать тему с митапами и нашим участием в конференциях.
С Сашей Макаровым (раньше тоже работал у нас в Skyeng) на БИФ-2019 в Белгороде.
В результате, за пару месяцев я прошел путь от первого в жизни доклада до самостоятельной заявки на большую конференцию (и меня взяли, оплатят дорогу и проживание, все по-взрослому). Получилось, что сейчас часть выходных в месяц жена и дочь меня не видят — но по предыдущим моим экспериментам любимая знает, как это влияет на мою “капитализацию”. Не подумайте, работу не ищу, но зарплату в компании уже себе поднял ;)
***
И почти все это — за последние полтора года. А несколько лет назад я не мог ответить на собеседовании, что такое SOLID… И вот что я хочу сказать: если я смог, сможет и любой.
Не стойте на месте) И рассказывайте свои истории в комментариях.
p.s. Если вы тоже из Брянска, присоединяйтесь к ИТ-чату и ходите на митапы — 28 ноября пройдет первая встреча местного сообщества.
Автор: Сергей Жук