Олег Макаренко (olegmakarenko.ru) wrote,
Олег Макаренко
olegmakarenko.ru

Categories:

Как распознать настоящего айтишника



Минцифры предлагает давать отсрочку от призыва молодым айтишникам со средним профильным образованием, без высшего. Речь идёт не про мобилизацию — вторая волна мобилизации в России маловероятна, так как у США заканчиваются ресурсы — а про отсрочку от обычной срочной службы.

Сейчас у нас с маркировкой программистов всё предсказуемо плохо — морально устаревшая система образования заставляет наше государство двигаться по тупиковому пути.

Формальная корочка, диплом, не имеет в 2023 к реальным навыкам айтишников никакого отношения, равно как и аттестат об окончании физматшколы. Заметная статистическая связь есть — лучшие программисты часто имеют в резюме известные технические школы и вузы — однако работает эта связь иначе, чем принято говорить вслух. Физмат школы отбирают себе самых умных детей со всего города, потом лучших студентов города забирают главные технические вузы. А дальше мы наблюдаем позорное явление: дипломированные инженеры путают отбор с обучением, всерьёз утверждая, будто школы с вузами не отобрали себе самых смышлёных изначально, а воспитали таланты из заурядного человеческого материала…

Конечно, определённый эффект от лучших школ и вузов есть — хотя бы потому, что там дети учатся среди одарённых сверстников и под руководством лучших педагогов города. Однако провал в гуманитарной составляющей не позволяет нашим инженерам отбросить приятные им предрассудки, чтобы увидеть очевидное: отличный программист Петров является таковым, так как имеет от рождения хорошие мозги, так как родители дали ему правильное воспитание, так как он много времени потратил на самообучение, и так как его взял себе в личные ученики увлечённый наукой доцент. Стандартное обучение в «элитной» физматшколе и «элитном» вузе — вот все эти лекции, семинары и курсовые — внесли вклад, может быть, в 10%. Но если бы наш Петров потратил эти 16 лет школы и вуза иначе — обучаясь удалённо, например, а начиная со старшей школы работая на полставки в разработке игр — он был бы сейчас ещё более высокоуровневым программистом.

Хотите поспорить? Тогда покажите мне исследования, в которых определяется фактор полезности стандартных школ и вузов. Как в медицине: когда одним вкалывают лекарство, а другим нет, и смотрят, есть ли заметная разница. А то, знаете, средний вес первоклассника — 22 килограмма, к выпуску из школы он толстеет до 50 килограмм. Но мы же не будем утверждать, что это благодаря урокам литературы, верно?

В общем, распознавать программистов по дипломам или по оценкам в дипломах — затея удивительно дурная, настоящее мракобесие. У многих айтишников формальное образование ограничивается девятью классами школы, что не мешает им работать на самых ответственных направлениях, получая зарплаты в сотни тысяч рублей. И наоборот: я лично знаю выпускников технических вузов, не способных написать хотя бы сортировку пузырьком — даже если им дадут на это неделю времени, обложат справочниками и пообещают в случае провала сурово наказать. Как они получали в вузах зачёты по программированию, а иногда и пятёрки на экзаменах — вы знаете.

Уверен, что в Минцифры понимают это не хуже меня. Однако если независимый блогер может позволить себе назвать чёрное чёрным, чиновники из Минцифры вынуждены соблюдать бюрократический этикет, даже краем слова не затрагивая суть проблемы — оторванность советского и современного российского образования от реальной жизни, схоластическую бессмысленность большей части школьных и вузовских программ. Поэтому приходится идти на полумеры: увеличивать список специальностей, дающих право на отсрочку, расширять «зонтик» на тех, кто окончил только техникум, например. Это «костыль» как говорят программисты, причём кривой и непрочный, однако лучше такой костыль, чем вообще ничего.

Кстати, к вопросу, зачем вообще айтишникам нужна отсрочка.

