Личный опыт
Skyeng
9645

Как развиваться, если ты айтишник в провинциальном городе: моя история

Привет, я Серёжа, мне 31, и я живу в Брянске. Я долго плыл по течению, но потом очнулся и, кажется, за несколько лет смог прокачаться в ИТ. Сейчас расскажу, как умудрился выпустить ряд книг по программированию (они даже приносят доход) и стать гостем зарубежных подкастов, не выезжая из не самого айтишного российского города.

В закладки
Аудио

Но сначала договоримся: это не история о том, какой я уникум.

Начнём с признания: я разработчик по образованию, но несколько лет назад не знал, что такое SOLID. И на просьбу расшифровать аббревиатуру честно спросил, что это.

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

Как начать деградировать, но не поддаться

Пожалуй, единственное, в чём мой путь в ИТ отличается от типовой истории «увлёкся компьютером в школе — достал первую книгу по программированию — пошёл на программиста в институт», это владение английским с детства.

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

Затем промелькнул институт. Не до конца понимая, что делать с обрывочными знаниями C, C++, PHP, .NET, алгоритмов и даже нейросетей, я вышел из него в поисках работы.

Тут однокурсники и позвали в аутсорс. Мы сидели впятером в офисе в Брянске, а ребята в Москве доставали нам заказы. Получали мы неплохо, и мотивации уходить не было. Читать, смотреть и что-то изучать, в принципе, тоже.

​Фото из офиса тех времён ​из личного архива

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

Честно признался себе: да, деградировал. Решил, что не буду стучаться ко всем подряд, а подтяну знания и попробую пойти в команду, где ребята будут сильнее меня (так в итоге и получилось). Выписал всё, чего не знал, и засел за изучение.

Зачем вести свой технический блог: и как не забить, если в первый год тебя никто не читает

Итак, с собеседований у меня остались записки с кучей новых неизвестных слов. Найдя временную работу за 40 тысяч, я стал зарываться в книги и статьи по вечерам. Английский, который, на удивление, не забылся (спасибо родителям и десяти годам ежедневных занятий в юности), оказался очень кстати. Я быстро понял: на иностранном информации больше и она актуальнее.

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

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

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

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

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

Это стало давать хороший трафик на блог. А дальше я выработал схему: обходить с новой ссылкой PHPtoday, Reddit, HackerNews, AwesomePHP и другие более-менее заметные ресурсы. Не вступать в дискуссии, не отвечать хейтерам, чтобы не тратить время, а просто публиковать ссылку. Ссылка даёт переходы на блог, и это всё, что мне нужно.

Пару раз попал в подборку PHP Weekly, это порядка 14 тысяч адресов. Кажется, там меня заметил Роман Пронский, и теперь берёт мои материалы в PHP Annotated Monthly в блоге Jetbrains и «Дайджест PHP» на «Хабре» 

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

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

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

Как и зачем писать скринкасты на английском

Аудитория блога постепенно прирастала, а я увлёкся самообразованием: проходил курсы, смотрел туториалы. В том числе начал платить за контент. И этот контент натолкнул меня на мысль: ребята показывают экраны, что-то пишут в IDE и говорят в микрофон. Это не rocket science, в принципе, я тоже так умею и могу :)

​Спонсор милоты на канале: кошка Буся

Тем более одним удобнее читать, другим — смотреть. Так и пришла идея переработать часть статей из блога в скринкасты. Как и с текстами, решил делать «как для себя».

В то время я был подписан на Джеффри Уэйя и его Laracasts: мне нравилось как он, в отличие от многих других, упарывался в детали. Никаких «тут у меня в коде опечатка, но я перезаписывать не стал» или «а тут у нас пять минут что-то устанавливается, ну ничего, мы подождем».

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

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

Проверив, что код работает, пишу сценарий ролика. Затем пишу видео по сценарию, только картинку, без звука. Затем отдельно пишу озвучку. И лишь потом монтирую, где-то подрезая «эээ» и «меее» в аудиодорожке, а где-то подправляя мелочи в кадре.

Что это даёт

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

Google теперь выдает меня по запросу о нишевой технологии. Мелочь, а приятно :)

В итоге одним утром ты заходишь на почту, а NomadPHP (порядка 3000 человек в комьюнити) предлагает тебе провести вебинар.

Несколько месяцев спустя, когда Брянск окутывает вечер, ты садишься за ноутбук, проверяешь свой верный микрофон за 1450 рублей и начинаешь вещать на аудиторию ребят из разных стран. А ведущий из Невады говорит, что у тебя акцент лучше, чем у него (всё-таки умеют иностранцы в комплименты).

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

Начали звать в подкасты. Сначала в англоязычный. Хотя читаю и пишу нормально, в жизни мало куда выезжал и особо не разговаривал с носителями языка. А тут благодаря всем этим активностям, меня позвал PHP Roundtable.

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

В остальном, технически всё прошло стандартно для подкастов: согласовали время, список тем, за полчаса до эфира созвонились, всё проверили, а затем записались через видеозвонилку с локальным бэкапом голоса. Русскоязычные подкасты тоже зовут в гости: летом созвонились с профильной «Пятиминуткой PHP», а недавно познакомились с SDCast.

