Сравнение языков программирования относительно работы на фриланс-бирже upwork.com + опрос

    Недавно (в конце марта 2016 года) делал исследование перспективности языков программирования на upwork.com для одного из своих проектов и подумал, что это может быть интересно кому-нибудь ещё.


    В первую очередь меня интересовало соотношение спрос/предложение по наиболее популярным ЯП, а так же уровень оплаты труда по каждому из них. Так же мне было любопытно какой уровень квалификации ожидают работодатели (и соответственно сколько они предполагают платить)


    image
    Процентное соотношение офферов по популярным языкам программирования


    На самом деле большая часть JavaScript и PHP офферов пересекаются, так что в реальности у остальных ЯП должно быть чуть больше процентов, но в то же время какие-то языки сюда вовсе не попали.


    Отбор языков программирования


    Поиском в гугле были отобраны топовые языки программирования (ЯП)


    • Java
    • Python
    • Javascript
    • C++
    • C#
    • SQL
    • PHP
    • Swift
    • Ruby

    Я позволил себе убрать из исследования SQL: работа исключительно программистом базы данных на апворке весьма редка, такие разработчики требуются чаще в крупные корпорации на постоянку, а на апворке знание SQL идет просто как практически обязательное дополнение к какому-либо другому основному языку.


    Поиск офферов на upwork.com


    Соотношение офферов вы видели на картинке выше, но кроме этого меня так же интересовали ожидания работодателей к уровню специалистов.


    image


    Я предполагал, что для разных ЯП ожидания работодателей будут сильно разными, но на практике разница оказалась незначительной.
    Чуть больше ожидают экспертности от 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$+


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



    image


    Если мы будем говорить только о самых высокооплачиваемых фрилансерах, то рейтинг будет таким:


    1. Python
    2. Ruby
    3. Swift
    4. Java
    5. Javascript
    6. PHP

    Думаю 1 место Python связано с тем, что сюда же попадают разные высокооплачиваемые аналитики, которые часто его используют и указывают в навыках.


    Если же брать от "средней" для апворка ставки 30$+, то Python и Swift поменяются местами:


    1. Swift
    2. Ruby
    3. Python

      Самое главное: соотношение спрос/предложение


    Простым делением общего количества офферов на количество аккаунтов фрилансеров по каждому ЯП была получена такая картина:


    image


    Цифры означают сколько офферов приходится на каждого работающего фрилансера. Рейтинг таков:


    1. Python (0,279)
    2. PHP (0,229)
    3. Ruby (0,216)
    4. JavaScript (0,200)
    5. Swift (0,188)
    6. Java (0,172)

      Критика исследования


    • Как отметилось выше, картина не полна, так как пришлось убрать из исследования C# и C++, оба языка отличные и могли бы побороться за рейтинги
    • JavaScript и его рейтинги не однозачен. Мы все прекрасно понимаем, что сделать анимацию на jQuery, полноценное приложение и бэкенд — 3 разных задачи совершенно разного уровня. В этом исследовании это никак не оценивается, но насколько мне известно программирование на Node.JS сейчас один из топовых трендов в глобальном мире разработки.
    • Я убрал из исследования неактивных фрилансеров, но не фильтровал работодателей по рейтингу или по количеству оплаченных часов. Многие офферы вечно висят не закрытыми, что может значительно искажать цифры на последней диаграмме. Тем не менее на распределение рейтинга это скорее всего не влияет.


      Выводы


    • Сложно конкурировать с индусами кодя на PHP, но на хлеб заработать всегда можно
    • Разработчиков мобильных приложений много, конкуренция выше чем для других ЯП, но те, кто кодит под iOS получают хорошо
    • Python и Ruby — хорошие языки для врыва на апворк
    • Вас может быть сложно найти работодателям, если вы разрабатываете под C# и C++, вам нужно самим слать proposals

    А ещё копетан очевидность на ухо шепчет, что:


    • Вам нужно знать английский
    • Знание SQL необходимо на каком языке вы бы не кодили
    • Понимание JavaScript необходимо, если вы собираетесь кодить под Web

    Буду признателен за объективную критику исследования и советы как его дополнить и сделать более полезным.

    Only registered users can participate in poll. Log in, please.

    А на каких ЯП вы зарабатываете себе на хлеб с маслом?

    А вы уже работаете на upwork.com?

    Share post

    Comments 75

      +2
      Пишу на Verilog. Основная конкуренция с соотечественниками.
        0
        а что разрабатываете?
          +1
          Заказы достаточно разнообразные. По основному направлению занимаюсь цифровой обработкой сигналов и системами связи.
        +1
        имхо, сейчас уже пора перестраивать мышление с ЯП на стек/платформу. Типа MEAN, iOS/Маки, .NET

        >программирование на Node.JS сейчас один из топовых трендов

        Точнее программирование на JS НЕ в песочнице броузера. А там уже и монга, и расширения броузера (firefox доставляет, да), нода — везде js и везде разный. v8 уже даже к постгресу прикрутили. Очень востребованы знания js при парсинге сайтов и сборе информации (а это вполне себе такой нормальный сегмент на апворке) — многие это делают на phantom.js, но в статистике это никак не отобразится потому как в таких заказах технология как правило не указывается — это на выбор исполнителя.
          –2
          Зачастую платформы однозначно завязаны на ЯПы: Android = Java, iOS = Swift (ну и пока еще Objective-C, но ненадолго), краулинг действительно не важно на чем делать, как и писать сайты — вариантов на чем много.
          Но что бы вы ни делали, ЯП нужен. Здесь, в этом исследовании проведен лишь относительный анализ ЯП, помимо этого сами по себе такие вещи как elasticsearch, big data, scala и иже с ними — самые восокооплачиваемые. Но все это не отменяет и никак не противоречит исследованию.
          +4
          «Not available for new work» — это же не неработающие, а скорее наоборот — занятые на нескольких проектах или одном фултайм. C# / C++ востребован в категории gamedev, причем с хорошим разбросом по ценам. Например, я уже третий год работаю на одном контракте фултайм, но вами был посчитан скорее всего как неактивный.
            +2
            И по ним статистика была бы гораздо интереснее — на чем пишут люди, достаточно занятые для того что бы отказываться от новых заказов.
              +2
              Тут скорее зависит от контракта и пожеланий работодателя. Если контракт без ограничения по длительности (пока не будет закрыт по согласию сторон), 8 часов в день, 5 дней в неделю, отпуск по желанию (фактически удаленный офис получается), то зачем искать еще что-то? Т.е. смысл такой — рейт используется более низкий, чем на почасовой оплате, но в итоге за месяц получается гораздо больше + контракт не ограничен по времени.
                0
                Это да, я и не спорю. Я говорю о том что интересно было бы посмотреть на распределение технологий между программистами которым предлагают «контракт без ограничения по длительности (пока не будет закрыт по согласию сторон), 8 часов в день, 5 дней в неделю, отпуск по желанию»
                  +1
                  Такой срез вряд ли получится собрать — подробную информацию о контрактах никто рассказывать не будет. Если про себя, то это C# / unity3d / node.js / gamedev + content generalist (low skill конечно, текстурки рисовать не умею, но хватает, чтобы показать, как можно сделать и сформулировать требования к контенту).
              0
              Нет, я не фильтровал по незанятым, я фильтровал только по тем, у кого нет ни одного отработанного часа.

              Не уверен при поиске автоматически отсекаются занятые или нет.

              В любом случае это исследование тенденций, а не супер-точных данных.
                +1
                У меня, например, fixedprice-контракт, в условиях оговорено — не менее 160 часов в месяц, учет ведется сторонним сервисом, не утилитой апворка (она считает только per-hour контракты). Т.е. апворк используется только как фиксация контракта. Те я по сути не доступен для новых контрактов, но и не имею активности уже более 2 лет. Деньги начисляются, а часы — нет. Думаю, таки не был посчитан.
                  0
                  Если когда-либо хотя бы доллар на апворке получили — были посчитаны. Там есть возможность поставить галочки типа «заработал ли сколько-то за последние полгода» — я ее не трогал.
                  Разумеется есть разные исключения, конечно статистика не отображает сверхточных конкретных цифр, как я отмечал это исследование тенденций, ведь как для исключительных случаев с программистами на одном языке так же есть исключительные случаи и для других, +- все одинаково.

                  Другое дело, что я прикинул статистику по популярным фреймворкам как многие спрашивали — картина не слабо меняется, на выходных оформлю исследование и тоже выложу статью.
                    0
                    «на выходных оформлю исследование и тоже выложу статью»

                    Так и не выложили, к сожалению. :(

              +1
              Не на upwork'е, но я до сих пор себе срубаю деньги, в том числе, когда пишу приложения на VB (VB.NET).
                +2

                Статистика интересная, но несколько неполная. На том же python много чего можно делать, от веба до математики, и это разный стек технологий, в котором язык далеко не на первом месте, а вот на ruby вряд ли что-то кроме рельсов нужно. Так что интереснее было бы больше по стекам статистику увидеть.

                  +2
                  По моим ощущениям, в основном, на апворке на питоне требуется писать парсеры (скраперы, граберы). Иногда проскакивают ML задачи и веб, но в сравнении с количеством заказов на парсеры, это капля в море.
                    0
                    На Django заказов более чем достаточно, не соглашусь, что это капля в море, а еще есть Flask и разработка API.
                    0
                    Куча софта на рубях написана никак не связанного с рельсами, в том числе системных программ. Хотя рельсы безусловно там топ1
                      0
                      Все же питон более распространен, чем руби на мой взгляд.
                        0
                        таки да, но рельсы распространеннее Джанго, похоже. В понедельник выложу на эту тему исследование)
                    • UFO just landed and posted this here
                        +2

                        И часто на апворке вы видите заказы в стиле: "Сделать убийцу brew"?)

                        0
                        На Ruby также многое пишут. Chef, Puppet plugins, например. Это если касательно подработки. Про продукты в целом я вообще молчу, их много. Хотя на Питоне больше, он чаще поставляется «из коробки» с ОС.
                          0
                          однако на веб-разработку на рельсах спрос намного больше, чем на django — это для меня оказалось сюрпризом.
                          готовлю новый анализ по фреймворкам как раз, завтра выложу, а то тут многие спрашивали
                        0
                        На ассемблере для x86-64 пишу, когда совсем припрет. К счастью, в последнее время это случается все реже.
                          0
                          Спасибо за ваш анализ. Даже при условии наличия каких-либо погрешностей все равно картина складывается целостная.
                            +2
                            Отличная статья, спасибо автору за труд. Но как показывает мне опыт на данный момент актуально делать сравнение направлений работы. Например: мобильная разработка, разработка back-end/front-end, дизайн, гейм-dev и т.д. И статистика будет совершенно другая. Как Native Android Developer работающий на Upwork скажу, что разработка мобильных приложений достаточно актуальна и ЯП абсолютно не имеет смысла (Java, C++, Swift, C# Unity). Если смотреть на статистику с другого ракурса (по направлениям работы) то картина совершенно другая. Я это веду к тому, что такой статьей можно запросто напугать будущего талантливого фрилансера, только потому, что его ЯП не вошел даже в статистику.
                              –1
                              Пожалуйста

                              Мне весьма жаль, что C# вывалился из статистики =(

                              Вообще аналитика была проведена для мастеркласса типа по «тенденциям в мире разработки» и далее под тренинг по Питону для начинающих, грубо говоря показать, что не только пыхом единым живет мир разработки и в частности фриланса.

                              Очень отличаться картина может, если отвязаться от апворка, наглядное подтверждение этому недавно опубликованное исследование stackoverflow.

                              Надеюсь, начинающие фрилансеры не будут пугаться! На всем можно зарабатывать, было бы желание :-)
                              +1
                              Минутка критики: на апворке работодатели зачастую проставляют параметры заданий от балды. Например часто путают Java и JavaScript. Пихают в описание задачи все теги подряд. Либо наоборот, не ставят теги языков так как им пофигу на каком вы это сделете. Про уровни фрилнсеров тоже часто ерунда бывает — постоянно вижу задачи типа «сделайте мне фейсбук» с Entry Level и 100$ бюджетом.
                              В общем многие заказчики в программировании не разбираются, поэтому описания задач там — не сказать чтобы хорошая выборка для подсчетов статистики.
                              Не знаю как на других биржах с этим дела обстоят, но думаю примерно так же. Так что подобные исследования разве что очень общую и грубую картину позволяют получить.
                                0
                                полностью согласен, картина грубая и общая, но более крупной биржи фриланса на текущий момент нет =\
                                  +1
                                  И довольно часто преобладающий спрос смещается в то или иное направление, к примеру, на одной неделе всем подавай рельсы, на другой повально джанго, думаю это может быть результатом прошлых маркетинговых компаний по популяризации технологий.
                                  0
                                  Апворк гораздо хуже почившего еланса в этом плане.
                                    0
                                    Ага, меня лично на елансе больше находили, чем на тогда еще одеске. Но, к сожалению, еланс уже в прошлом и о нём можно только ностальгировать :(
                                    +3
                                    Я так и не понял в чем проблема. Прелесть фрилансера в том, что ты сам выбираешь себе заказчика. Тебя не заставляют насильно делать Фейсбук за 100 у.е. Если видишь, что заказчик просит на асемблере сделать ему сайт — просто не откликайся на вакансию… Как фрилансер со стажем могу сказать, что на Upwork достаточно много заказчиков которые разбираются в предметной области и знают цену написание ПО.
                                      +3
                                      Проблема не в том что сложно работу найти, а в том что статистика, собранная по таким сайтам будет включать в себя такие косячные задания, причем их там действительно много, так что результат будет искажен.
                                      +3
                                      Когда об этом указывает заказчику, то он отвечает — да, я знаю, а указаны были кривые технологии / языки, чтобы отсеять левых людей / индусов, которые аплаятся автоматом по ключевым словам. Т.е. это такой фильтр на профпригодность. Например, если на unity3d-контракт указан еще и C++ и какой-то индус пишет «hello, sir, i super master of C++ for unity3d», то такое сразу отклоняется.
                                        0
                                        Ого, не слышал о таком! Любопытно
                                          +1
                                          Надо аккуратно с такими способами. Для того же unity3d есть С++ Low-level Native Plugin Interface ( http://docs.unity3d.com/Manual/NativePluginInterface.html ). Думаю, специалисты по нему тоже есть, хотя для фриланс биржи это и экзотика скорее всего.
                                        0
                                        >Знание SQL необходимо на каком языке вы бы не кодили

                                        — а другие типы БД кроме реляционных не используются?
                                        иерархическая, сетевая, многомерная…
                                          0
                                          Например, Mongo пользуется спросом, но какой там язык?

                                          Остальные в рамках фриланса больше будут похожи на статистическую погрешность, чем какую-то полезную информацию.
                                          0
                                          Считаю что тема мобильной разработки не совсем раскрыта, так как там как правило указывается платформа а к ней уже соответственно идет язык. Например на iOS это как Swift так и Objective-C, а на Андроид как правило указывается Java, что сильно искажает, на мой взгляд, картину по этому языку.
                                          • UFO just landed and posted this here
                                              +4
                                              Зарабатываю на жизнь задушевными разговорами на английском с заказчиком. Только варианта «английский» в списке нет.
                                              +2
                                              Ещё важно сравнивать популярность не по языку, а по фреймворку. По статистике описанной выше кажется то, что доля ruby вообще мизерная. Но если мы, например, начнём сравнивать laravel и rails, то увидим, что популярность почти одинаковая. А для комфортной разработки на php как никак придётся использовать фреймворки.
                                              Rails — 864 jobs;
                                              laravel — 578 jobs.
                                                0
                                                Rails ассоциируется с Ruby и стоит особняком, а Laravel довольно таки новый фреймворк, который все еще развивается и набирает популярность.
                                                0
                                                Почему в голосовании за ЯП нет ассемблера?
                                                  0
                                                  слишком много диалектов, не знал какой написать :(
                                                  0
                                                  В основном юзаю Java, ещё хорошо получается заработать на 1С.
                                                    +2
                                                    Я считаю, что неактивные аккаунты не представляют конкуренции и решил сделать поиск только по аккаунтам, заработавшим на апворке хотя бы доллар.

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

                                                    По-моему, так будет честнее. Если судить по моему опыту (а я какое-то время назад очень много публикаций просеивал), новые заказчики пишут неадекватные задания чаще, чем те, кто уже отдавал кому-то проекты. Заказы от новичков фейлятся или вообще не начинаются немного чаще, чем проекты от заказчиков со стажем. Соответственно, если исключать заказчиков-новичков, картина станет ещё немного ближе к реальности.
                                                      0
                                                      Пишу в компании сразу на трёх языках: Lua, Java и Objective-C.
                                                        0
                                                        Готовлюсь к относительно скорому выходу на Upwork, так что было приятно почитать о тамошних тенденциях.
                                                        Был удивлен, что ожидания уровня программиста у заказчиков примерно равны на всех языках.
                                                          +1
                                                          Думаю потому что это больше связано с психологией, чем с ЯП.
                                                          Типа есть 3 типа людей: «хочу самое лучшее/дорогое», «мне хоть как-нибудь» и «ну совсем плохо не надо, но и переоцененные не нужны»
                                                          0
                                                          Итого, пока что — средний голосователь — веб-программист. Держите его!!!
                                                            –1
                                                            Почему? Я вот гоняю javascript на бэкенде и C# на фронте (не вебсайты те), поставил обе галки. Я веб-программист?
                                                              0
                                                              Какой неожиданный стек — JS на бэкенде и C# на фронте О_о.
                                                              Сначала даже подумал, что прочел неверно.
                                                                +1
                                                                Почему неожиданный? Мобильный геймдев на фронте, nodejs на бэке. Вебом там не пахнет — чистый tcp стрим + tls + кастомный протокол.
                                                            0
                                                            По своему опыту скажу, что делать upwork основным «местом работы» не стоит, лучше набирать базу клиентом и работать напрямую. А то upwork славится блокировкой аккаунтов без повода
                                                              0
                                                              Дельный совет. Еще есть вариант устроиться например в toptal — стабильная удаленная работа. Мы, кстати, с одним американским другом сейчас его коленочную версию запускаем — будем аутсорсить на американские студии.
                                                                0
                                                                У них иногда срабатывает система защиты, если ты работал, например, по 150-300 баксов за контракт, а потом резко раз — и 1.5к, считается, что попытка отмывания денег и тп. У меня так было, довольно неприятно. Я даже не мог ничего сделать по контракту, а дедлайн приближался. Дважды обращался в саппорт, каждый раз попадал на нового индуса. На второго уже начал наезжать, что херовый саппорт, херовая площадка и тп. В итоге, продержав неделю, разлочили. На попытку получить объяснения, получил ответ примерно такого вида: «у вас в аккаунте была issue, теперь ее нет». Что это было и почему нужно было их подпинывать — яхз. Да, клиента так же залочили через неделю (и также разлочили позднее), но деньги я уже получил к тому времени. :) После повышения суммы контракта больше таких случаев не было. Еще они лочили аккаунты, у кого были указаны города в Крыму, но то такое, специфическое.
                                                                  0
                                                                  Ну у меня по другому было, я нашел проект на стороне на фуллтайм (не увел клиента с апворка, а именно мне лично в скайп постучались), поэтому я полтора месяца не работал на upwork, меня заблокировали по подозрению в мошенничестве! Без объяснения причин. Я тоже сначала звонил, толку было мало, а потом уже начал наезжать и три дня спустя после угроз (как никак репутацию надо было отстаивать, а то мошенником обозвали) меня разлочили. Также объяснения не было, они только извинились шаблонным письмом. В общем доверия к ним нет, хорошо что я тогда и деньги вывести успел, и с некоторыми клиентами уже напрямую работал (ну то есть появилась своя клиентская база).
                                                                  На самом деле они мне даже пользу принесли, после этой блокировки, часть клиентов с апворка начала со мной напрямую работать, так как они мне доверяли и тоже посчитали, что апворк что-то дурит =)
                                                                    0
                                                                    Leopotam green_tree
                                                                    А когда это произошло с вами, ребят?
                                                                      0
                                                                        0
                                                                        конец декабря 2015, разлочить удалось лишь в феврале
                                                                          0
                                                                          Leopotam, green_tree

                                                                          Короче это у них болезнь. Жаль и не думаю, что есть смысл надеяться на какие-либо положительные изменения.

                                                                          Спасибо вам большое за то, что поделились этим опытом, я относительно недавно начал работать там и о таких подводных камнях не догадывался.
                                                                            0
                                                                            я начал там работать с 2013, поэтому не знаю как там до этого было
                                                                            но вот сильные изменения случились после слияния с elance, то есть именно как odesk переименовали в upwork
                                                                            до этого все вменяемо было, по крайней мере для меня
                                                                              0
                                                                              Ну по сравнению с рунетовскими биржами — это закон и порядок. :) Те по сути я уже 3.5 года отработал на одеске — косяк был только один раз в самом начале, потом все ровно.
                                                                    +1
                                                                    Подтверждаю. Под мобайл конкуренция сильно больше чем под пхп.
                                                                      0
                                                                      А под какой именно мобайл?
                                                                      –2
                                                                      А на каких ЯП вы зарабатываете себе на хлеб с маслом?

                                                                      На русском и английском :-)
                                                                        –2
                                                                        «Знание SQL необходимо на каком языке вы бы не кодили»

                                                                        Ну прям уж таки и необходимо? За 2.5 года разработки под iOS у меня ни разу не представился шанс применить знания SQL.
                                                                          –1

                                                                          Значит, задачи были тривиальные, при которых CoreData хватало. Хотя, на андроиде вот тоже можно изначально какую-то orm взять и использовать, без знания sql написанный таким образом код будет страшненьким.

                                                                          +1
                                                                          С помощью R я иногда, наоборот, трачу деньги на хлеб с маслом более эффективно.
                                                                            0
                                                                            Основной язык сейчас Scala. Но не так давно зарабатывал на Haskell и, немного, на R — по этому отметил и их.

                                                                            Only users with full accounts can post comments. Log in, please.