МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФГБОУ ВО «Пермский государственный национальный исследовательский университет» Механико-математический факультет Кафедра информационных технологий УДК 004.8 Моделирование и реализация информационной системы для рекомендации плана обучения на основе анализа вакансий Выпускная квалификационная работа бакалавра по направлению 02.03.02 – Фундаментальная информатика и информационные технологии Электронная версия работы помещена в электронную библиотеку кафедры ИТ название файла ____________________ дата _____________________________ Работу выполнил студент группы ФИТ-1,2-16 4 курса механико- математического факультета: Снегирев А.C. Научный руководитель: кандидат технических наук, доцент кафедры ИТ ПГНИУ: Курушин Д.С. Пермь 2020 2 РЕФЕРАТ Работа содержит 56 стр., 27 ил., 40 библ. назв., 3 прил. Актуальной задачей является создание подходов анализа текущего и прогнозирования будущего состояния рынка труда на основе единой модели компетенций, которая позволит применять эти результаты в образовании, найме, управлении компетенциями на уровне компаний, государств и мира. Одной из подзадач этой области является разработка автоматизированных подходов к созданию плана обучения для специалистов разного уровня, учитывая их индивидуальные характеристики. Объект исследования – процесс создания плана обучения специалистам из сферы ИТ. Целью данной работы является моделирование и реализация информационной системы для рекомендации плана обучения на основе анализа вакансий в сфере ИТ. Были рассмотрены различные подходы разной степени автоматизации к созданию планов обучения на собственном опыте. Были рассмотрены достоинства и недостатки каждого из них. Были показаны основные проблемы при анализе объявлений вакансий и возможные пути их решения. Для получения востребованных компетенций и специальностей предлагается подход основанный на векторном представлении компетенций и специальностей с помощью word2vec и WVavgPool. Был разработан и реализован подход, комбинирующий несколько техник такие как NCA и CURE. Получилось увеличить результат кластеризации на 38% относительно базового решения. В результате был получен AMI равный 0.62. Также был разработан и реализован подход для генерации матрицы связанных компетенций внутри кластеров специальностей, который позволяет анализировать группы компетенций для получения итоговых планов обучения. Ключевые слова: рынок труда, план обучения, анализ вакансий, обработка естественного языка, кластерный анализ, компетенции. 3 СОДЕРЖАНИЕ ВВЕДЕНИЕ ..................................................................................................... 5 1. Предметная область и обзор литературы ........................................................... 7 1.1 Объект автоматизации ............................................................................. 7 1.2 Взаимосвязь задач анализа рынка труда ....................................................... 8 1.3 Проблемы и подходы к решению задач ....................................................... 9 1.4 Практическая значимость ....................................................................... 12 1.5 Концептуализация предметной области ..................................................... 12 2. Исследования подходов к решению задачи ........................................................ 14 2.1 Инфографика как план обучения специалиста ............................................. 14 2.2 Тезаурус компетенций ........................................................................... 17 2.3 Модульный план обучения...................................................................... 19 2.4 Анализ вакансий для получения плана обучения .......................................... 20 3. Моделирование прототипа ИС....................................................................... 26 3.1 Математическая модель плана обучения .................................................... 26 3.2 Проектные решения .............................................................................. 27 3.3 Векторное представление слов ................................................................. 29 3.4 Кластерный анализ ............................................................................... 32 3.5 Модель компоненты рекомендации плана обучения...................................... 36 4. Реализация прототипа ИС ............................................................................. 39 4.1 Компонента обновления базы компетенций................................................. 39 4.2 Компонента сбора данных о рынке труда.................................................... 39 4.3 Компонента извлечения компетенций из текста ............................................ 41 4.4 Выбор лучших параметров модели .......................................................... 42 4.5 Обсуждение результатов ........................................................................ 46 4.6 Web-приложение и компонента рекомендации плана обучения ......................... 49 4.7 Дальнейшая работа ............................................................................... 51 ЗАКЛЮЧЕНИЕ ............................................................................................ 54 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ................................................. 55 Приложение 1. Результаты анализа вакансий Хабр.Карьера ...................................... 57 Приложения 2. Результаты анализа вакансий SO и Builtin по заголовкам..................... 58 Приложения 3. Результаты анализа вакансий SO и Builtin по кластерам ...................... 60 4 ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ Индивидуальный план обучения — это учебный план, обеспечивающий освоение образовательной программы на основе индивидуализации ее содержания с учетом особенностей и образовательных потребностей конкретного обучающегося Учебный план — документ, который определяет перечень, трудоемкость, последовательность и распределение по периодам обучения учебных предметов, курсов, дисциплин (модулей), практики, иных видов учебной деятельности и, если иное не установлено настоящим Федеральным законом, формы промежуточной аттестации обучающихся Образовательная программа — комплекс основных характеристик образования (объем, содержание, планируемые результаты), организационно-педагогических условий и в случаях, предусмотренных настоящим Федеральным законом, форм аттестации, который представлен в виде учебного плана, календарного учебного графика, рабочих программ учебных предметов, курсов, дисциплин (модулей), иных компонентов, а также оценочных и методических материалов Организация, осуществляющая обучение, — это юридическое лицо, осуществляющее на основании лицензии наряду с основной деятельностью образовательную деятельность в качестве дополнительного вида деятельности Педагогический работник — физическое лицо, которое состоит в трудовых, служебных отношениях с организацией, осуществляющей образовательную деятельность, и выполняет обязанности по обучению, воспитанию обучающихся и (или) организации образовательной деятельности Учебный модуль — это элемент образовательной программы направленный на формирование набора компетенций. Для прохождения учебного модуля используются учебные материалы в различных форматах. Результаты обучения — это запланированные ожидания того, что обучающийся будет знать и уметь делать, какие навыки он будет иметь после успешного освоения отдельных учебных модулей образовательной программы Специальность — набор приобретенных знаний и навыков по результатам прохождения образовательной программы и опыта работы, необходимых для определённого вида деятельности в рамках той или иной профессии Знание — проверенный практикой результат процесса познания, оно возникает как продукт общественной, духовной и материальной деятельности в процессе образования Навык — действие или система действий, осуществляемых почти автоматически и выработанных на основе практики упражнений – многократного повторения на основе имеющихся знаний. Навык может быть применим как к умственным, так и двигательным действиям 5 ВВЕДЕНИЕ Актуальной задачей является создание подходов анализа текущего и прогнозирования будущего состояния рынка труда на основе единой модели компетенций, которая позволит применять эти результаты в образовании, найме, управлении компетенциями на уровне компаний, государств и мира. Исследования в этой области позволят оптимизировать процессы на которых сегодня базируется экономическая модель. Автор предполагает, что создание цифрового профиля компетенций позволит создать более прозрачные отношения между участниками рынка труда и образовательными организациями. Одной из подзадач этой области является разработка автоматизированных подходов к созданию плана обучения для специалистов разного уровня, учитывая их индивидуальные характеристики. Эта работа посвящена поиску возможного решения этой задачи и реализации прототипа ИС. Ключевая проблема этой задачи заключается в том, что еще не существует единого подхода к оценке и определению компетенций. Также как и не существует единой базы компетенций, которая могла бы быть использована для задачи, которая решается в данной работе. Таким образом, нет стандартного решения этой задачи. Существуют подходы к выявлению востребованных специальностей, рекомендации востребованных компетенций, прогнозированию компетенций, сопоставлению вакансии и резюме. Существуют подходы к созданию планов обучения в формате инфографики. Эта работа обобщает эти знания для поиска решения автоматизированного создания плана обучения. Также показаны недостатки подходов и возможные пути их устранения. Объект исследования – процесс создания плана обучения специалистам из сферы ИТ. Предмет исследования – автоматизированные подходы к созданию плана обучения специалистам из сферы ИТ, в частности с помощью анализа вакансий. Целью данной работы является моделирование и реализация информационной системы для рекомендации плана обучения на основе анализа вакансий в сфере ИТ. Для достижения поставленной цели необходимо выполнить следующие задачи: - обзор литературы и существующих решений; - разработка проектных решений и моделирование ИС; - разработка математической модели плана обучения; - разработка модуля анализа текста вакансий; - разработка модуля рекомендации плана обучения. Данная работа устроена следующим образом: в разделе 1 сначала описан объект автоматизации и актуальные направления исследований, затем описаны ключевые и смежные задачи автоматизации рекомендации плана обучения, далее приводятся известные решения, обсуждается практическая значимость и новизна предлагаемого решения, в конце продемонстрирована концептуализация предметной области; в разделе 2 описаны проведенные исследования для изучения различных подходов решения 6 поставленной задачи, обсуждается преимущества и недостатки каждого, а также возможные шаги к устранению проблем автоматизации; в разделе 3 представлены проектные решения, которые были получены на основе исследований, далее продемонстрирована математическая модель плана обучения, используемые подходы к решению задачи, теоретические основы модели прототипа информационной системы, включая UML диаграммы; в разделе 4 описаны этапы реализации каждой компоненты с описанием выбранных средств и подходов, рассмотрен эксперимент с выбором лучших параметров модели, далее продемонстрированы полученные результаты различных компонент ИС. 7 ОСНОВНАЯ ЧАСТЬ 1. Предметная область и обзор литературы Описан объект автоматизации и актуальные направления исследований, затем описаны ключевые и смежные задачи автоматизации рекомендации плана обучения, далее приводятся известные решения, обсуждается практическая значимость и новизна предлагаемого решения, в конце продемонстрирована концептуализация предметной области. 1.1 Объект автоматизации Объектом автоматизации данной работы выступает процесс рекомендации индивидуального плана обучения для специалиста в сфере ИТ. Под рекомендацией понимается предоставление некоторого выбора специалисту в отношение формирования собственного плана обучения. Характеристика индивидуальности означает, что сам результат рекомендации также учитывает индивидуальные особенности специалиста. Более строгое определение понятий и их взаимосвязи дано в разделе концептуализация предметной области в этом разделе. Недостатки экспертно-механического (ручного) подхода создания плана обучения обсуждаются в исследовательской части. На сегодняшний день актуальным направлением в решении задачи рекомендации индивидуального плана обучения является анализ текстовых документов, полученных с досок объявлений вакансий. Подходы в этом направлении базируются на допущении о том что описания вакансий, используемые для решения задач и получения значимых результатов, достаточно полно описывают состояние рынка труда. В общем случае это может быть не так. Во-первых, пока не существует единой модели компетенций или другой единой модели описания способностей специалистов, такой чтобы не допускать разночтения и двусмысленности при чтении описания вакансии. Во-вторых, описания вакансий зачастую не структурированы, а также используется естественный язык, что вместе допускает большую вариативность в способах написания текста вакансии. Это может привести к многозначности и неверному интерпретированию требований к компетенциям или оставляет энтропию достаточную, чтобы было невозможно сделать вывод о требованиях к специалисту. Будем считать, что вся совокупность размещенных вакансий на всех досках объявлений есть репрезентация требований, которые работодатели в действительности предъявляют соискателям. Таким образом, тексты вакансий – это данные о состоянии рынка труда вчера, сегодня и в будущем с некоторой неизвестной погрешностью, которую мы тем не менее считаем допустимой для решения своих задач. Знания, которые могут 8 быть получены из данных в таком случае могут оказаться ценными во многих приложениях как будет показано далее. Задача рекомендации индивидуального плана обучения в общем случае состоит из нескольких подзадач. Каждая в отдельности является отдельной областью исследований. Тем не менее эти задачи зависимы между собой, поэтому они также будут рассмотрены. Также будут рассмотрены сопутствующие задачи, которые могут быть решены, базируясь на тех же данных, которые используются для задачи рекомендации плана обучения. Обсуждение всех задач вместе дает представление общей картины. Это важно для понимания практической значимости. 1.2 Взаимосвязь задач анализа рынка труда На рисунке 1 представлена диаграмма отношений между задачами, участниками и данными, которые они создают. Создание единой модели компетенций для описания всех профессий и отраслей является фундаментальной задачей [1], так как позволяет оцифровать компетенции специалиста и унифицировать данные, которыми пользуются различные информационные системы: от досок объявлений (для описания требуемых компетенций) до образовательных программ (для описания приобретаемых компетенций). Рисунок 1 – Взаимосвязь задач, данных и польза для участников 9 Единая модель компетенций – это единый искусственный язык коммуникации между участниками рынка труда и образовательными организациями. Обратите внимание на рисунок 1 – именно модель компетенций помогает сформулировать требования к специалистам на том же языке, на котором специалисты формируют свои цифровые профили подтвержденных компетенций. На этом же языке образовательные организации могут составлять образовательные программы, а центры сертификации подтверждать те же компетенции, которые были получены в процессе обучения. Это дает большие возможности для автоматизации множества процессов, включая анализ данных рынка труда, поиск лучшего рабочего, персонализацию обучения, рекомендацию плана и траектории обучения. Когда данные формируются на основе единого языка, они могут быть эффективно использованы для анализа, а результат анализа для прикладного применения. Например, использование компетенций для улучшения процессов образования на основе спрогнозированных востребованных компетенции и специальностей может быть эффективно организовано при использовании единого языка. В решении задачи поиска лучшего сотрудника/работодателя система поиска наемного рабочего с подходящими под задачу компетенциями позволит формировать данные о потребности в компетенциях в частности и эффективности рабочей силы в целом. В свою очередь понимание потребностей высоко динамичных секторов рынка труда имеет решающее значение как для соискателей, так и для работодателей и образовательных организаций. Прогнозирование востребованных компетенций позволит предиктивно создавать образовательные программы, когда они будут нужны, а также своевременно выпускать специалистов для потребностей работодателей. 1.3 Проблемы и подходы к решению задач На рисунке 2 продемонстрированы взаимосвязи задач и данных, которые они формируют. Каждая задача пронумерована и далее по тексту будут обозначены ссылки (n) на элементы диаграммы. Создание модели компетенций и разработка единой базы компетенций (1) на сегодняшний день остается нерешенной задачей, тем не менее существует несколько подходов к созданию и реализации этой модели. Первый подход подразумевает разработку и сопровождение базы компетенций отраслевыми экспертами. Например, профстандарты или общедоступные базы компетенций, такие как ONet и ESCO. Данный подход позволяет достичь высокой точности и эффективности, если требуется небольшой размер базы компетенций, но страдает от временных и материальных затрат. Более того, подход неэффективен, если необходимо частое обновление базы компетенций. На практике обновление выполняют каждые две недели для таких динамичных секторов рынка как ИТ [2]. Другой подход основан на автоматизации анализа данных рынка труда. 10 При этом эксперт также участвует в процессе разработки базы компетенций. Результаты данного подхода продемонстрированы как коммерческими компаниями [3, 4, 5] так и научными работами [6, 7]. Основными источниками данных выступают описания вакансий, глоссарии и открытые базы например, Википедия. Задача автоматического извлечение компетенции из текста (2) является подзадачей анализа данных рынка труда для прогнозирования востребованных компетенций и выявления востребованных специальностей. Данная задача имеет три основных проблемы: 1) компетенция может быть представлена в разных формах (например, cplusplus, C++; прогать, программировать); 2) в тексте могут быть не указаны компетенции, так называемые скрытые (implicit) компетенции, хотя они подразумеваются (Java является объектно-ориентированным языком программирования, и это подразумевает знание ООП); 3) в тексте могут быть компетенции, которых еще нет в базе компетенций из-за недавнего появления спроса на компетенцию (например, спрос на знание технологии Blockchain). Задача извлечения компетенций из текста может быть сформулирована как задача извлечения именованных сущностей (named entity recognition). В работе [8] был продемонстрирован подход к созданию контролируемого словаря на основе данных Википедии и словарей терминов из ИТ сферы. Для извлечения компетенций (и новых компетенций – к проблеме 3) использовалась комбинация различных техник: Named Entity Recognition, Part of Speech Tagging, Word2Vec. Для извлечения скрытых компетенций использовалась doc2vec модель. На тестовом размеченном корпусе из 250 текстов вакансий был получен результат 0,78 точности и 0,88 полноты. Обучение было произведено на более чем 1 миллионе текстов. Для выявления специальностей (3) и востребованных компетенций был предложен подход на основе LDA [9]. На выборке из 1385 описаний вакансий были получены 30 компетенций и 20 специальностей с наиболее востребованными компетенциями. В другой работе был предложен подход [10] к кластеризации вакансий в два этапа: 1) использовать агломеративную иерархическую кластеризацию; 2) полученные кластеры использовать как входы для KMeans, чтобы получить оптимальное количество кластеров с помощью подсчета расстояний между центроидами. На выборке из 250 тысяч описаний вакансий, были получены 20 специальностей. Для решения задачи прогнозирования востребованных компетенций (4) был предложен подход [11], основанный на анализе временных рядов. Был взят быстроразвивающийся сектор Data Science, построены кластеры компетенций и на основе 40 временных рядов выявлялись новые группы быстрорастущих компетенций. В задаче поиска подходящего сотрудника (5) в работе [8] использовался подход, основанный на извлечении компетенций из текста вакансии и резюме, где каждая компетенция была преобразована word2vec моделью. Так как количество компетенций в вакансии может быть не равно количеству компетенций, то необходимо выполнить дополнительное преобразование. В работе был реализован собственный способ подсчета 11 Affinity Score для преобразования вакансии и резюме в вектор для сравнения с помощью косинусной меры. Был продемонстрирован подход [12] к созданию плана обучения (6) с использованием инфографики в ручном режиме. В работе [13] предложен метод поддержки принятия решений при формировании образовательных программ с учетом потребностей рынка труда. Используется word2vec для оценки семантической близости различных частей документов образовательных программ, профессиональных стандартов и вакансий. Таким образом, возможно находить пробелы в компетенциях, которые указаны в вакансии, но семантически далеки от образовательной программы. Не была найдена работа которая описывает подход автоматизации рекомендации плана обучения целиком. А именно: анализа востребованных специальностей по вакансиям, формирование востребованных компетенций в каждой специальности и рекомендация учебных материалов к каждой компетенции. Рисунок 2 – Взаимосвязь задач и данных Данная работа сфокусирована на автоматизации процесса создания плана обучения с помощью анализа объявлений вакансий. Под анализом объявлений вакансий подразумевается решение задач выявления востребованных специальностей и востребованных компетенций на текущий момент времени. То есть без прогнозирования. Полученные данные используются для рекомендации индивидуального плана обучения, который включает в себя учебные материалы. Для получения востребованных компетенций и специальностей предлагается подход основанный на векторном представлении компетенций и специальностей с помощью word2vec и WVavgPool. Полученные векторные представления использовались для кластерного анализа. Был проведен опытный эксперимент для подбора лучших параметров. Был разработан и реализован подход, комбинирующий несколько техник такие как NCA и CURE. Получилось увеличить результат кластеризации на 38% 12 относительно базового решения. В результате был получен AMI равный 0.62. Также был разработан и реализован подход для генерации матрицы связанных компетенций внутри кластеров специальностей, который позволяет анализировать группы компетенций. 1.4 Практическая значимость Как было показано ранее в общей картине точная и детальная нормализация компетенций помогает преодолеть разрыв в компетенциях между работодателями и соискателями путем подбора подходящего рабочего для необходимой работы и выявления востребованных компетенций для образовательных программ. Данная работа лишь частично решает описанные выше задачи, но при этом полученные результаты могут быть использованы начинающими специалистами для определения специальности в сфере ИТ, и определения где и как обновить свои компетенции в соответствии с прогрессом технологий и меняющимися требованиями к работе. Эти же результаты могут также использоваться для определения комбинации компетенций, необходимых при наборе на новые должности в компаниях. Образовательным организациям результаты дают данные о потребностях в компетенциях и поможет обеспечивать обучение и сертификацию компетенций, необходимых на рынке труда. Аналогичным образом, это позволяет компаниям понимать дефицит в компетенциях и свои квалификационные преимущества. Предполагается, что государство может ожидать более эффективный рынок труда в сочетании со способностью более точно предоставлять образование, переподготовку и поддержку для тех, кто в этом нуждается. Результаты работы используются в проекте, целью которого является разработка открытых и бесплатных сервисов для самообучения и развития карьеры в IT. 1.5 Концептуализация предметной области Для изучения предметной области удобно концептуализировать, построив онтологию предметной области (рисунок 3). Сперва необходимо выделить ключевые понятия. Федеральный закон от 29.12.2012 N 273-ФЗ (ред. от 03.07.2016) "Об образовании в Российской Федерации" выделяет следующие понятия: индивидуальным учебный план, учебный план, образовательная программа, педагогический работник и организация, осуществляющая обучение. В разделе термины и определения эти понятия приведены. В данной предметной области под образовательной организацией будем понимать организацию, которая осуществляет образовательную деятельность с лицензией или без. В том числе к организации будем относить индивидуальных авторов, которые не являются педагогическими работниками. Под учебным планом будем понимать набор 13 учебных модулей необходимых для достижения результата обучения (эти понятия приводятся ниже). Также для простоты будем считать, что образовательная программа включает в себя только учебный план и результаты обучения. Компетенция – это способность осуществлять конкретную деятельность в определенной области на основе применения знаний и умений и проявления личностных качеств, делающих эту деятельность успешной [14]. Будем считать умение промежуточным этапом овладения новым способом действия, основанным на каком-либо правиле (знании) и соответствующим правильному использованию знания в процессе решения определенного класса задач, но еще не достигшего уровня навыка [15]. Рисунок 3 – Онтология предметной области 14 2. Исследования подходов к решению задачи В данном разделе описано исследование и реализация различных подходов к получению плана обучения, которые были проведены перед конечной версией прототипа ИС. Они были произведены последовательно. Обсуждается идея подхода исследуемый вопрос, а также их преимущества и недостатки. 2.1 Инфографика как план обучения специалиста Идея первого подхода заключалась в создании сайта агрегатора планов обучения с GitHub репозиториев для любой специальности из сферы ИТ. В большинстве своем планы обучения называют дорожные карты (Roadmap). Поэтому далее используется этот термин. Исследуемый вопрос заключался в том, чтобы понять сущность дорожных карт как относительного нового явления в профессиональных сообществах и какое влияние дорожные карты оказывают на профессиональное развитие специалистов. Также целью было понять преимущества и недостатки дорожных карт и соотнести с уже существующими понятиями как план обучения, образовательная программа. Методика заключалась в том, чтобы проанализировать мнения начинающих специалистов о пользе формата дорожной карты. Были опрошены начинающие специалисты, которые впервые видели дорожные карты так и те, кто был знаком с ними. Всего было опрошено 14 человек. Также были проанализированы комментарии к дорожным картам. Был разработан сайт для удобной демонстрации дорожных карт, как показано на рисунке 4. Сначала каждому опрошенному предлагалось порассуждать над тем является ли проблемой понять как развиваться по специальности. Далее были показаны дорожные карты подходящие к ним по специальности. После это опрошенным было предложено порассуждать над следующими темами: какие преимущества и недостатки данного формата, на какие вопросы еще бы хотелось получить ответ. В результате было получено, что предложенный формат является наглядным (будучи разновидностью инфографики) способом ответить на вопрос о необходимых компетенциях. Этот факт является важным преимуществом поскольку опрошенными было отмечено, часто бывает сложно разобраться в связях между различными компетенциями и увидеть цельную картину. В тоже время такие иллюстрации не дают исчерпывающий ответ на вопросы о плане обучения, потому что по понятным причинам не рассчитаны на индивидуального пользователя и его особенности. Хотя в целом иллюстрация задает верное направление для обучения. Также было отмечено, что некоторые работы были сверх субъективными и востребованность компетенции к специальности зависит от множества критериев, которые дорожная карта не учитывает. Дополнительно было отмечено, что зачастую не хватает ссылок на учебные материалы для создания своего плана обучения. 15 Как было показано [16] формат дорожных карт является перспективным направлением для передачи ценной информации от опытных специалистов к начинающим специалистам, которые не могут по многим причинам определить для себя что, где и в какой последовательности изучать. В общем случае формат дорожных карт – это ценный справочник, который специалист использует на разных этапах карьеры. На каждом этапе карьеры начинающий специалист задается разными вопросами. Цель дорожных карт – дать ответы на эти вопросы в соответствие с действительностью. Таким образом, дорожные карта больше чем план обучения, при этом может и вовсе не включать его. Однако сейчас дорожные карты показывают не столько набор учебных модулей, сколько визуальное отображение необходимых компетенций для работы по специальности исходя из личного опыта автора. Иногда дорожные карты имеют не только иллюстрации, но также пояснения в текстовую формате. Рисунок 4 – Пример доступного плана обучения Главный вывод, который был получен: главное преимущество формата дорожных карт – это наглядность и визуальная информативность, очевидные недостатки – это субъективная точка зрения автора (или авторов) на требования работодателей и отсутствие адаптивности к истинным потребностям пользователя. Также особенностью технологии разработки дорожных карт является тот факт, что они создаются вручную. Поэтому решение, которое автоматизирует процесс создания дорожных должно соответствовать требованиям к наглядности и информативности. Тема автоматической генерации инфографики выходит за пределы темы ВКР и кроме того автор не обладает компетенцией в данной сфере, поэтому требование к наглядности и информативности в прототипе будет проигнорировано. Перечисленные выше недостатки являются ключевыми точками роста формата дорожных карт. Первый недостаток, который заключается в субъективной точке зрения, 16 исходит из предположения о том, что статистика о востребованных компетенциях автора отличается от действительной. Решение, которое предложено в этой работе, основывается на допущении о том, что описания вакансии на досках объявлений точнее описывают действительность. Второй недостаток проявляется в том, что в текущей реализации иллюстрации дают в целом очень общую информацию для некоторого среднего пользователя. Например, для кого-то факт, что Python является ЯП для серверной разработки – не новость. Соответственно факт того, что нужно изучать Python, чтобы стать Python разработчиком не является информацией. Следовательно некоторым пользователям необходимо более глубокое понимание, что нужно знать исходя из их потребностей. Поэтому дорожные карты должны быть рассчитаны на специалистов разного уровня или же на специалистов, которые находятся на разных этапах своей карьеры. Например, начинающему специалисту в области Data Science вовсе не нужно сразу показывать, что он должен знать про обратное распространение ошибки в нейронных сетях или про GIL в Python. Вместо этого, на взгляд автора, лучше обозначить основные направления развития компетенций специалиста в общем виде исходя из его потребностей. То есть начинать с более общих понятий. Например, пункт “машинное обучение”, а в нем “нейронные сети”, затем пункт про популярные языки программирования для анализа данных, а в нем Python и R. Если пользователю эта информация известна, то давать более специфичные понятия, что в целом логично. После того как специалист будет иметь больше “глубоких” компетенций и определенный кругозор в области Data Science, дорожная карта могла бы становится более детализированной и показывать понятия, которые являются более специфичными и востребованными на более поздних этапах развития специалиста. В своей работе такой эффект я называю “обобщением над компетенциями”, когда разные названия компетенций обозначают одну и ту же компетенцию, но на разных уровнях абстракции. Например, компетенция решать линейные уравнения подразумевает компетенцию в математике. Однако уметь в математику вовсе не подразумевает уметь решать линейные уравнения. Так как в некотором смысле одно есть подмножество другого. В этом смысле и начинающий специалист в DS с повышением квалификации будет получать более детализированное представление о том, что нужно изучать дальше. Ведь главная компетенция специалиста в Data Science есть компетенция Data Science и на протяжении всей карьеры он улучшает именно эту компетенцию. Однако в какой-то момент это могут быть базовые знания математической статистики, а через год продвинутые знания статистики, но так или иначе статистики в целом. Отсюда появилась следующая идея: сделать модульную дорожную карту, основанную на некоторой базе знаний о компетенциях, которые можно выборочно использовать для описания необходимых компетенций специалиста. В самом простом случае такой БЗ стала бы словарь компетенций. Такую БЗ можно было бы поддерживать в ручном режиме. Так как каждая компетенция стала бы отделена от остальных, то их можно использовать для того, чтобы описать результат обучения некоторого учебного 17 материала. В перспективе такой подход устраняет недостаток отсутствия адаптивности дорожных карт и дает возможность генерировать индивидуальный план обучения для специалиста, используя словарь компетенций и набор учебных материалов, с которыми каждая компетенция связана. Однако такой подход полностью игнорировал первый недостаток о субъективности авторов. 2.2 Тезаурус компетенций Идея подхода заключалась в разработке тезауруса компетенций для специальности Frontend разработчик. Под тезаурусом подразумевается множество терминов между которыми определены семантические отношения. В данном случае четкие (строгие) иерархические отношения. Все понятия брались из заранее заготовленного словаря полученного из нескольких источников: Glossarytech, Computer Hope [17] и открытого тезауруса современной web-разработки [18]. Результат продемонстрирован на рисунке 5. Исследуемый вопрос заключался в том, чтобы попробовать создать небольшую БЗ компетенций в формате тезауруса и таким образом экспериментально оценить на сколько возможно организовать большую и поддерживаемую открытую базу знаний компетенций из ИТ. Это помогло бы запустить проект по созданию открытой базы знаний по технологии, которую использует Википедия [19]. БЗ предполагалось использовать для разработки дорожных карт разработчиков экспертами сообщества. Второй исследуемый вопрос заключался в том, чтобы понять как эффект обобщения над компетенциями влияет на информативность дорожной карты. Методика заключалась в следующем: были собраны словари терминов из ИТ и термины относящиеся к Frontend разработчику. Был привлечен эксперт в данной специальности. Термины были использованы, чтобы создать тезаурус такой, что все компетенции организованы в строгой иерархии (то есть имели одного предка). Было замерено время создания тезауруса и субъективно посчитана когнитивная нагрузка [20] на редактирование БЗ. Далее планировалось собрать группу начинающих специалистов с разным уровнем подготовки и показывать им различные срезы тезауруса в зависимости от уровня квалификации в этой специальности. Участники должны были отмечать полезность визуализации по шкале. В результате был разработан сайт с визуализацией дерева компетенций для современного Frontend разработчика, который показывал, что нужно изучать. Понятия можно фильтровать по категориям и изучать, чтобы понять свои пробелы и точки роста. Всего было отображено около 3000 понятий. На самом деле их может быть больше. Разработка БЗ была остановлена так как по субъективным ощущениям вручную обрабатывать такие объемы информации неподготовленным специалистам станет невозможно. Учитывая, что специальностей в ИТ около 20-30, то весь тезаурус компетенций мог занимать более 100 000 понятий. Эксперимент в итоге не был проведен, 18 так как не были найдены начинающие специалисты в нужном количестве, чтобы получить статистически значимый результат. На создание тезауруса было потрачено чуть более 42 человеко-часов. Рисунок 5 – Визуализация части тезауруса компетенций Главный вывод, который был получен: чем больше уровень обобщения над компетенциями, тем легче поддерживать БЗ вручную, при этом тем меньше информации можно предоставить пользователю в дорожной карте. Дополнительный вывод: не всегда возможно организовать отношения между компетенциями в строгой иерархии, так как эта структура очень негибкая, а компетенции по своей природе очень многогранны (как и большинство понятий) и динамичны. Компетенции многогранны в том смысле, что их одновременно можно объединить в множество категорий с другими компетенциями. Например, Python это интерпретируемый ЯП и одновременно типизированный. Однако можно понятие можно поместить только в одну категорию. Компетенции динамичны в том смысле, что их востребованность и актуальность подвержена частым изменениям и при разработке структуры тезауруса это нужно учитывать. Так возникает следствие эффекта обобщения над компетенциями. Чем меньше обобщения над компетенциями, тем сложнее поддерживать отношения между ними, что само собой очевидно. И тем больше информации можно извлечь, имея небольшое обобщение. Отсюда появилось сразу две идеи: первая – генерировать БЗ анализируя тексты и фактически решать задачу Ontology learning, которая была обсуждена в первом разделе. Для реализации первой идеи не было найдено доступного в рамках ВКР решения, так как автор не обладает достаточной экспертизой в этой сфере. Вторая идея заключается в том, чтобы оставить в БЗ только высокоуровневые компетенции, такие как Python, программирование и т.д., но при этом описывать их более подробно с помощью естественного языка – то есть писать внутри некоторого модуля, что нужно знать, чтобы знать Python и разделить все такие низкоуровневые компетенции на уровни 19 квалификации, например, начальный и продвинутый. Это снизит размер тезауруса при этом низкоуровневые компетенции не потеряются, так как они будут сокрыты и прикреплены к конкретной высокоуровневой компетенции. Таким образом, получится индивидуально составлять модульные планы обучения и при этом пополнять в ручном режиме БЗ. Однако подход опять же игнорирует недостаток субъективности авторов. 2.3 Модульный план обучения Реализация третьего подход является частью финального прототипа и не подразумевалась как эксперимент, хотя в общем случае провалилась. Идея заключалась в создании web-приложения и БЗ высокоуровневых компетенций, которые могут быть использованы как модули плана обучения для начинающих специалистов. Строгая иерархия сохранилась, но была сильно упрощена. Эмпирически были подобраны три категории верхнего уровня, которые компетенции: области знаний (knowledge areas), инструменты (tools) и гибкие навыки (soft skills). Причем первые две подразумевают hard skills, но намеренно разделены. Далее категории могут быть детализированы. Под областью знания подразумеваются компетенции использующие фундаментальные знания из computer science, которые позволяют развиваться в любой специальности и решать большинство задач. Области знаний почти не меняются потому что цикл разработки программных продуктов стандартизирован, но меняются подходы к изучению, а следовательно материалы для обучения необходимо обновлять. Компетенции инструментов – это те инструментальные средства и технологии, которые применяются для решения задач на сегодняшний день, то есть те что актуальны. Инструменты меняются часто. У каждой компетенции есть описание в котором рассказывается как темы необходимо изучать. Также описание включает в себя учебные материалы. Для работы с БЗ был разработан специальный CLI (command line interface), а визуализация эл