Как разработчику развиваться в небольшом и не самом айтишном городе

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Привет, меня зовут Серёжа, мне 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 ноября пройдет первая встреча местного сообщества.
Источник: https://habr.com/ru/company/skyeng/blog/476480/


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

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

Майкл Сибель — сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit. Один из самых распространенных вопросов в Y Combinato...
Интерфейс платформы управления движением. Старый добрый советский светофор имеет два режима: работает и не работает. Его первая оптимизация — добавить в реле ночной и дневной режимы. Вторая ...
Ранее в одном из наших КП добавление задач обрабатывалось бизнес-процессами, сейчас задач стало столько, что бизнес-процессы стали неуместны, и понадобился инструмент для массовой заливки задач на КП.
Как быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над са...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...