Экономика под воздействием цифровой трансформации стонет от нехватки квалифицированных ИТ-специалистов. Университеты, которые готовят ИТ-специалистов, стонут от качества абитуриентов. Большинство поступивших хорошо сдают единые экзамены. Но они не любят и не понимают программирования.
Детское увлечение программированием осталось в далеком прошлом, почти все освоенное забылось. Пять лет изучения школьной информатики – это ни о чем. Учитель информатики последний человек, кто может научить увлеченного школьника реальному программированию. Если бы он умел программировать, он бы уже давно из школы ушел.
Предложения на рынке дополнительного ИТ-образования рассчитаны на взрослых или почти взрослых. Молодые люди от 18 лет после успешного прохождения курсов могут сразу устраиваться на работу в ИТ-компании в качестве стажеров. Далее их карьера понятна. Есть желание и способности, будешь быстро расти. Нет – застрянешь на долгие годы на уровне рядового кодировщика.
Школьники 13-14-15-16 лет после успешного прохождения таких курсов просто попадают в профессиональный вакуум. На работу в ИТ-компании в силу возраста и занятости в школе их не берут. Самостоятельно развиваться в профессиональном смысле они не способны.
Именно в возрасте 13-14 лет практически сходит на нет тот массовый интерес к программированию, который успешно формировался до этого. Проблема не в обучении основам программирования, это делается легко. Проблема в организации последующей профессиональной стажировки и в развитии навыков профессионального самообразования. Они между собой неразрывно связаны.
В чем проблема? – удивится читатель. Нужно создать систему такой стажировки. Вовлечь в это ИТ-компании, они главные интересанты.
Тут и зарыта собака, как утверждает известный фразеологизм.
Стажировка – это выполнение реальных практических задач по разработке ПО. В идеале ПО должно найти свое применение на рынке. Может и не найти, конкуренция непредсказуема. Но заведомая работа в стол – очень плохая мотивация.
Суть любой стажировки программиста такова. Во время выполнения реальной задачи стажер а) разрабатывает программный продукт; б) осваивает необходимые для этого знания и умения; в) получает навыки профессионального самообразования.
Упрощенно любая задача предполагает четыре стадии: постановка; дизайн; написание программного кода; тестирование. Две последние постоянно чередуются во времени.
С написанием программного кода почти все понятно. Только нужно решить, как стажер сможет консультироваться у более опытного программиста. Где этот опытный программист возьмется, кто ему за консультации заплатит. Но теоретически вопрос решается, он не самый сложный. Недаром мы так много говорим про наставничество.
Без особых проблем можно решить задачи последнего этапа – тестирования. Мы развиваем проектное и командное обучение. Новая компьютерная программа – это проект. В команду войдут начинающие разработчик и тестировщик и будут работать в паре.
Остались две самые сложные стадии: постановка и дизайн.
Постановщики в любой софтверной компании штучный продукт. Нужно уметь генерировать идеи, для чего нужно быть креативным человеком и хорошим специалистом в предметной области. Нужно уметь превращать идеи в технические задания. Нужно разбираться хотя бы в общих чертах в основах разработки ПО, в интерфейсах и дизайне, в маркетинге программных продуктов. Если в команде нет менеджера по продукту, то за конечную версию отвечает постановщик.
В общем, постановщиков в стажировку начинающих программистов ИТ-компании не отдадут. Нанятые на стороне постановщики без опыта с задачей не справятся, только ее дискредитируют. Ждать, что начинающие программисты сами себе будут режиссерами, просто смешно.
Можно пробовать искать проекты на свободном рынке, конкурируя с фрилансерами. На мой взгляд, идея не жизнеспособна. Качество и скорость разработки вряд ли устроит заказчика. Возникают серьезные сложности с мотивацией взрослых специалистов, которых должны привлекать стажеры.
Довеском идет проблема с профессиональным дизайном. Если его не будет, продукту на рынке ничего не светит. Услуги профессионального дизайнера стоят немалых денег. Для взаимодействия с ним тоже нужен немалый опыт.
Из всего вышесказанного вытекает, что задача массовой стажировки начинающих программистов-школьников привычными способами не решается. Найти задачи для нескольких десятков наиболее продвинутых школьников возможно. Для десятков тысяч будущих программистов нужно придумывать что-то другое. Предложу свою модель.
Идея проста и почти очевидна: нужно постановку практических задач для будущих программистов унифицировать и поставить на конвейер. В рамках такого конвейера:
каждая задача – это модуль-расширение некоторой цифровой платформы;
для такого модуля-расширения имеются четко прописанные форматы, механизмы и интерфейсы взаимодействия с ядром платформы (API платформы);
в ядре платформы реализованы все сложные программные компоненты, недоступные для начинающих программистов;