Россия находится в состоянии войны с США, но это не горячая и даже не холодная, а «тёплая» война, боевые действия идут сразу на множестве фронтов. Кроме собственно украинского фронта мы воюем, например, дипломатически, экономически и технологически. Каждый из фронтов важен для общего дела, поэтому айтишников — хребет современной экономики — Россия должна всячески беречь и защищать, какими бы склочными космополитичными задницами они иногда ни были. Это не вопрос справедливости и даже не вопрос экономии людских ресурсов, это вопрос безопасности государства.

Аналогичным образом в прошлом веке во время Войны давали бронь мастерам на производстве и, например, председателям колхозов. Потому что армию надо обеспечивать припасами и кормить, а заменить хорошего фрезеровщика на его сестру возможно далеко не всегда.

С сугубо рациональной точки зрения в современной России следовало бы давать отсрочку от призыва и предпринимателям, так как на предпринимателях держится вся экономика… но тут рациональность неприменима — подобное решение вызовет бурю возмущения в обществе, слишком сильно уронив рейтинг тех, кто мог бы его принять. Впрочем, повторюсь, второй волны мобилизации в России я не жду, так что это не так важно. Мы сейчас обсуждаем призыв на срочную службу, который может пройти или в 18 лет, или после вуза, в двадцать с небольшим. К этому возрасту молодой предприниматель редко достигает того размера, когда от него зависит что-то серьёзное — разве что речь идёт как раз о программистах, которым отсрочку всё же собираются предоставлять.

Так вот, представьте, что вы сидите в призывной комиссии военкомата. Перед вами стоит молодой человек с умным выражением на лице. Как понять, айтишник это, или нет?

Метод «по диплому» плох. Как я показал выше, этот метод даёт огромное количество ошибок: у многих настоящих айтишников формального диплома нет — иногда как раз потому, что они вместо учёбы занимались программированием. Кстати, вот ещё одна практическая задачка. Чтобы научить чему-то оболтусов-студентов, надо уметь программировать, причём не абы как, а лучше этих самых оболтусов, иначе учиться у вас они не захотят. Уровень современных студентов первого курса довольно высок — некоторых из них можно сразу брать на работу джунами, так как они начали программировать ещё в 10-12 лет, и уделяли много времени своему хобби. Следовательно, преподаватель должен быть как минимум крепким мидлом, причём не просто практиком, но и носителем серьёзных теоретических знаний. Также он должен иметь более-менее развитые навыки общения — как и любой другой педагог.

В коммерческой фирме зарплата у такого программиста будет довольно высокой, так как он:

1. Умеет программировать.
2. Знает теорию, понимает, как делать хороший код.
3. Может внятно излагать свои мысли и моется каждый день.

Среднему вузу будет невероятно тяжело обеспечить такому специалисту достойную зарплату, комфортные условия труда и уважительное деловое отношение вместо обычного для вузов «ты начальник — я дурак». Поэтому большая часть вузов даже не пытается: они просто берут на работу тех, кто умеет программировать слишком плохо, чтобы устроиться в коммерческую структуру.

Теоретически можно было бы вычислять айтишников как раз по зарплате. Работаешь программистом, и зарплата выше двух средних по региону? Отсрочка. Зарплата ниже двух средних? Не такой уж ты, значит, и ценный кадр.

На практике, однако, это вызовет волну злоупотреблений. Многие попросят изменить их должность с «креативного дизайнера», например, на «программиста баз данных», и установить при этом формальную зарплату повыше, благо айтишники имеют огромные льготы по зарплатным налогам. Что ещё хуже, метод не позволит сортировать молодёжь. Во-первых, у 18-летнего нет трудовой истории за последние 5 лет, чтобы можно было убедиться — да, он действительно работает программистом давно, и начальство действительно ценит его навыки достаточно, чтобы хорошо за них платить. Во-вторых, призывник может быть перспективным программистом, но при этом или находиться в процессе трудоустройства на свою первую работу, или получать несуразно маленькие суммы, как стажёр.

Более перспективная идея — использовать сертификаты о прохождении экзаменов от известных корпораций. Некоторые из таких экзаменов представляют собой набор наивных тестов, но многие другие достаточно серьёзны, чтобы мы могли быть уверены: если программист такой сертификат честно получил, значит он действительно программист.

