Уверен, многие из вас удивятся, но на программиста, оказывается, учат. На курсах, в техникумах, вузах: есть даже государственные стандарты вроде «Специальности 230115 — Программирование в компьютерных системах» (попросту — техник-программист), на освоение которой отводится неполных три года. Время самоучек вроде бы давно и безвозвратно ушло: на дворе не 80-е и даже не 90-е, чтобы держать разросшееся здание информационных технологий; недостаточно тех, кто придёт сюда только по зову сердца со случайным набором знаний! Однако вопрос этот — нерешённый. Лучше того, как выясняется сейчас, программисты-любители снова играют заметную роль, и доля их в общей массе разработчиков софта продолжает увеличиваться. Как это понимать, чем это вызвано и куда может привести?
Неожиданный этот факт констатировали исследователи (IDC), пробовавшие оценить глобальную ситуацию в программистском сегменте и обнаружившие, что из 18,5 миллиона человек, занимающихся сегодня написанием кода, семь миллионов с лишком (40%) делают это вне основных должностных обязанностей. И хоть обе категории — и «любителей», и «профессионалов» — растут, любительская категория в последние годы увеличивалась быстрей. Поскольку в обозримом будущем замедления роста не предвидится, уже в ближайшие несколько лет программисты-по-призванию станут численно доминировать над программистами-по-профессии.
Читая подобные работы, лично я всегда задаюсь вопросом, почему вообще кто-то решил делить программерское племя на категории. Ведь программист на самом деле — профессия особая. В отличие от большинства других — медиков, например, или космонавтов, — каждый желающий имеет всё необходимое, чтобы буквально не выходя из дома стать пусть не дипломированным, но профессионалом в разработке машинного кода. Поэтому любое деление здесь условно. Не верите — загляните в тот же вышеупомянутый стандарт. Ну и себя спросите, конечно.
Ведь чтобы узнать, кто такой программист, большинству из вас достаточно встать перед зеркалом. Начальным толчком наверняка послужил естественный интерес к вычислительной технике, возможно, подкреплённый материальной необходимостью. Процесс усвоения знаний наверняка был стихийным, самоорганизующимся, тесно переплетённым с практикой. Результатом стало как понимание основ функционирования ВТ, так и собственно умение заставить машину сделать то, что от неё нужно лично вам. Ничего не упустил? Это и есть необходимый и достаточный минимум, позволяющий считать себя программистом и, коли потребуется, зарабатывать на жизнь.
«Академический» подход отличается незначительно. Программированию отводится основная часть учебного времени, но преподаются также параллельные дисциплины — вроде грамотного создания документации, администрирования уже работающих систем, оценки программного обеспечения, работы в коллективе и коммуникации с заказчиком. Ну так что ж? Все мы учились и учимся этому самостоятельно, пусть несистемно. Короче говоря, практически важной разницы между программером-самоучкой и программером с дипломом гособразца нет. Так почему же нас делят в статистике?
Просто исследователи (IDC и другие) ориентируются на критерий первичности профессии. Тех, кто программирует много (от 10 часов в месяц), но не получает за это деньги либо имеет данный доход не в качестве основного, записали в любители, остальных, соответственно, в профессионалы. Иначе говоря, любителем-программистом при такой оценке может оказаться и дипломированный спец. Однако такое разделение, пусть и во многом искусственное, позволяет сделать видимой интересную тенденцию в программерском сообществе: ту самую неожиданно сильную диспропорцию — крен в сторону «программистов-любителей». Что вызвало рост «непрофессиональной» части сообщества? Ответа на этот вопрос нет, так что любые догадки хороши и принимаются.