В этом посте я попробую поверхностно поведать о том, в чем заключается работа программиста для тех, кто ничего об этом не знает.
Как правило, у программистов есть четыре глобальные задачи:
1. Донести до чьих-то глаз (ушей) информацию из некого хранилища данных
2. Донести данные от чьих-то пальцев до некого хранилища данных
3. Обеспечить обмен данными между хранилищами
4. Обработать данные
Например, если Вы играете в игру на телефоне, где-то на нем хранятся файлы, в которых содержится информация о том, на каком Вы уровне и что на нем должно происходить. Иногда данные хранятся в базах данных, но эти базы, в конечном итоге, тоже хранятся в файлах.
Иногда файлы хранятся не на вашем устройстве, а в интернете, но сути это не меняет – игра берет данные из источника, пропускает их через алгоритмы, и выводит их на экран. Ваши нажатия тоже обрабатываются набором алгоритмов и сохраняются в файлах.
Вот эти алгоритмы мы, программисты, и пишем целыми днями. Иногда улучшаем их, иногда оптимизируем, но чаще чиним 😊. А еще иногда мы пишем алгоритмы, которые тестируют другие алгоритмы, чтобы не надо было тестировать их вручную.
Для того чтобы создавать эти алгоритмы существует множество разных языков, каждый из которых заточен под определенную платформу, задачу или хранилище. Зачастую программистам приходится использовать несколько языков – один для того, чтобы достать данные, второй чтобы передать, третий чтобы вывести их на экран и четвертый чтобы все это правильно расположить и разукрасить 😊
Веб разработка
Я за свою жизнь программировал почти все – от роботов до игр, от смарт котнрактов до искусственного интеллекта, но моя специализация – веб разработка, то есть, создание сайтов.
В веб разработку я окунулся, когда создал наш с Машей блог о путешествиях Traveliving, который в какой-то момент был настолько популярным, что про нас даже сняли полнометражный фильм.
Сайты можно создавать по-разному – можно писать код вручную, а можно использовать различные инструменты, которые упрощают задачу и позволяют создавать их без программирования, просто перетаскивая компоненты мышкой.
Если посмотреть на актуальную статистику, из 10 миллионов самых популярных сайтов - 33% написаны программистами с нуля, а остальные 77% используют некий фреймворк или, CMS (Content Management System/Система Управления Контентом).
Мне повезло, что в 2007 я решил создать Traveliving на CMS под названием WordPress. Тогда он только набирал популярность, но сейчас на нем работают аж 43% всех сайтов в мире и 64% из тех, что используют какой-либо фреймворк. WordPress давно оставил всех конкурентов далеко позади:
WordPress плагины
Где-то в 2008 году я начал разбираться, как можно дописывать недостающий функционал для WordPress, ведь в те годы система была еще сырая и много чего не хватало. Оказалось, что в WordPress это делается очень просто. Процесса проще я до сих пор нигде не встречал, и от части, это причина популярности данной платформы.
Кое-какой функционал тревеливинга я выкладывал в бесплатный «репозиторий» WordPress (аналог Google Play или Apple Store), чтобы другие тревел блоггеры могли использовать его у себя на сайтах, и это сыграло ключевую роль в том, что теперь я запросто нахожу работу в сфере WordPress разработки. Просто посмотрев на даты публикации моих ранних плагинов, большинство работодателей готовы дать мне работу без интервью и тестовых заданий.
WordPress - это модульная система, сейчас это модно называется «No-Code» платформа. Сам по себе WordPress бесплатен и для него уже существует 59,480 бесплатных плагинов. Каждый из них добавляет какой-то функционал на ваш сайт — от счетчика посетителей в сайдбаре, до полноценного интернет-магазина или платформы для продажи онлайн курсов.
Многие плагины имеют бесплатную версию, но за доплату, клиенты могут получить вариант с расширенным функционалом. Именно над такими продуктами я и работаю последние 7 лет. Причем, как правило, мы не продаем наш плагин, а лишь сдаем его «в аренду» на год с пакетом поддержки и обновлений. Так как WordPress и другие технологии часто обновляются, через год наш продукт устаревает и клиентам приходится оплачивать новую лицензию, если наш плагин делает их сайт более прибыльным.
Сколько платят?
Некоторые компании, в которых я работал, имели по несколько сотен тысяч клиентов при цене подписки в 150-500 долларов в год, то есть годовой оборот в 20–75 миллионов долларов ($50 - 200к в день) это вполне нормальное дело для WordPress индустрии. А так как WordPress’у нигде централизованно не обучают и это очень своеобразная система, в нашей сфере наблюдается катастрофическая нехватка кадров и зарплаты разработчиков ниже 60-80 тысяч долларов в год мало кого интересуют и мало кто предлагает.
Вы наверняка в последнее время видите массу рекламы курсов по программированию, но учат ли хоть в одном из них программировать плагины для WordPress? Сомневаюсь. А между тем, половина всех интернет-магазинов созданы на WordPress, и эта доля ежегодно растет.
Как ни крути – интернет-магазины это по-прежнему самая щедрая ниша в веб разработке.
Вторая по платежеспособности ниша — это онлайн курсы, сертификации и образование. Именно из нее выстрелил стартап, где я сейчас работаю.
Наш плагин Uncanny Automator помогает автоматизировать внутренние процессы WordPress. Например, если человек купил онлайн курс на вашем сайте, Automator может добавить его в группу студентов, созданную другим плагином, а также отправить пользователю приветственное письмо со скидочным купоном на другие курсы, попутно отослав смс менеджеру сайта.
Если же у вас интернет-магазин, наш плагин может при покупке добавить пользователя в лист имейл рассылки, отправить ему чек через вотсап, а через неделю послать ему имейл с просьбой оставить отзыв. Все это вы можете настроить без какого-либо программирования, потому что это уже запрограммировал для вас я. И, разумеется, наша команда 😊
Конкретно я, в основном, занимаюсь «межсерверными коммуникациями» — это у меня получается лучше всего и это моя страсть. Например, когда Ваш сайт шлет через наш плагин данные в таблицу в Google Sheets или сообщение в Slack/смс – это написал я. Почему-то мне приятнее всего писать алгоритмы взаимодействия между файлами на разных серверах нежели взаимодействия между файлами и людьми 😊.
Мой рабочий день
Наша компания не имеет офиса, то есть команда 100% удаленная, как и у большинства других WordPress компаний. Мы разбросаны по всему миру – у нас есть люди в Канаде, Аргентине, Пакистане, Индии, Дубае, Греции и Филиппинах. WordPress разрабатывался распределенными по всему миру командами задолго до ковида, и об этом даже написана целая книга под названием «Год без штанов», поэтому я никогда в жизни не работал в офисе и для меня удаленка всегда была нормой.
И, несмотря на то, что у нас нет офиса, каждый день мы все встречаемся на видео-собрании в 9:30 утра по Торонто. Для меня это 21:30 вечера, чему я несказанно рад. К этому времени я уже съездил на пляж, прослушав страниц сто какой-нибудь интересной книги, сходил в магазин, покосил газон, поучился пару часов и выполнил все задачи, назначенные на этот день по работе. Когда некоторые еще зевают, попивая утренний кофе – у меня уже все сделано 😊
Перспективы
Удаленная работа в зарубежной компании может повлечь релокацию, даже если нет высшего образования (как у меня). Но я пока скептически отношусь к идее переезда в Канаду из-за высокой стоимости жизни и налогов.
Карьерный рост тоже возможен. Помимо ежегодной индексации зарплаты на 3-6%, многие компании дают акции сотрудникам которые работают дольше определенного времени (обычно два года).
Обычный программист может вырасти в software engineer, а так же стать team lead (менеджером команды или продукта). Помимо этого, с опытом можно заслужить звание senior software engineer которое предполагает более высокий уровень оплаты труда.
Минусы такой работы
Конкретно в Канаде есть серия дурацких законов, из-за которых независимым контраткторам, как я, не положены оплачиваемые отпуски, больничные, страховка и прочие ништяки. Это немного подбешивает, но зато у нас зарплаты выше, чем у канадцев, чтобы компенсировать эти неудобства. На отпуск просто приходится копить самому, или как я - не брать отпусков и работать даже в путешествиях :)
Минусы удаленной работы мне сложно искать так как я никогда по-другому не работал. Обязательно нужен отдельный кабинет в доме и хороший интернет (а лучше два). Нужно больше мониторов, так как один всегда занят чатом с командой.
Пожалуй тоже минус - на удаленке надо вкалывать больше чем на обычной работе. Я слышал, что в офисах люди иногда халявят, могут ходить в кафе, могут лениться и ничего не делать, общаться с коллегами. На удаленке у меня всегда есть таймер, который я должен включать когда работаю и выключать когда нет. На некоторых работах этот таймер периодически делает скриншоты всех экранов и следит за активностью мыши и клавиатуры. Ну и в конце концов, даже без таймеров, если удаленный сотрудник не выдает ожидаемые результаты, его намного проще уволить и заменить другим. Поэтому работать всегда приходится в полную силу.
В будущих постах я постараюсь рассказать о том, как найти удаленную работу программистам и не только. Единственное требование ко всем кандитатам – это знание английского языка. Но если Вы еще не знаете английский, это тоже не беда – скоро будет пост и о том, как учить языки, специально для написания которого, мне пришлось выучить новый язык с нуля.
отличный пост! примерно в 2000-х я тоже пытался разобраться в вордпрессе, но столкнувшись с довольно странным дизайном и циклом по которому работает эта система, а так же с постоянными тормозами, спамом и допиливаниями с целью оптимизации - через какое-то время охладел к вордпрессу. видимо такова плата за бесплатность :)) и вот прошло уже лет 15 и вроде бы не сильно что-то изменилось в этом плане, разве что появилась подписка на вордпресс и интернет вместе с выделенным хостингом стал побыстрее и подешевле.
Вы как гражданин РФ работает контрактором на Канаду?