Одним из основных факторов, задерживающих развитие Интернета вещей (IoT), является недостаток квалифицированных кадров: на рынке просто нет нужного количества инженеров с опытом проектирования IoT. Примерно 68% сталкиваются с трудностями в поиске разработчиков для IoT-проектов, согласно исследованиям, проведенным компанией Canonical (https://blog.golang.org/survey2016-results). Оборотная сторона дефицита кадров — карьерные перспективы для специалистов с востребованными навыками. В данной статье речь пойдет о языках программирования, чаще всего применяемых в области Интернете вещей, а именно Java, C, C++, Python, JavaScript и Go, а затем выясним, на какие заработки могут рассчитывать специалисты, владеющие ими. Учитываются еще факторы стажа и географического положения.
Как ведущая страна в области технического прогресса, Соединенные Штаты часто служат для остального мира эталоном оплаты труда (http://www.ioti.com/iot-strategy/2017-salary-guide-15-hottest-digital-marketing-jobs-and-what-they-earn) в ИТ-отрасли. На рисунке 1 приведен обзор наиболее распространенных языков программирования для Интернета вещей с соответствующими данными об окладах разработчиков в США на основании данных от компании Payscale (https://www.payscale.com/). Разработчики Java и C в среднем могут рассчитывать на более высокие оклады, чем специалисты по другим языкам, используемым для Интернета вещей, хотя потенциально самые высокие оклады у опытных кодировщиков Go. Квалифицированные разработчики Go — среди самых высокооплачиваемых в отрасли, несмотря на сравнительно скромные заработки их коллег начального и среднего уровня.
Рисунок 1. Средние оклады специалистов, владеющих наиболее распространенными языками программирования для Интернета вещей в США |
Посмотрим на средние оклады специалистов по наиболее распространенным языкам программирования для Интернета вещей, начиная с Java.
Самый распространенный язык программирования для Интернета вещей
Java применяется в различных областях, от программирования серверов до мобильных приложений под Android. По данным отчета IoT Developer Survey 2017 (https://www.slideshare.net/IanSkerrett/iot-developer-survey-2017), подготовленного некоммерческой корпорацией Eclipse Foundation, Java возглавляет список языков программирования, используемых в разработке Интернета вещей, особенно шлюзов и «облака».
Одно из важных преимуществ использования Java для разработки IoT — переносимость. Java не имеет никаких аппаратных ограничений, то есть вы можете проектировать и отлаживать программный код Java на компьютере и размещать его практически на любом устройстве с виртуальной машиной Java. По этой причине многие компании нанимают разработчиков для проектов IoT, как показано на рисунке 2.
Рисунок 2. Средние оклады разработчиков Java (по данным Payscale) |
Средняя зарплата разработчиков Java в США, по данным Payscale, — 88 000 долл. в год. В Швейцарии разработчикам Java в среднем платят больше, примерно 96 000 долл. в год. При этом средние оклады разработчиков Java в Великобритании и Израиле значительно ниже — 45 000 и 33 000 долл. соответственно.
Однако средний оклад разработчика Java, вероятно, не вполне отражает реальную картину, поскольку оплата сильно зависит от опыта и должности конкретного специалиста. Например, разрыв между младшим и старшим разработчиками Java в США — 66 000 и 97 000 долл., а в Великобритании — 41 000 и 61 000 долл. (рисунок 3).
Рисунок 3. Средние оклады младших, средних и старших разработчиков Java в США и Великобритании |
Исследование окладов разработчиков Java в США показывает, что средняя оплата в различных штатах может быть значительно выше средней по стране. Например, средняя зарплата разработчиков в Калифорнии (133 000 долл.) — самая высокая в США. Этот уровень в немалой степени определяется общим высоким спросом на ИТ-специалистов в штате.
C — основной язык программирования для встроенных устройств
Язык программирования C — следующий по популярности язык для Интернета вещей. Однако он считается ведущей технологией для разработки встроенных устройств с ограниченной функциональностью, как отмечают специалисты Eclipse Foundation.
Этот язык обеспечивает прямой доступ к низкоуровневым аппаратным API-интерфейсам. Благодаря сходству с машинным языком C отличается чрезвычайными быстродействием и гибкостью и прекрасно подходит для устройств Интернета вещей с малой вычислительной мощностью.
Зарплаты разработчиков C, как и Java, сильно различаются в разных странах мира. В США разработчик C может рассчитывать примерно на 100 000 долл. в год, а в Швейцарии средний годовой оклад разработчика C — 92 000 долл. Среди рассмотренных нами стран меньше всего такие специалисты получают в Великобритании. По данным Payscale, средний годовой оклад разработчика C в Великобритании лишь немного превышает 40 000 долл., как показано на рисунке 4.
Рисунок 4. Средние годовые оклады разработчиков C |
Значительно различаются оклады младших и старших разработчиков C. Старшие специалисты зарабатывают почти вдвое больше работников начального уровня как в США, так и в Великобритании (рисунок 5).
Рисунок 5. Средние оклады младших, средних и старших разработчиков C в США и Великобритании |
C++ — язык номер один для Linux
Аналогично предшественнику, C, язык C++ широко применяется при проектировании встроенных систем. Однако главное преимущество C++ в вычислительной мощности, благодаря чему он является альтернативой C для более сложных задач.
C++ лучше всего применять для программирования с учетом особенностей аппаратных средств. Он хорошо сочетается с Linux, лидирующей операционной системой Интернета вещей. Но по сравнению с Java он проигрывает в переносимости.
Зарплаты инженеров, работающих с C++, ниже, чем у разработчиков C. В результате нашего исследования выяснилось, что разработчики C++ могут рассчитывать на 82-86 тыс. долл. и Израиле и Дании, а в США им приходится довольствоваться скромным доходом в 71 000 долл. (рисунок 6). Но несмотря на низкий средний уровень зарплат разработчиков C++ в США, опытные специалисты со стажем могут рассчитывать на шестизначный доход, как видно из рисунка 7.
Рисунок 6. Обзор средних окладов разработчиков C++ |
Рисунок 7. Средние оклады младших, средних и старших разработчиков C++ в США и Великобритании |
Python — решение для систем IoT с обработкой больших объемов данных
Один из наиболее распространенных языков программирования для Интернета, основная технология для научных вычислений, Python широко применяется и для разработок в сфере IoT. Это отличный выбор для приложений, обрабатывающих большие массивы данных, особенно если требуется организовывать сложные данные.
Кроме того, исходный текст Python отличается компактностью и чрезвычайно удобен для чтения благодаря ясному синтаксису языка. Он особенно хорош для небольших устройств с ограниченными вычислительными возможностями и памятью, хотя и уступает в быстродействии языкам C/C++.
Средние оклады разработчиков Python в США колеблются возле отметки 71 000 долл., а в Израиле и Швейцарии специалисты со схожими навыками получают около 68-67 тыс. долл. соответственно (рисунок 8). Как всегда, существует значительный разрыв в оплате труда разработчиков Python начального и старшего уровней, как показано на рисунке 9.
Рисунок 8. Средние оклады разработчиков Python |
Рисунок 9. Средние оклады младших, средних и старших разработчиков Python в США и Великобритании |
При более внимательном рассмотрении выясняется, что, несмотря на сравнительно низкий средний уровень по стране, индивидуальные оклады разработчиков Python в США могут быть очень высокими. Вследствие резко возросшего спроса на программистов и недостатка квалифицированных кадров оклады в некоторых штатах могут достигать 142 000 долл. Традиционно Калифорния находится в списке штатов с самыми высокими зарплатами технических специалистов. Местные разработчики Python получают в среднем около 135 000 долл.
JavaScript — лучшее решение для IoT-приложений, управляемых событиями
JavaScript является базовой технологией современных веб-разработок. По данным ежегодного исследования StackOverflow Developer Survey (https://insights.stackoverflow.com/survey/2017#top-paying-technologies), в течение последних пяти лет это один из самых распространенных языков программирования.
Наряду с другими областями применения, JavaScript чаще всего используется как язык для программирования систем IoT, управляемых событиями. Он пригоден для управления большими сетями связанных устройств и особенно хорош, когда требуется массово обрабатывать одни задачи, не ожидая завершения других. Одно из основных преимуществ JavaScript для Интернета вещей — высокая эффективность использования ресурсов.
Крупные компании, в том числе IBM и Samsung, активно внедряют JavaScript (а именно Node.js) в своих IoT-проектах, и спрос на разработчиков, владеющих JavaScript, остается высоким. Поэтому оклады в целом сохраняются на высоком уровне.
Разработчики JavaScript в Швейцарии получают в среднем около 96 000 долл. Удивительно, но средняя зарплата специалистов по JavaScript в США гораздо ниже; там разработчикам приходится довольствоваться 69 000 долл. (рисунок 10).
Рисунок 10. Средние оклады разработчиков JavaScript в разных странах мира |
Величина оклада заметно меняется от штата к штату. Например, мы выяснили, что больше всего американские разработчики JavaScript получают в Коннектикуте, Массачусетсе, Калифорнии и Нью-Йорке, где средний оклад составляет от 100 000 до 140 000 долл.
Аналогично оклады разработчиков JavaScript в большой степени зависят от опыта: специалисты по JavaScript со стажем в США могут получать в среднем до 100 000 долл. И примерно 60 000 долл. в Великобритании, как показано на рисунке 11.
Рисунок 11. Средние оклады младших, средних и старших разработчиков JavaScript в США и Великобритании |
Go — надежный инструмент для сложных IoT-сетей
Go представляет собой открытый язык программирования, созданный компанией Google. Он распространен гораздо меньше, чем языки, которые рассматривались выше, но обеспечивает мощную технологию для формирования уровня связи в любой системе IoT.
Параллелизм и возможность выполнять несколько процессов одновременно (ввод и вывод данных) — основные достоинства языка Go для Интернета вещей. В результате становится проще создавать сложные сети IoT со множеством датчиков и устройств.
Хотя в последнем отчете StackOverflow Developer Survey (https://insights.stackoverflow.com/survey/2017#most-popular-technologies) технология названа самой высокооплачиваемой в США, средний оклад программистов Go в США довольно скромен — около 73 000 долл., а в Великобритании 43 000 долл.
Поскольку у нас нет достаточных данных об окладах разработчиков Go, мы сосредоточимся на окладах специалистов в США и Великобритании, странах с наибольшим количеством разработчиков Go, согласно недавно опубликованному исследованию (https://blog.golang.org/survey2016-results), как показано на рисунке 12.
Рисунок 12. Средние оклады разработчиков Go в США и Великобритании |
Разработчики Go высокой квалификации в США могут рассчитывать на заработок до 140 000 долл., то есть почти в три раза больше, чем у начинающих программистов Go, и вдвое больше, чем у их опытных коллег в Великобритании (рисунок 13).
Рисунок 13. Средние оклады младших, средних и старших разработчиков Go в США и Великобритании |
Таким образом, оклады разработчиков, владеющих языками, наиболее широко применяемыми в области Интернета вещей, значительно различаются в зависимости от ряда ключевых факторов. Чтобы сделать выводы из полученной информации, важно охватить картину целиком и уметь вычленить доминирующие тенденции в развитии рынка.
Необходимое условие для того, чтобы занять достойное место на рынке Интернета вещей, — правильно определить направление его развития и соответствующим образом оценить свои услуги.