Недавно (в конце марта 2016 года) делал исследование перспективности языков программирования на upwork.com для одного из своих проектов и подумал, что это может быть интересно кому-нибудь ещё.
В первую очередь меня интересовало соотношение спрос/предложение по наиболее популярным ЯП, а так же уровень оплаты труда по каждому из них. Так же мне было любопытно какой уровень квалификации ожидают работодатели (и соответственно сколько они предполагают платить)
Процентное соотношение офферов по популярным языкам программирования
На самом деле большая часть JavaScript и PHP офферов пересекаются, так что в реальности у остальных ЯП должно быть чуть больше процентов, но в то же время какие-то языки сюда вовсе не попали.
Отбор языков программирования
Поиском в гугле были отобраны топовые языки программирования (ЯП)
- Java
- Python
- Javascript
- C++
- C#
- SQL
- PHP
- Swift
- Ruby
Я позволил себе убрать из исследования SQL: работа исключительно программистом базы данных на апворке весьма редка, такие разработчики требуются чаще в крупные корпорации на постоянку, а на апворке знание SQL идет просто как практически обязательное дополнение к какому-либо другому основному языку.
Поиск офферов на upwork.com
Соотношение офферов вы видели на картинке выше, но кроме этого меня так же интересовали ожидания работодателей к уровню специалистов.
Я предполагал, что для разных ЯП ожидания работодателей будут сильно разными, но на практике разница оказалась незначительной.
Чуть больше ожидают экспертности от Java, C++, C# и Ruby разработчиков и чуть больше терпимы к новичкам в PHP и внезапно опять же C#.
В среднем — 51,5% работодателей ожидает intermediate, 26,5% expert и 22% entry.
Поиск работающих фрилансеров
К большому сожалению поиск по фрилансерам C++ (3%) и C# (5,9%) не давал актуальных результатов. По этой причине мне пришлось убрать их из дальнейшего исследования, не смотря на то, что спрос на них больше, чем на те же Ruby (4,5%) и Swift (2,5%). Простите мне это, пожалуйста.
Есть два типа "фрилансеров" на апворке — те, кто зарабатывает там и те, кто только зарегистрировался и забил. Я считаю, что неактивные аккаунты не представляют конкуренции и решил сделать поиск только по аккаунтам, заработавшим на апворке хотя бы доллар.
Мне так же было интересны их ожидания об оплате труда.
При поиске фрилансеров на апворке можно фильтровать их по часовой ставке:
- < 10$
- 10 — 30$
- 30 — 60$
60$+
С учетом того, что все они хоть сколько-то да зарабатывают это может дать какую-то картину того на каком ЯП больше зарабатывают по сравнению с другими.
Если мы будем говорить только о самых высокооплачиваемых фрилансерах, то рейтинг будет таким:
- Python
- Ruby
- Swift
- Java
- Javascript
- PHP
Думаю 1 место Python связано с тем, что сюда же попадают разные высокооплачиваемые аналитики, которые часто его используют и указывают в навыках.
Если же брать от "средней" для апворка ставки 30$+, то Python и Swift поменяются местами:
- Swift
- Ruby
- Python
Самое главное: соотношение спрос/предложение
Простым делением общего количества офферов на количество аккаунтов фрилансеров по каждому ЯП была получена такая картина:
Цифры означают сколько офферов приходится на каждого работающего фрилансера. Рейтинг таков:
- Python (0,279)
- PHP (0,229)
- Ruby (0,216)
- JavaScript (0,200)
- Swift (0,188)
- Java (0,172)
Критика исследования
- Как отметилось выше, картина не полна, так как пришлось убрать из исследования C# и C++, оба языка отличные и могли бы побороться за рейтинги
- JavaScript и его рейтинги не однозачен. Мы все прекрасно понимаем, что сделать анимацию на jQuery, полноценное приложение и бэкенд — 3 разных задачи совершенно разного уровня. В этом исследовании это никак не оценивается, но насколько мне известно программирование на Node.JS сейчас один из топовых трендов в глобальном мире разработки.
Я убрал из исследования неактивных фрилансеров, но не фильтровал работодателей по рейтингу или по количеству оплаченных часов. Многие офферы вечно висят не закрытыми, что может значительно искажать цифры на последней диаграмме. Тем не менее на распределение рейтинга это скорее всего не влияет.
Выводы
- Сложно конкурировать с индусами кодя на PHP, но на хлеб заработать всегда можно
- Разработчиков мобильных приложений много, конкуренция выше чем для других ЯП, но те, кто кодит под iOS получают хорошо
- Python и Ruby — хорошие языки для врыва на апворк
- Вас может быть сложно найти работодателям, если вы разрабатываете под C# и C++, вам нужно самим слать proposals
А ещё копетан очевидность на ухо шепчет, что:
- Вам нужно знать английский
- Знание SQL необходимо на каком языке вы бы не кодили
- Понимание JavaScript необходимо, если вы собираетесь кодить под Web
Буду признателен за объективную критику исследования и советы как его дополнить и сделать более полезным.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (73)
gearbox
15.04.2016 11:12+1имхо, сейчас уже пора перестраивать мышление с ЯП на стек/платформу. Типа MEAN, iOS/Маки, .NET
>программирование на Node.JS сейчас один из топовых трендов
Точнее программирование на JS НЕ в песочнице броузера. А там уже и монга, и расширения броузера (firefox доставляет, да), нода — везде js и везде разный. v8 уже даже к постгресу прикрутили. Очень востребованы знания js при парсинге сайтов и сборе информации (а это вполне себе такой нормальный сегмент на апворке) — многие это делают на phantom.js, но в статистике это никак не отобразится потому как в таких заказах технология как правило не указывается — это на выбор исполнителя.vabolshakov
15.04.2016 15:02-2Зачастую платформы однозначно завязаны на ЯПы: Android = Java, iOS = Swift (ну и пока еще Objective-C, но ненадолго), краулинг действительно не важно на чем делать, как и писать сайты — вариантов на чем много.
Но что бы вы ни делали, ЯП нужен. Здесь, в этом исследовании проведен лишь относительный анализ ЯП, помимо этого сами по себе такие вещи как elasticsearch, big data, scala и иже с ними — самые восокооплачиваемые. Но все это не отменяет и никак не противоречит исследованию.
Leopotam
15.04.2016 11:17+4«Not available for new work» — это же не неработающие, а скорее наоборот — занятые на нескольких проектах или одном фултайм. C# / C++ востребован в категории gamedev, причем с хорошим разбросом по ценам. Например, я уже третий год работаю на одном контракте фултайм, но вами был посчитан скорее всего как неактивный.
gearbox
15.04.2016 11:51+2И по ним статистика была бы гораздо интереснее — на чем пишут люди, достаточно занятые для того что бы отказываться от новых заказов.
Leopotam
15.04.2016 11:57+2Тут скорее зависит от контракта и пожеланий работодателя. Если контракт без ограничения по длительности (пока не будет закрыт по согласию сторон), 8 часов в день, 5 дней в неделю, отпуск по желанию (фактически удаленный офис получается), то зачем искать еще что-то? Т.е. смысл такой — рейт используется более низкий, чем на почасовой оплате, но в итоге за месяц получается гораздо больше + контракт не ограничен по времени.
gearbox
15.04.2016 12:00Это да, я и не спорю. Я говорю о том что интересно было бы посмотреть на распределение технологий между программистами которым предлагают «контракт без ограничения по длительности (пока не будет закрыт по согласию сторон), 8 часов в день, 5 дней в неделю, отпуск по желанию»
Leopotam
15.04.2016 12:11+1Такой срез вряд ли получится собрать — подробную информацию о контрактах никто рассказывать не будет. Если про себя, то это C# / unity3d / node.js / gamedev + content generalist (low skill конечно, текстурки рисовать не умею, но хватает, чтобы показать, как можно сделать и сформулировать требования к контенту).
vabolshakov
15.04.2016 14:55Нет, я не фильтровал по незанятым, я фильтровал только по тем, у кого нет ни одного отработанного часа.
Не уверен при поиске автоматически отсекаются занятые или нет.
В любом случае это исследование тенденций, а не супер-точных данных.Leopotam
16.04.2016 06:41+1У меня, например, fixedprice-контракт, в условиях оговорено — не менее 160 часов в месяц, учет ведется сторонним сервисом, не утилитой апворка (она считает только per-hour контракты). Т.е. апворк используется только как фиксация контракта. Те я по сути не доступен для новых контрактов, но и не имею активности уже более 2 лет. Деньги начисляются, а часы — нет. Думаю, таки не был посчитан.
vabolshakov
16.04.2016 08:47Если когда-либо хотя бы доллар на апворке получили — были посчитаны. Там есть возможность поставить галочки типа «заработал ли сколько-то за последние полгода» — я ее не трогал.
Разумеется есть разные исключения, конечно статистика не отображает сверхточных конкретных цифр, как я отмечал это исследование тенденций, ведь как для исключительных случаев с программистами на одном языке так же есть исключительные случаи и для других, +- все одинаково.
Другое дело, что я прикинул статистику по популярным фреймворкам как многие спрашивали — картина не слабо меняется, на выходных оформлю исследование и тоже выложу статью.
Areso
15.04.2016 11:18+1Не на upwork'е, но я до сих пор себе срубаю деньги, в том числе, когда пишу приложения на VB (VB.NET).
Bringoff
15.04.2016 11:28+2Статистика интересная, но несколько неполная. На том же python много чего можно делать, от веба до математики, и это разный стек технологий, в котором язык далеко не на первом месте, а вот на ruby вряд ли что-то кроме рельсов нужно. Так что интереснее было бы больше по стекам статистику увидеть.
ragimovich
15.04.2016 12:54+2По моим ощущениям, в основном, на апворке на питоне требуется писать парсеры (скраперы, граберы). Иногда проскакивают ML задачи и веб, но в сравнении с количеством заказов на парсеры, это капля в море.
vabolshakov
15.04.2016 15:04На Django заказов более чем достаточно, не соглашусь, что это капля в море, а еще есть Flask и разработка API.
vabolshakov
15.04.2016 15:05Куча софта на рубях написана никак не связанного с рельсами, в том числе системных программ. Хотя рельсы безусловно там топ1
MartinX
16.04.2016 08:47Все же питон более распространен, чем руби на мой взгляд.
vabolshakov
16.04.2016 08:48таки да, но рельсы распространеннее Джанго, похоже. В понедельник выложу на эту тему исследование)
akzhan
17.04.2016 02:48На Ruby также многое пишут. Chef, Puppet plugins, например. Это если касательно подработки. Про продукты в целом я вообще молчу, их много. Хотя на Питоне больше, он чаще поставляется «из коробки» с ОС.
vabolshakov
17.04.2016 10:26однако на веб-разработку на рельсах спрос намного больше, чем на django — это для меня оказалось сюрпризом.
готовлю новый анализ по фреймворкам как раз, завтра выложу, а то тут многие спрашивали
CodeRush
15.04.2016 11:44На ассемблере для x86-64 пишу, когда совсем припрет. К счастью, в последнее время это случается все реже.
paratagas
15.04.2016 12:07Спасибо за ваш анализ. Даже при условии наличия каких-либо погрешностей все равно картина складывается целостная.
lazexe
15.04.2016 12:55+2Отличная статья, спасибо автору за труд. Но как показывает мне опыт на данный момент актуально делать сравнение направлений работы. Например: мобильная разработка, разработка back-end/front-end, дизайн, гейм-dev и т.д. И статистика будет совершенно другая. Как Native Android Developer работающий на Upwork скажу, что разработка мобильных приложений достаточно актуальна и ЯП абсолютно не имеет смысла (Java, C++, Swift, C# Unity). Если смотреть на статистику с другого ракурса (по направлениям работы) то картина совершенно другая. Я это веду к тому, что такой статьей можно запросто напугать будущего талантливого фрилансера, только потому, что его ЯП не вошел даже в статистику.
vabolshakov
15.04.2016 15:10-1Пожалуйста
Мне весьма жаль, что C# вывалился из статистики =(
Вообще аналитика была проведена для мастеркласса типа по «тенденциям в мире разработки» и далее под тренинг по Питону для начинающих, грубо говоря показать, что не только пыхом единым живет мир разработки и в частности фриланса.
Очень отличаться картина может, если отвязаться от апворка, наглядное подтверждение этому недавно опубликованное исследование stackoverflow.
Надеюсь, начинающие фрилансеры не будут пугаться! На всем можно зарабатывать, было бы желание :-)
JediPhilosopher
15.04.2016 14:34+1Минутка критики: на апворке работодатели зачастую проставляют параметры заданий от балды. Например часто путают Java и JavaScript. Пихают в описание задачи все теги подряд. Либо наоборот, не ставят теги языков так как им пофигу на каком вы это сделете. Про уровни фрилнсеров тоже часто ерунда бывает — постоянно вижу задачи типа «сделайте мне фейсбук» с Entry Level и 100$ бюджетом.
В общем многие заказчики в программировании не разбираются, поэтому описания задач там — не сказать чтобы хорошая выборка для подсчетов статистики.
Не знаю как на других биржах с этим дела обстоят, но думаю примерно так же. Так что подобные исследования разве что очень общую и грубую картину позволяют получить.vabolshakov
15.04.2016 15:11полностью согласен, картина грубая и общая, но более крупной биржи фриланса на текущий момент нет =\
Ungla
18.04.2016 14:38+1И довольно часто преобладающий спрос смещается в то или иное направление, к примеру, на одной неделе всем подавай рельсы, на другой повально джанго, думаю это может быть результатом прошлых маркетинговых компаний по популяризации технологий.
ITurchenko
15.04.2016 15:11Апворк гораздо хуже почившего еланса в этом плане.
vabolshakov
15.04.2016 15:12Ага, меня лично на елансе больше находили, чем на тогда еще одеске. Но, к сожалению, еланс уже в прошлом и о нём можно только ностальгировать :(
lazexe
15.04.2016 17:35+3Я так и не понял в чем проблема. Прелесть фрилансера в том, что ты сам выбираешь себе заказчика. Тебя не заставляют насильно делать Фейсбук за 100 у.е. Если видишь, что заказчик просит на асемблере сделать ему сайт — просто не откликайся на вакансию… Как фрилансер со стажем могу сказать, что на Upwork достаточно много заказчиков которые разбираются в предметной области и знают цену написание ПО.
JediPhilosopher
15.04.2016 19:28+3Проблема не в том что сложно работу найти, а в том что статистика, собранная по таким сайтам будет включать в себя такие косячные задания, причем их там действительно много, так что результат будет искажен.
Leopotam
16.04.2016 06:43+3Когда об этом указывает заказчику, то он отвечает — да, я знаю, а указаны были кривые технологии / языки, чтобы отсеять левых людей / индусов, которые аплаятся автоматом по ключевым словам. Т.е. это такой фильтр на профпригодность. Например, если на unity3d-контракт указан еще и C++ и какой-то индус пишет «hello, sir, i super master of C++ for unity3d», то такое сразу отклоняется.
splav_asv
17.04.2016 00:33+1Надо аккуратно с такими способами. Для того же unity3d есть С++ Low-level Native Plugin Interface ( http://docs.unity3d.com/Manual/NativePluginInterface.html ). Думаю, специалисты по нему тоже есть, хотя для фриланс биржи это и экзотика скорее всего.
maxminimus
15.04.2016 15:12>Знание SQL необходимо на каком языке вы бы не кодили
— а другие типы БД кроме реляционных не используются?
иерархическая, сетевая, многомерная…vabolshakov
15.04.2016 15:14Например, Mongo пользуется спросом, но какой там язык?
Остальные в рамках фриланса больше будут похожи на статистическую погрешность, чем какую-то полезную информацию.
protasov_a
15.04.2016 15:14Считаю что тема мобильной разработки не совсем раскрыта, так как там как правило указывается платформа а к ней уже соответственно идет язык. Например на iOS это как Swift так и Objective-C, а на Андроид как правило указывается Java, что сильно искажает, на мой взгляд, картину по этому языку.
yamatoko
15.04.2016 15:15Там не только с индусами надо бороться, но и русскими, которые демпингуют, их там тоже предостаточно.
gorodnev
15.04.2016 15:15+4Зарабатываю на жизнь задушевными разговорами на английском с заказчиком. Только варианта «английский» в списке нет.
quolpr
15.04.2016 15:15+2Ещё важно сравнивать популярность не по языку, а по фреймворку. По статистике описанной выше кажется то, что доля ruby вообще мизерная. Но если мы, например, начнём сравнивать laravel и rails, то увидим, что популярность почти одинаковая. А для комфортной разработки на php как никак придётся использовать фреймворки.
Rails — 864 jobs;
laravel — 578 jobs.sydorenko-vd
18.04.2016 10:25Rails ассоциируется с Ruby и стоит особняком, а Laravel довольно таки новый фреймворк, который все еще развивается и набирает популярность.
Xu4
15.04.2016 16:29+2Я считаю, что неактивные аккаунты не представляют конкуренции и решил сделать поиск только по аккаунтам, заработавшим на апворке хотя бы доллар.
Кстати, на странице с предложением работы часто видно дополнительную информацию по заказчику. Например, сколько заказчик потратил на оплату работы фрилансеров в целом. Так что, фильтровать заказчиков тоже можно, деля их на тех, кто заплатил хотя бы доллар и тех, кто только зарегистрировался.
По-моему, так будет честнее. Если судить по моему опыту (а я какое-то время назад очень много публикаций просеивал), новые заказчики пишут неадекватные задания чаще, чем те, кто уже отдавал кому-то проекты. Заказы от новичков фейлятся или вообще не начинаются немного чаще, чем проекты от заказчиков со стажем. Соответственно, если исключать заказчиков-новичков, картина станет ещё немного ближе к реальности.
DartNyan
15.04.2016 19:16Готовлюсь к относительно скорому выходу на Upwork, так что было приятно почитать о тамошних тенденциях.
Был удивлен, что ожидания уровня программиста у заказчиков примерно равны на всех языках.vabolshakov
15.04.2016 20:36+1Думаю потому что это больше связано с психологией, чем с ЯП.
Типа есть 3 типа людей: «хочу самое лучшее/дорогое», «мне хоть как-нибудь» и «ну совсем плохо не надо, но и переоцененные не нужны»
green_tree
16.04.2016 08:53По своему опыту скажу, что делать upwork основным «местом работы» не стоит, лучше набирать базу клиентом и работать напрямую. А то upwork славится блокировкой аккаунтов без повода
vabolshakov
16.04.2016 08:55Дельный совет. Еще есть вариант устроиться например в toptal — стабильная удаленная работа. Мы, кстати, с одним американским другом сейчас его коленочную версию запускаем — будем аутсорсить на американские студии.
Leopotam
16.04.2016 09:01У них иногда срабатывает система защиты, если ты работал, например, по 150-300 баксов за контракт, а потом резко раз — и 1.5к, считается, что попытка отмывания денег и тп. У меня так было, довольно неприятно. Я даже не мог ничего сделать по контракту, а дедлайн приближался. Дважды обращался в саппорт, каждый раз попадал на нового индуса. На второго уже начал наезжать, что херовый саппорт, херовая площадка и тп. В итоге, продержав неделю, разлочили. На попытку получить объяснения, получил ответ примерно такого вида: «у вас в аккаунте была issue, теперь ее нет». Что это было и почему нужно было их подпинывать — яхз. Да, клиента так же залочили через неделю (и также разлочили позднее), но деньги я уже получил к тому времени. :) После повышения суммы контракта больше таких случаев не было. Еще они лочили аккаунты, у кого были указаны города в Крыму, но то такое, специфическое.
green_tree
16.04.2016 09:07Ну у меня по другому было, я нашел проект на стороне на фуллтайм (не увел клиента с апворка, а именно мне лично в скайп постучались), поэтому я полтора месяца не работал на upwork, меня заблокировали по подозрению в мошенничестве! Без объяснения причин. Я тоже сначала звонил, толку было мало, а потом уже начал наезжать и три дня спустя после угроз (как никак репутацию надо было отстаивать, а то мошенником обозвали) меня разлочили. Также объяснения не было, они только извинились шаблонным письмом. В общем доверия к ним нет, хорошо что я тогда и деньги вывести успел, и с некоторыми клиентами уже напрямую работал (ну то есть появилась своя клиентская база).
На самом деле они мне даже пользу принесли, после этой блокировки, часть клиентов с апворка начала со мной напрямую работать, так как они мне доверяли и тоже посчитали, что апворк что-то дурит =)vabolshakov
16.04.2016 09:15Leopotam green_tree
А когда это произошло с вами, ребят?vabolshakov
16.04.2016 10:43Leopotam, green_tree
Короче это у них болезнь. Жаль и не думаю, что есть смысл надеяться на какие-либо положительные изменения.
Спасибо вам большое за то, что поделились этим опытом, я относительно недавно начал работать там и о таких подводных камнях не догадывался.green_tree
16.04.2016 10:46я начал там работать с 2013, поэтому не знаю как там до этого было
но вот сильные изменения случились после слияния с elance, то есть именно как odesk переименовали в upwork
до этого все вменяемо было, по крайней мере для меняLeopotam
16.04.2016 10:50Ну по сравнению с рунетовскими биржами — это закон и порядок. :) Те по сути я уже 3.5 года отработал на одеске — косяк был только один раз в самом начале, потом все ровно.
akzhan
17.04.2016 02:42-2А на каких ЯП вы зарабатываете себе на хлеб с маслом?
На русском и английском :-)
andrew8712
17.04.2016 21:51-2«Знание SQL необходимо на каком языке вы бы не кодили»
Ну прям уж таки и необходимо? За 2.5 года разработки под iOS у меня ни разу не представился шанс применить знания SQL.Bringoff
18.04.2016 18:46-1Значит, задачи были тривиальные, при которых CoreData хватало. Хотя, на андроиде вот тоже можно изначально какую-то orm взять и использовать, без знания sql написанный таким образом код будет страшненьким.
wickedweasel
18.04.2016 12:43+1С помощью R я иногда, наоборот, трачу деньги на хлеб с маслом более эффективно.
AndriAnoBoTS
Пишу на Verilog. Основная конкуренция с соотечественниками.
vabolshakov
а что разрабатываете?
AndriAnoBoTS
Заказы достаточно разнообразные. По основному направлению занимаюсь цифровой обработкой сигналов и системами связи.