Проблемы сертификатов от корпораций те же. Во-первых, злоупотребления возможны. Я склонен доверять сертификации от 1С, так как задачи там дают вполне практические, а ход экзамена контролируют серьёзно, но не могу сказать того же самого про сертификацию от иностранцев — иногда она беззащитна перед жуликами или дураками с хорошей памятью. Кроме того, это настоящая дыра в безопасности: сегодня иностранная корпорация помогла студенту получить отсрочку от армии, а завтра новые друзья попросят его поделиться чувствительной информацией или, скажем, релоцироваться из России в другую страну.

Во-вторых, серьёзные экзамены от айти-корпораций предполагают, что сдавать их будет состоявшийся специалист, погружённый в среду и проработавший с реальными задачами хотя бы несколько лет. Прогонять через такой экзамен молодёжь нельзя: подготовка к испытанию станет для студента не обучением, а механическим натаскиванием.

Компромиссным решением могли бы стать государственные экзамены по типу ЕГЭ, которые проверяли бы не прикладные знания конкретных корпоративных продуктов, а банальное умение программировать. Сажаем испытуемого за компьютер, даём ему четыре задачки — что-то типа среднего уровня сложности с Литкода, только с достаточным градусом муторности, чтобы пришлось именно программировать, а не вбивать в код заученный наизусть однострочный ответ. Решил за четыре часа три задачи из четырёх? Экзамен пройден. Не решил? Через месяц можешь попробовать пересдать.

Если студент программировать не умеет, он такой экзамен не сдаст в принципе, подобно тому, как я в принципе не подниму штангу в 150 килограмм. Попасть издалека баскетбольным мячом в корзину я при большом везении могу — только попыток потребуется изрядно. Поднять слишком тяжёлую для меня штангу — нет.

Так и с экзаменом предложенного мной формата. Мы можем быть уверены, что сдавшие подобный экзамен — настоящие программисты… при условии, конечно, что контроль будет поставлен хорошо, и жульничество исключено.

Самое же интересное, что вся инфраструктура для этого в России уже есть, она так и называется: ЕГЭ. Сейчас в списке экзаменов присутствует информатика. В списке задач там преимущественно разное математическое баловство в духе «заполните таблицу истинности логической функции», однако задачи на программирование тоже есть, причём некоторые из них как раз нужного уровня сложности.

Вот, к примеру, отличная задачка на динамическое программирование из прошлогоднего ЕГЭ (ссылка). Для её решения надо не только понимать метод, — метод можно и зазубрить, в конце концов, — но и написать страницу комплексного кода, удерживая алгоритм решения в голове:



В экзамене 27 заданий, и конкретно за эту задачу дают 1 балл. Также там есть пара особо сложных задач на 2 балла каждая, в одной из надо применить жадный алгоритм, во второй — алгоритм двойного прохода. И это уже даже с запасом: многие настоящие программисты этих задач за выделенное время не решат (без доступа к интернету, во всяком случае).

Проблема в том, что тот же 1 балл можно заработать, например, подсчитав количество вхождений слова «солдаты» в «Севастопольских рассказах» Льва Толстого, то есть выполнив очень простую операцию. Большая часть задач экзамена по информатике — это или что-то элементарное для тех, кто попал на информатику случайно, или математические задачи, или задачи на внимательность. Поэтому даже увлечённый программист непременно где-нибудь ошибётся и наберёт не максимальные 29 баллов, а баллов 20-25. И мы, увидев 22 балла в «зачётке», не сможем понять, кто перед нами стоит — или настоящий программист, который что-то напутал при решении заковыристой задачи, или отличник, который программировать едва умеет, но зато потратил много времени на подготовку к ЕГЭ.

Поэтому прямо сейчас экзамен по информатике использовать для обнаружения программистов нельзя: слишком высок будет процент ложноположительных и ложноотрицательных результатов. Однако если выделить из ЕГЭ по информатике конкретно программистские задачи, и если доработать систему проверки так, чтобы она показывала результат прямо в ходе экзамена, Минцифры получит тот инструмент, в котором нуждается. Сдал ЕГЭ на высокий балл — вот твои корочки программиста. Не сдал? Приноси Родине пользу в той области, в которой можешь приносить.

Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 197 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →