Еще когда я только начинал работать программистом, а это было более 30-ти лет назад, был страшный дефицит программистов.
Можно было легко выбирать место работы, потому что программисты нужны были везде.
Казалось бы, через столько лет программистов должны подготовить достаточно. Но нет.
Сейчас на рынка та же самая дичайшая нехватка программистов. Почему?
Парадокс IT-выпускников
Когда я работал доцентом ВУЗа и преподавал программирование, то я знал одну простую вещь. Есть группа студентов. Обычно 20 человек.
В конце семестра на экзаменах по программированию большинство получат четверки и пятерки. То есть формально они курс освоили.
Но устроятся на работу программистами из них только два-три. На отличные должности. Один мой студент за пару лет дошел до оклада 100 000 руб. Я его спросил:
— Как это тебе удалось?
Он ответил:
— Кадров нет. Вакансии висят, но никого нет.
При этом еще двое-трое студентов из группы пойдут на смежные специальности: тестировщики, сисадмины. А большинство пойдет работать совсем не по специальности. Обычно это: курьеры, охранники, мерчандайзеры.
Более того, научиться программировать реально за год. Когда я преподавал программирование на первом курсе института, то не раз видел ситуацию: приходят вчерашние школьники, которые вообще не знают программирования, а уже после первого курса идут и подрабатывают программистами.
То есть порог вхождения в профессию очень низкий. Но это только вхождение, а вот остаться в этой сфере могут далеко немногие. Часто придут, поработают пару месяцев и меняют профессию.
И это на фоне дикой нехватки программистов.
Как можно объяснить это явление?
Этот парадокс объясняется просто.
Профессия программиста имеет одну особенность, из-за которой далеко не каждый человек может стать программистом.
Строгая приемка
Это связано с тем, что компьютер предъявляет чрезвычайно строгие требования к программе. Программа должна быть на 100% верной.
То есть любая орфографическая ошибка уже делает программу неработоспособной. Такой строгости нет ни в одной профессии. Если писатель сделает сотню ошибок в романе, то роман прекрасно будет продаваться. Водитель автобуса может не доехать на метр до остановки. Самолет может задержаться на пару минут.
Во всех профессиях есть некоторый люфт. Не обязательно сделать все идеально. Достаточно сделать приемлемо.
И только у программиста требование: все или ничего.
Отсюда — важное следствие. Львиную долю работы программиста составляет не написание программы, а ее отладка. Отладка программы — это поиск и устранение ошибок.
И этот процесс совсем не так прост с психологической точки зрения.
Вечная отладка
Любой новичок в программировании готов исправить пару ошибок в программе. Но он совершенно психологически не готов к грустной шутке программистов:
Каждая последняя обнаруженная ошибка в программе является предпоследней.
То есть работа программистов заключается в том, чтобы еще и еще раз искать ошибку.
Обычного человека это просто бесит. Поэтому большинство людей не смогут работать программистами. Они начинают злиться и нервничать через некоторое время отладки.
Особенно когда наступает срок сдачи проекта, а никак не получается двинуться дальше.
Именно в этом и состоит главный барьер программиста — умение действовать в условиях постоянной отладки на фоне катастрофической нехватки времени.
Этот барьер такой высокий, что и создает постоянный дефицит программистов. Обычный человек с улицы этот барьер точно взять не может. Хотя он и знает, что программист — это профессия редкая и хорошо оплачиваемая.
Но ничего с собой поделать не может. Отладка его выводит из себя.
Например, покупатели моего курса «Азбука программирования на языке Си«, в котором я изложил годовой институтский курс по изучению программирования, постоянно присылают мне письма с вопросами типа:
Компилятор выдает ошибку.
Программа не работает.
На экране ничего не выводится.
При этом в тех скриншотах, которые они присылают, ошибки примерно такого рода:
При этом компилятор ясно пишет, в чем ошибка:
Более того, к курсу приложены листинги всех программ. То есть теоретически найти и устранить ошибку может даже новичок. Для этого всего лишь сравнить текст своей программы с прилагаемым образцом.
Но нет. Сама мысль о том, чтобы заняться отладкой и искать ошибки в голову не приходит. Именно так обычно и реагирует обычный человек. Что же говорить о ситуации, когда ошибки идут одна за другой. Тут любой станет невротиком.
Как же удается пройти этот барьер профессиональным программистам?
Программист-сыщик
У профессиональных программистов совершенно другое отношение к ошибкам. Для них — это скорее интрига.
Они похожи на Шерлока Холмса, который расследовал преступления, потому что это доставляло ему удовольствие.
Сама отладка похожа на работу сыщика. Сначала нужно найти улики, то есть посмотреть внимательно на сообщения компилятора. Потом запустить отладчик и шаг за шагом восстановить всю картину.
То есть для тех программистов, что преодолели барьер, отладка — это увлекательная деятельность. Она очень похожа на то, как люди разгадывают шарады и ребусы.
Сама профессия программиста привлекательна именно тем, что с ней не заскучаешь. Загадки каждый день.
Конечно же, для обычного человека такой подход неприемлем. Люди и так не хотят думать, а тут нужно напрягаться каждый день.
Поэтому дефицит программистов будет всегда.
Комментарии закрыты