Выпускаю книги. Когда кто-то слышит, что я написал несколько книг, поражаются.

Они не издавались, я просто скомпилировал статьи в PDF, залил на Amazon и пару других сайтов и стал ждать. Точнее как: два раза ко мне приходили с предложением «давай мы тебе сделаем бумажную версию», но я заворачивал такие запросы.

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

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

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

Новые (интересные) знакомства. Алексей Пыльцин, переводивший документацию PHP на русский, сам вызвался перевести одну из моих книг. Регулярно на митапах подходят люди и говорят: «Спасибо, читал твой блог, статья очень помогла». Это очень круто мотивирует, спасибо вам, ребята!

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

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

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

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

Не стойте на месте :) И рассказывайте свои истории в комментариях.

P. S. Если вы тоже из Брянска, присоединяйтесь к ИТ-чату и ходите на митапы. 28 ноября пройдёт первая встреча местного сообщества.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Skyeng", "author_type": "editor", "tags": [], "comments": 35, "likes": 67, "favorites": 104, "is_advertisement": false, "subsite_label": "life", "id": 94524, "is_wide": false, "is_ugc": false, "date": "Wed, 27 Nov 2019 13:09:43 +0300", "is_special": false }
0
{ "id": 94524, "author_id": 199517, "diff_limit": 1000, "urls": {"diff":"\/comments\/94524\/get","add":"\/comments\/94524\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/94524"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }
35 комментариев
Популярные
По порядку
Написать комментарий...
26

Как перестать программировать и начать жить?

Ответить
8

Круто, автор молодец!
Отличный мотивационный пост

Ответить
4

Это се нативочка от скайенга?

Ответить
0

Привет, даже больше, вы в нашем корпоративном блоге на VC)

И да, у нас работают такие крутые люди со всей страны.

Ответить
2

Остоебенит все это 100%

Ответить
2

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

Ответить
0

Игорь, вы молодец, отличный кейс!

Ответить
1

Кул стори. Пишите, если нужны будут спикеры-питонисты для митапов. :) 

Ответить
1

Уже думаем над этим ;)

Ответить
1

С подкастами годный кейс🤘🏻

Ответить
0

Интересно, для немецкого это работает?

Ответить
2

Натюрлих

Ответить
0

Немецкий вроде же вы не преподаёте...

Ответить
0

Юрий, да, английский для взрослых, детей, школ, корпоративных клиентов + математика для детей. Но вопрос, кажется, был в "покатит ли вести блог на немецком". Думаем, да, по тому же PHP есть сильные эксперты, пишущие не только на английском.

Ответить
0

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

Ответить
1

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

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

Ответить
0

а на хабре зачем тоже самое? где читать-то? я разрываюсь...

Ответить
1

Привет, в целом да, но есть 7 (или больше отличий) в материалах. Если найти их все, с нас точно приз)

Ответить
–1

По моему React + PHP - это скорее для извращенцев) 

Ответить
1

Не будем указывать на ошибки в предложении, а хотя...)

Ответить
0

А как у вас получилось мини-курс по скринкастам на envato получить бесплатно? Я вижу там его только по подписке за $16.50 в месяц...

Ответить
0

Похоже, 2 года назад, когда Сережа изучал его, курс был доступнее. Но базовые части до сих пор в открытом доступе

Ответить
0

Интересно тя в полтос почитать) 

Ответить
0

Молодец Серега!

Ответить
0

Начал за здравие, то есть, с истории, а закончил за упокой. То есть, плохо скрываемой рекламой и призывом "куда-то ходить". Со ссылками, разумеется. 

Ответить
0

Илья, спасибо, что дочитали до конца! 

Не "куда-то", а присоединиться к местному ИТ-сообществу - это добровольно, бесплатно, ну и если вы не из Брянска, неактуально)

Ответить
0

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

Ответить
0

Так цель блога другая - делиться знанием)

Ответить
0

Хорошо конечно, что Вы делитесь знаниями, но одно другому не мешает:), а услуги хостинга оплачиваете?  

Ответить
0

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

Ответить
0

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

Ответить
0

А можно ссылку на ваши книги?

Ответить
0

Владимир, https://sergeyzhuk.me/books

Ответить

Комментарий удален

0

Не понял главное, как вы создаете и продаете учебные материалы без практического опыта и примененных знаний в деле. У вас есть какие то проекты: личные или в которых вы принимали. Сколько у вас в годах практики программирования на PHP? Сколько у вас в общем лет практики программирования?

Ответить
0

Привет, все ответы есть в статье - и еще один момент:

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

* Сереже 31, он работает программистом с окончания вуза, те. уже 10 лет ( и всю дорогу на PHP, хотя Node, Go тоже щупал и может на них), а программирует он со старшей школы. Он старший разработчик в своей команде на работе. Не самой плохой, к слову)

* Ссылки на личные проекты - например, open-source решение PHP Watcher, также в материале. Если хотите порыться в гитхабе, то https://github.com/seregazhuk

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }