Работающая в IT-сфере компания DataArt создала портрет среднестатистического программиста. Обобщённый портрет был составлен на основе двух тысяч фотографий разработчиков из восьми стран. Вопреки распространённому мнению, у типичного программиста нет бороды.
Выражение «типичный программист» встречается довольно часто, но в действительности никто не знает, что за этим стоит. В зависимости от личного опыта, под этим могут понимать и корпулентного бородача с банкой пива, и молодого человека в толстых очках, который заправляет свитер в джинсы, и хипстера с расписными руками и розовым ирокезом. DataArt решила выяснить, кто в действительности стоит за этим понятием.
Для анализа специалисты компании взяли фото 1541 мужчин и 512 женщин, которые работают с DataArt в восьми странах мира — Аргентине, Болгарии, Великобритании, Германии, Польше, США, Украине и России. В результате получились портреты усреднённых программистов — мужчины и женщины.
Для слияния предварительно обработанных алгоритмом лиц за основу был взят метод Сатьи Маллека, основанный на выделении ключевых 68 точек каждого лица в выборке — координат уголков глаз, бровей, губ, носа и так далее. Далее лица были разбиты на треугольники (триангулированы) по ключевым точкам, цвет пикселей внутри полученных треугольников для всех лиц в выборке был усреднён. Код проекта был написан на языках C++ с использованием фреймворков dlib/opencv.
На втором этапе исследования инженеры DataArt попытались выяснить, накладывает ли свою печать на внешность разработчика выбор той или иной технологии — происходит ли настоящая профессиональная деформация? Для того, чтобы портрет "типичного" программиста получился с характером, сохранилось больше характерных черт при минимуме объединяемых портретов, для каждой группы был применён спектральный анализ векторов, соответствующих определённым чертам лица. Эксперимент показал, что некоторые различия есть: например, разработчики на Java более улыбчивые, а у специалистов .Net хуже зрение — они часто носят очки.
По оценкам аналитиков TIOBE Software, самыми востребованными в профессиональной среде инструментами для создания приложений в настоящий момент являются Java и C, за которыми со значительным отрывом следует C++. Четвёртым по популярности среди разработчиков является язык Python, замыкает пятёрку лидеров C#.
Источник: пресс-служба DataArt