Книги, онлайн-курсы, оффлайн-интенсивы. Scratch и Hello Ruby для детей, Moscow Coding School и Code Babes для взрослых, акции Hour of Code, Year of Code, государственные образовательные программы США и Великобритании – все направлено на то, чтобы каждый мог попробовать себя в кодинге. Но нужно ли всем уметь программировать? В этой статье мы постарались обобщить основные положения противников подобного подхода.
Программирование сложный процесс.
Одним из самых популярных слоганов является: Programming is easy. Но все совсем наоборот: нет универсальной базы, стэка технологий, который можно было бы применить в различных проектах; придется постоянно учиться, читать сотни страниц документаций и решать неинтересные проблемы, которые подкинули вам коллеги (или вы сами год назад). Знание языка программирования не делает из человека разработчика, необходимо хотя бы базовое понимание алгоритмов, математики и смежных технологий. Получается, что программирование – рядовая работа, требующая постоянного самосовершенствования как специалиста, чтобы оставаться востребованным на рынке труда. Просто современная культура придала этому роду деятельности легкий налет халявы, когда ты после нескольких часов щёлканья клавиш в шикарном офисе идешь поиграть в настольный теннис с коллегами, а потом садишься в Tesla и уезжаешь домой.Каждому может нравиться программирование, но далеко не каждый его полюбит.
Есть в программировании множество прекрасных вещей, доступных всем: волнение при создании нового проекта; чувство власти над машиной, когда она в точности исполняет команды; радость победы после долгого перебора множества вариантов решения, прочтения нескольких топиков на stackoverflow и гнева на все сущее. Но далеко не каждый испытает настоящее увлечение программированием, не бросит это занятие, после того, как пример, дословно переписанный из книги, не заработает. Программирование должно стать таким занятием, о котором вы думаете в душе (формулировка Пола Грэма). Если вы профессиональный дизайнер, художник, фотограф, ищите разработчика, чтобы реализовать идею собственного приложения/сервиса, вы неоднократно услышите нечто подобное: «Да научись программировать сам, сейчас столько всего, а ты все ленишься». Но каждый час, потраченный на обучение и непосредственно кодинг – это час, не проведенный за любимым делом, не сделанная фотография, не нарисованная работа. Мы превозносим программирование не из-за написания кода, а из-за того, чего мы можем достичь с помощью него.Программирование безусловно важный и полезный навык, но не необходимый.
Чтобы разбираться в технологиях нет необходимости учиться программировать, как и нет необходимости знать как работает электростанция, чтобы включить настольную лампу. Конечно, если предприниматель не разбирается в программировании, то разработчики могут его обмануть, но с таким же успехом его могут обмануть строительные подрядчики, аудиторы, рекламщики. Возвращаясь к дизайнерам, работающих с разработчиками бок о бок каждый день, большинство из них способны вести с глубокие беседы с программистами об используемых технологиях, будучи неспособными написать и строчки кода. Просто потому что они понимают основы процесса.Дискредитация образовательных программ.
Если начать интересоваться различными программами, обучающими программированию, то можно открыть для себя множество интересных вещей. Так, старая программа школьного курса по программированию в Великобритании предусматривала создание сайта. В PowerPoint. Или Лотти Декстер, директор программы Year of Code, в одном из интервью призналась, что несмотря на то, что научиться программированию легко и просто, сайт можно создать за час, а изучить основы программирования за день, она так и не начала учиться программированию самостоятельно. Более того, только три человека из совета Year of Code являлись программистами с техническим бэкграундом и все трое работали в одной компании. Проблема подобных программ в том, что они не успевают меняться с той же скоростью, с которой развиваются технологии.Несмотря на заголовок статьи, мы поддерживаем стремление каждого, кто желает научиться программировать. И наша задача предоставить доступ и инструменты всем желающим. Важно, чтобы они понимали на какой тернистый путь они вступают, а о перспективах, открывающихся перед разработчиками написано уже очень много.