Записи об образовании степень, учебное заведение, специальность и годы обучения связывают в один небольшой блок — и именно этот блок чаще всего ломает согласованность карьерной записи. Структура у него простая, но за ней стоят разные системы квалификаций, разные названия специальностей и разные границы допустимых дат. Ниже разберём, из чего состоит запись, почему сравнение «в лоб» не работает и какие проверки имеют смысл.
Из каких полей состоит запись об образовании
Каноническая запись содержит четыре обязательных элемента. Учебное заведение — название так, как его принято писать в стране обучения. Степень или уровень квалификации — то, что человек получил или получает. Специальность или направление подготовки. И период обучения: год начала и год окончания.
Дополнительно могут присутствовать форма обучения, признак незаконченного обучения и ссылка на документ. Эти поля необязательны, но полезны: незаконченное обучение — нормальная часть биографий, и его лучше помечать явно, чем оставлять запись похожей на завершённую.
Порядок следования записей обычно обратный: самое высокое или последнее достижение стоит первым. Как и в случае с опытом работы, это привычка интерфейсов, а не строгий закон. Если записей несколько, стоит заранее решить, где хранится итоговая квалификация: дублировать её в каждой записи не нужно.
Степень и уровень квалификации — это одно и то же?
Не всегда. В одних странах система строится вокруг академических степеней, и тогда вопрос «что получено» подразумевает именно степень. В других опорным становится уровень образования или профессиональная квалификация, и сопоставление со степенью не будет прямым.
Отсюда две практические трудности. Первая: одинаково звучащие названия могут соответствовать разному числу лет подготовки и разному объёму программы. Вторая: обратная ситуация тоже встречается — разные названия описывают сопоставимый уровень. Из-за этого сравнение строк не годится: одинаковые строки могут означать разное, а разные строки — близкое.
Разумный подход — хранить формулировку так, как она дана в исходном документе, и отдельно, при необходимости, хранить нормализованный уровень в собственном словаре. Тогда исходная запись остаётся точной, а аналитика получает сопоставимые значения. Смешивать эти две сущности в одном поле нельзя: любая правка словаря тогда означает переписывание исторических данных.
Почему названия специальностей трудно сравнивать?
Специальность — это не универсальный код, а исторически сложившееся название программы. Одна и та же область знаний в разных странах и в разных учебных заведениях называется по-разному, а иногда одно название покрывает программы с заметно разным содержанием.
Есть и обратный эффект: широкое название вроде «экономика» может скрывать за собой и статистику, и финансы, и управление. При поиске кандидатов по специальности это приводит к неожиданным результатам — и к пропускам, и к лишним совпадениям.
Практический выход — использовать сопоставление по смыслу: держать рядом справочник областей знаний и привязывать каждую специальность к одной или нескольким областям. Тогда группировка становится устойчивой к переименованиям программ и к изменениям в классификаторах. А исходное название остаётся в записи как свидетельство того, что человек действительно написал.
Как записывать названия учебных заведений
Тут работают три привычки. Первая: сохранять написание на языке оригинала — оно однозначно идентифицирует заведение. Вторая: при необходимости добавлять транслитерацию или перевод, но отдельным полем, а не вместо оригинала. Третья: не «улучшать» название — не дописывать титулы и не менять юридическую форму, потому что такие правки незаметно превращают запись в другую.
Транслитерация заслуживает отдельного внимания. Она неоднозначна: одну и ту же строку можно передать разными способами, и системы поиска, сравнивающие строки напрямую, будут считать два написания разными заведениями. Если поиск должен находить оба варианта лояльно, нужна нормализация, а не точное сравнение.
Отдельно стоит помнить о границе: список учебных заведений нельзя выдумывать в тестовом наборе как реальные, если запись предназначена для демонстрации. Для таких случаев существуют заведомо условные названия-заполнители, и их стоит использовать осознанно.
Какой диапазон годов считать допустимым
Годы обучения — самое проверяемое поле во всей записи, и здесь важны три правила. Первое: год начала обучения должен быть позже того возраста, с которого в принципе начинают учиться; для наборов достаточно требования «не раньше условного минимального возраста», не привязываясь к конкретной стране. Второе: год окончания не может быть раньше года начала. Третье: год окончания не может быть в будущем, если только запись не описывает текущее обучение.
| Поле | Обязательно | Возможные состояния |
|---|---|---|
| Учебное заведение | да | указано полностью или неполно |
| Степень или уровень | да | получена, продолжается |
| Специальность | да | название программы |
| Год начала | обычно да | указан, неизвестен |
| Год окончания | по ситуации | указан, продолжается, неизвестен |
| Признак завершённости | да | завершено, продолжается |
Отдельный случай — незаконченное обучение. Тогда окончания нет вовсе, а период остаётся открытым: например, год начала и пометка «продолжается». Это нормальное состояние, и пустое поле окончания не должно трактоваться как ошибка. Смешение «неизвестно» и «продолжается» — та же ловушка, что и с открытым интервалом занятости, о котором подробно сказано в разборе хронологии работы.
Ещё одно правило касается связей между блоками: первое место работы обычно начинается после окончания учёбы, но бывает и параллельная занятость во время обучения. Значит, проверка должна допускать объяснимые пересечения и запрещать только невозможные, например работу задолго до поступления.
Что важно разработчику: поля и проверки
Первый шаг — разделить факт и интерпретацию. Факт: название заведения, название программы, годы, признак завершённости. Интерпретация: нормализованный уровень, область знаний, сопоставление с внешним справочником. Хранить их надо раздельно, иначе любое обновление справочника затронет исторические записи.
Второй — держать даты необязательными там, где они необязательны. Год окончания отсутствует у незаконченного обучения; год начала иногда неизвестен. Модель данных должна уметь отличать «нет значения» от «значение не применимо», иначе фильтры будут врать в обе стороны.
Третий — вынести проверки в отдельный слой. Внутри записи: порядок лет, отсутствие будущих дат, соответствие признака завершённости наличию окончания. Между записями: отсутствие дубликатов одного и того же периода. Между блоками: согласованность с опытом работы. Такой набор утверждений проверяется один раз и применяется к любому источнику — к синтетической записи, к импорту файла или к ручному вводу.
Собрать согласованный пример целиком, вместе с годами и уровнем, можно в генераторе карьерных данных: там образование выводится из общей записи и не противоречит остальным блокам. Общая логика связей между блоками описана в материале про карьерные тестовые данные, а описание умений — в разборе навыков и их уровней.
Отдельно стоит сказать о неполных записях. Обучение, которое продолжается, документ, у которого известен только год, специальность без квалификации — всё это допустимые состояния, и они должны различаться между собой. Если форма сводит их к одному пустому значению, читатель не поймёт, учится человек или уже завершил обучение, а фильтры начнут работать неверно.
Полезно также договориться о том, как выглядит запись без учебного заведения. Такое встречается, когда сведения неполны, и попытка подставить ближайшее известное значение искажает картину сильнее, чем честно пустое поле.
Оговорка
Названия заведений, уровней и специальностей, приведённые здесь, — условные образцы для проверки форм и наполнения тестовых баз. Они не подтверждают получение образования конкретным лицом, не являются выпиской из документов и не могут использоваться как свидетельство квалификации при трудоустройстве или аттестации.
Что делать дальше
Проверьте, различает ли ваша модель «обучение продолжается» и «окончание неизвестно»: если нет, добавьте отдельный признак. Затем сгенерируйте несколько записей с разными комбинациями годов в генераторе и убедитесь, что фильтры по выпускникам, по незаконченному обучению и по специальности возвращают ровно то, что должны.