На эту тему на Хабре была не так давно статья, и там высказывалась мысль, что программирование-де сложная область знаний в принципе  и требует некой особой склонности и серьезного бэкграунда.  Однако с этим я согласиться никак не могу. Программирование по содержанию ничуть не сложней многих других отраслей знаний, а в чем-то даже и легче, особенно когда касается прикладных задач. Наткнулся на заметку человека, который высказал весьма небанальную мысль: при обучении программированию "с нуля" этот "ноль" для всех сильно разный. И у меня есть стойкое убеждение, что сложность освоения  четко зависит от значения этого нуля. А вот почему он разный и что на него влияет- мне и хотелось бы поразмышлять.  Не раз и не два ко мне подваливали с вопросами - "а как мне научиться так же, как ты?" люди довольно-таки разных профессий, в том числе и имеющие рабочие задачи для автоматизации (в частности, на VBA). На что я, ничтоже сумняшеся, скидывал им два-три учебника разных авторов и сказал подходить с вопросами, если что. Из разброса в десятка два таких перцев статистика примерно такая. 10 - вообще не открывали ничего. Ни в бумажном виде, ни в электронном. 7-8 пытались честно начать читать, но сдувались на первой-второй главе и больше к этому не возвращались. Двое читали и пытались реализовывать, но это произошло исключительно после того, как я их прямым текстом отсылал к соответствующим главам книг, где была описана их проблема. Один из них при этом вполне успешно гуглил, но так как теоретическую часть он так и не прочитал, то приходилось ему какие-то очень базовые вещи раз за разом объяснять (что такое поиск с регистром и без, как реализовывается цикл, типы переменных) . Причем, как он сам жаловался, "я ж ПТУшник, у меня в одно ухо влетело, в другое вылетело, ты объяснял раньше, но я уже забыл". Этот хоть спрашивал. Второй предпочитал канючить, чтобы это сделал я, так как ему долго разбираться. То есть, большинство в принципе так или иначе не может или не хочет сделать минимальное для обучения - прочитать учебник. Но это относится не только к программированию и к учебным пособиям. Работая на складах, я практически ежедневно убеждался, что инструкции в основном не читают, если читают - то не запоминают, если запоминают, то отчаянно путаются. С каждым днем приходилось к каждой инструкции добавлять все больше и больше картинок, потому что выяснялось, что инструкции типа  "В меню А выбрать В и далее перейти к окну С". ни хрена не воспринимаются. Это при том, что менюшки специально делались интуитивно-понятными. Человечество, на мой взгляд, прошло такой долгий путь в совершенствовании письменности, к обретению всеобщей грамотности, но это почему-то не помогает прочитать инструкцию и сделать все по ней. Если же написано латиницей - вообще пиши пропало. У нас в стране с 50-х гг. 20-го века иностранный язык в школах обязательный, и преподаются в основном языки с латинским алфавитом (на Дальнем Востоке попадаются китайские, японские и корейские спецшколы, но у меня такой был только один работник), и все равно раз за разом сталкиваешься с ситуацией, когда здоровый детина не понимает адрес, написанный транслитом латиницей: "тут не по-нашему написано, я не понимаю ". Ты не можешь прочитать латиницей слово "Kaluga"? Серьезно? Увы, серьезно.  Мы на складе вернулись исключительно к пиктограммам, и увешали склад рисунками и фотографиями как надо делать и как не надо. У нас стенды стояли на каждой аллее, в каждой зоне были вывешены картинки, что должен, а что не должен делать в этой зоне с материалами работник. И все равно начальник склада каждое утро на планерке поминал необучаемых обезьян. Потому что НЕ ЧИТАЮТ. Даже в условиях, когда это напрямую влияет на размер получаемой зарплаты. Это для нас может звучать дико. Все мы, пишущие и читающие тут, воспринимаем навык чтения и письма так же естественно. как умение ходить, говорить, дышать. Но есть "глубинный народ", от которого мы, к счастью, или к несчастью, отделены культурной китайской стеной, и который за эту стену прорывается, только оставив тонну безграмотных матерных комментариев в наши уютные бложики, поплатившись за это вечным баном. В нем другие приоритеты в жизни, другая культура, и совершенно иные базовые навыки. В том числе и навыки обучения В свое время в 1997 году на экзамене, когда я высказал мысль, что в культурологии мышление делится на симпрактическое и теоретическое преподаватель резко поправил, что это еще не общепринятое мнение, а лично преподавателя. Но впоследствии. как я могу судить, теория вполне прижилась и активно используется.  Итак, что такое симпрактическое мышление? Это мышление образно-чувственное, проявляемое в непосредственной материальной практике. Когда гончар делает горшок, то у него превалирует именно симпрактическое мышление. Заставь ему словами описать процессы во время производства горшка - и он не сможет связать двух слов. Показать - сможет. Взять руки в руки и научить - сможет. А вот словами, абстрактно, отдельно от конкретного гончарного круга, глины, горшка описать процессы может и не суметь.  В этом смысле был детский рассказ, когда сороконожку спросили, какую ногу она ставит первой, а какую второй и так далее, она задумалась об этом, запуталась в ногах и не смогла никуда пойти.  И, в принципе, в мире полно процессов, которые у нас протекают в фоне, о которых мы не задумываемся - едем на велосипеде, рулим машиной (например, я не смогу сказать, не глянув на тахометр со спидометром или на положение ручки, на какой передаче я еду в текущий момент), раньше, до станков с ЧПУ, квалифицированные рабочие практически не задумываясь, выдавали нужные допуски вручную - им было сложно объяснить, на сколько градусов надо ручку крутануть и в какой момент, чтобы получить деталь нужного размера, просто крутили, улавливая момент по звуку\цвету\времени\малоуловимым приметам. Почти все материальное искусство симпрактично - и вавилонские, и дорийские архитекторы вполне справлялись с арочным строительством без квадратуры круга, и тем более без сопромата прикидывая нагрузки (правда, не стоит забывать об эффекте выжившего - все, что было прикинуто таким образом "на глазок" неправильно, рухнуло еще в древности).  Конвейер и разделение труда требуют все меньше и меньше собственно знаний и больше и больше сводят процесс к механическим симпрактическим операциям в фоне, в которых абстрактное сознание вообще не подгружается. У работников склада в Амазоне, например, мозг включается только под давлением мочевого пузыря - стоило сократить им время похода в сортир, и они ВНЕЗАПНО обнаружили, что работодатель их, оказывается, имеет в извращенных позах. Если мы посмотрим в целом, то мы увидим, что большинство населения вовлечено в рутинные, механические процессы, где не требуется ничего больше, чем симпрактического мышления.  Но тем не менее, у каждого человека, за исключением разве что "овощей" с тяжелыми формами поражения мозга, имеется и теоретическая форма мышления или, если проще, абстрактное мышление, когда человек мыслит не образами, а четко определенными понятиями, которые в свою очередь выведены из понятий, и только в самом крайнем случае понятия выводятся из непосредственного опыта. Это, можно сказать, высший пилотаж мышления - ему не требуется непосредственно-чувственный предмет, чтобы о нем мыслить. Если симпрактическое мышление ограничено непосредственной средой - если нет горшка, гончар ничего о нем не может сказать, то теоретическое мышление может объять абсолютно все. Даже те вещи, которые напрямую относятся к симпрактическим - например, ходьба, давно описано и объяснено теоретическим мышлением. К этой сфере однозначно относятся наука, такие формы культуры как литература, философия. Теоретическая форма культуры универсальней симпрактического мышления, потому что ей не принципиален и сам носитель. Неважно, например, написал ли книгу Аристотель или кто еще, мы можем вообще не иметь никакого представления об авторе, но воспроизвести по ней определенный продукт. Она снисходит к симпрактике и может ее повторить и наработать, но наоборот -подняться из симпрактики к теории, крайне трудно, так как симпрактический процесс при всей распространенности качественно не доминантный.  В настоящее время при том, что разделение труда все более превращает труд в симпрактический процесс для огромного количества людей, крайне важна роль теоретической культуры и теоретических навыков, потому что воспроизвести продукт еще можно в бессознательном состоянии, но сложность средств производства создать их без теоретического мышления уже не позволяет. И особенно она важна в таких сферах как IT, там вообще симпрактических процессов почти нет - они все закончились с эпохой перфокарт. Но люди, из которых пытаются рекрутировать и обучать кадры, в массе своей воспитаны и живут в обществе, где господствует массовая глупость симпрактическое мышление.  Если мы говорим об обучении, то в текущей производственной базе имеет смысл развивать в подавляющем преимуществе теоретическое мышление. Симпрактические навыки сейчас не столь актуальны -  в текущей ситуации они достаточно просты и приобретаются относительно быстро - у нас 62% населения имеют водительские права, еще больше владеют навыками работы на компьютере, с 3-х лет умеют в смартфон, и так далее, эти навыки не требуют особого усилия. Для производства горшка не требуется никаких ручных умений - достаточно открыть кран и наполнить раствором форму, а дальше конвейер все делает сам. А вот развитие теоретического мышления стало действительно серьезной проблемой.  Как известно, мозг - штука весьма комплексная, и "тут помню-тут не помню" может как-то проканать для киношного уголовничка в исполнении Крамарова, а в реальности, если мы что-то в мозгу мы не развиваем, то мозг деградирует в целом. Иными словами, развитие умственных способностей должно быть как можно более широким, причем с достаточной степенью глубины для каждой сферы знаний и умений. Иными словами, общее  развитие человека определяет развитие мозга человека в целом, в то время как узкая специализация всегда несет в себе риск, что некоторые типы нейронных связей, некоторые формы умственной деятельности будут пропущены, а следовательно, мышление не будет полноценным.  Здесь очень распространено мнение, что программисту-де нафиг не нужны всякие гуманитарные дисциплины - философии там, культурологии, политологии, что в ВУЗах должны учить программированию, а не всяким общим дисциплинам, которым на непосредственной работе применения вроде как нет.  Недостаток общего развития, кроме общей однобокости выливается в совершенно анекдотичные случаи, когда взрослым людям приходится рассказывать общую теорию права или тыкать носом в то, что их философский велосипед изобретен еще в средние века и умер своей смертью уже в Новое время. Не зря же говорилось Козьмой Прутковым, что "специалист подобен флюсу - полнота его односторонняя". Обилие на Хабре гуманитарных статей говорит как раз о том, что среди технарей есть возможно, и неосознаваемый, спрос на компенсацию неполноты знаний, хотя бессистемно читая статьи про то и это, невозможно получить полноценные знания и полноценное развитие. Некоторые доходят до того, что отказываются от общетехнических теоретических дисциплин вроде физики. Дескать, если я не могу на хлеб намазать это, зачем мне физика, я программист? Идеи не новые - философский позитивизм категорически не признает общих законов мироздания, считает все абстракции познавательно-бесполезными  и крутится вокруг практического применения и "практического" получения знаний, превознося опыт как все на свете. Но тем не менее, того общефилософского принципа, что рождение из частного общего лишь потенциально, а общее всегда абсолютно содержит в себе частное, никто не отменял. Имея общие знания, перейти к частному можно, постольку поскольку частное общим законам подчиняется. А вот найти в частном общее безусловно можно только  лишь тогда, когда мы имеем весь универсум частных явлений.  Но возвращаясь к вопросу о содержании обучения. В школе закладываются основные навыки для теоретического мышления  - умение и навык читать, писать, считать, каждое прочитанное предложение, каждое выполненное упражнение, каждая решенная задача так или иначе развивают именно теоретическое мышление. И от успешности этого труда зависит, будет ли человек после школы способен на что-то больше, чем стоять на конвейере, мыть полы или водить машину. Чем в большем количестве сферы знаний человек будет успешен - тем более развитым у него будет теоретическое мышление в целом, чем меньше у него будет пробелов в знаниях, тем проще ему будет мыслить в целом, так как разнообразие знаний есть разнообразие нейронных связей в мозгу.  Само собой, что детишки недостаточно добросовестны, чтобы создать нам благостную картину человека всесторонне развитого. Лень и недостаток мотивации, а также педагогические ошибки как в форме преподнесения, так и содержания программ позволяют в относительно небольшом количестве случаев добиваться хорошего результата, а в массе своей этот результат удовлетворителен разве что для несложной и преимущественно физической работы. В одном из фильмов была следующая градация грамотности негров из гетто:  не умеет писать и читать,  умеет писать свое имя умеет читать вывески читает газету негр с образованием - тот кто закончил что-то больше школы При том, что эпизод должен был показать, насколько хренова в США система образования для низших классов, уровень образования и для России в большинстве фактически выпускает человека, который в лучшем случае, умеет читать газету. Мы удивляемся, как люди подписывают, не читая, кабальные кредиты, но на практике школа их выучила читать, понимать и запоминать не больше одной странички текста. И это чтение им сложно и даже неподъемно.  Учителя стонут - школьники ничего не читают. Им трудно прочитать 10-20 страниц текста, они не понимают прочитанного, они не могут пересказать, учебник не смотрят от слова "совсем", а пытаются найти видео. Именно поэтому так зашел людям видеоблоггинг - основная масса населения считает, что проще потратить 40 минут на выслушивание "говорящей головы", чем 5 минут чтения относительно небольшого текста.  Но это еще не все. Даже выпустив из школы  "умеющих читать газету", общество загоняет их ежедневно работать 8-12 часов  монотонным физическим трудом, где в основном достаточно симпрактических навыков, причем с многими работами справятся действительно даже обезьяны, будь у них хоть какое-то понятие о дисциплине. Ряд работ охренительно отупляющи- например, работа охранника, когда человек часами должен пялиться в монитор с одинаковой картинкой, или, к примеру, печатника, который должен визуально следить за потоком печати, подолгу пялясь на падающие в лоток листы. И часто этого воздействия даже не осознают и вместо компенсирования тупого времяпрепровождения книгой, идут пить пиво, и далее убивая и без того убитые клетки мозга.   Таким образом, мы видим множество людей, формальное образование которых даже не соответствует фактическому. Именно эти люди, имея диплом об окончании школы, рассказывают, что Солнце вращается вокруг Земли, именно они не могут найти на карте Аргентину и являются адептами "заряженной воды". Встречал и более вопиющие случаи - когда, например, инженер не знает закон Ома, а техник по обслуживанию ракетных двигателей понятия не имеет о банальной термодинамике. Один АСУшник как-то при мне затруднился с тем, чтобы организовать цикл по индексу для перебора массива. Эти люди с дипломами - они вокруг нас, утерявшие или так и не получившие формальные знания. И самое интересное при этом - навык получения образования также либо не сформировался, либо безнадежно утрачен.  Вы думаете, что гуманитарии тупые и выучиться на гуманитария просто? Хм... Когда я поступил на философский факультет, гуманитарней не придумаешь, то на меня уже на первом же курсе обрушился вал литературы, которую надо обязательно прочитать. Кроме пудовых учебников (например, "История зарубежной философии" - это десятитомник, "История Древнего мира" - это двухтомник, "История Средних веков" - уже в разных изданиях два или три тома), настоятельно требовали читать первоисточники. Например, что технарь мог читать из Лейбница? Ну, парочку теорем, несколько формул, все укладывается на несколько страничек информационно плотного текста, но все ж не 300 с хреном страниц "Монадологии" того же автора. А ее требовали читать. Всю, и сдавать опросник по ней на семинаре. Или, возьмем, например "Русскую идею" Бердяева - ее у нас требовали конспект. И могли спросить: "А вот он тут критикует Чернышевского, а читали ли вы его диссертацию об эстетике?" Студент выпадал в жесткий ступор. Была целая куча предметов, где просто надо было вести конспект - типа "Систематической философии", где с Канта перескакивали на Геделя, а потом на Хайдеггера и так далее. Преподаватель стоял у доски и рисовал схемы, где были запутаны гностики, агностики, теодицея, символ веры, манихеи и зороастризм, а Вернадский пересекался с Винером, и к каждому были имена, названия, и все читать, читать, читать. В семестр доходило до 16 тысяч страниц обязательного чтива. Плюс логика в усиленных дозах, плюс  общеобразовательные высшая математика, физика под видом "Концепций современного естествознания", плюс язык, экономика, спецкурсы (особенно врезался в память по оптимальному программированию, прочитанный от кафедры "Теория и методология науки"). И в этой упряжке надо было бежать, бежать, бежать, пока не пристрелят добрые люди. Чем старше, конечно, становилось проще - особенно когда пошла специализация, можно было заниматься чем-то интересным, а не просто всем подряд. Но школу первых курсов не забыть никогда. Вот где прокачался навык работы с текстом, анализа, выжимки, построению схем, запоминанию и усвоению информации. Хрен напугаешь меня мануалами, я "Философию права" Гегеля умудрился в электричке за неделю прочесть и даже законспектировать.  Это я к чему? К тому, что навык обучения не есть врожденный, он воспитывается, прокачивается, и содержание имеет очень относительный характер к факту этого навыка. И только относительно этого навыка "ноль в программировании" может быть нулем очень и сильно разным. Есть разница между хорошим юристом, настасканным на густо ветвящемся дереве права и плохим инженером, который лабы, контрольные списал, основные предметы еле вытянул на троечки, общеобразовательные предметы проспал под партой, а диплом ему наполовину написал научный руководитель, потому что не давать диплом после того, как герой протянул 4 курса, уже не комильфо. И там, и там формально будет ноль. Но нули эти будут отнюдь не равны. Когда я фрилансил с Экселем, обратился ко мне мужичок - попросил резко научить его программировать, ему на работу надо устраиваться, требуют уметь в макросы. Мужик - инженер по обслуживанию чего-то там, работал менеджером в конторе по обслуживанию зданий. Казалось бы, ему должны были показать в ВУЗе как минимум паскаль (а больше в середине 90-х в ВУЗах и не было ничего). Но там был просто ноль. Круглый и лоснящийся. Азы объяснил - переменные, циклы, обращение к ячейкам, диапазонам. Мужик два раза позанимался, циклы еле освоил, условный оператор. Больше времени не было, пошел устраиваться. Не вернулся - наверное, устроился. И обратный случай - юрист, ему надо было собирать с определенных параграфов данные. Смотрю высланный файл - да чувак уже сам практически справился, распарсил как надо. Просто не сумел результат из Word'a передать в Excel. А по телефону говорит, я в программировании вообще никак... Всем бы так никак.  То есть, когда мы говорим об обучении, мы должны четко понимать, КОГО мы обучаем. Невозможно говорить об абстрактном учащемся, что вот-де, у абстрактного учащегося наступает период "пустыни отчаяния". Есть конкретные люди, с достаточно специфическим опытом, и каждый в сильно отличающихся обстоятельствах. У кого кредитов гора - то тем, наткнувшимся на временный "потолок" навыков, который не позволяет расти по зарплате или даже вообще устроиться на что-нибудь сносное, или затягивает процесс обучения, действительно отчаяние. А если это школьник с  минимумом обязательств - то там сильно другие эмоции, и сильно другая оценка одного и того же явления, когда сложность предмета временно обогнала текущие возможности. А многие вообще не встретятся с этим и пойдут, в силу хороших навыков самообразования впереди всех программ с опережающей динамикой.  При хорошем развитии того самого "теоретического мышления", неважно, в какой области, успехи в учебе гарантированны вне зависимости, из какой сферы в какую ты пришел. Каганович, проработав год учетчиком на железной дороге, после периода нелегальной работы, стал наркомом транспорта, и вполне успешно справился - партия большевиков, особенно в нелегальный период, очень успешно прокачивала навыки быстро осваивать и ухватывать огромный объем информации. Можно привести в пример и Сталина - формально недоучившийся семинарист, а фактически в библиотеке его было более 5000 книг с записями и пометками на полях, по воспоминаниям прочитывавший по 300-500 страниц в день, мог за короткие сроки достаточно глубоко погружаться в технические процессы и принимать при этом компетентные решения. Можно вспомнить Берию, который, не имея технического образования, курировал атомный проект. Люди садились, читали, при вопросах - спрашивали у специалистов, разбирались в текущих вопросах, работали с документами, и в итоге достигали необходимого уровня компетенции.    Основная масса людей же, как мы помним, все-таки ни с какой опережающей динамикой никуда не пойдут, так как там очевидно сниженные относительно объективных требований учебного процесса навыки и умения. Они не умеют ни читать толком сложные тексты, ни выделять основное, ни связывать в мозгу прочитанное в систему, им всему этому придется научиться в процессе обучения. Они умеют в рутинные операции, некоторые фанатично преданы инструкциям ("сказали так делать, я буду так"), там даже элементарное любопытство снижено - например, на моей памяти один школьник на предложение сына почитать статью о 12 методах сортировки, четко ему заявил, что раз в программе сортировка пузырьком, то ему нужна статья только про пузырьки, а остальное будет его только отвлекать. У меня сын не гений, но даже он удивился, что у человека нет просто желания заглянуть, что там дальше, за барьером школьной программы. Мой-то не упускал случая выпендриться знаниями. Но формально на рынке труда все люди - и с хорошими задатками, и с неважными, все равны. И все одинаково приходят на курсы. И им дают одинаковые материалы. Для одних материалы рассчитаны на дебилов, другим - сложны. Одни просто не умеют ничего понять, если им не показать симпрактически, другие схватывают с листа, и не только преподаватель, но и видео излишне. Помню, решил посмотреть одно видео - из документации была не очень ясна работа со свойствами объекта - чувак на видео полчаса расписывал код, выписывая каждое свойство, хотя можно было рассказать о трех, имеющих расширенные параметры, а остальные двадцать просто возвращали одно значение, я бы их дал списком. Я чуть не сдох со скуки, а там восторженных комментариев штук двести. "Создайте машину, пользоваться которой сможет каждый дурак, и только дурак захочет ей пользоваться"  Логично, что, пытаясь найти некое «среднее арифметическое», попасть точно в цель курсы могут только случайно.   Таким образом, когда мы имеем дело с "необучаемыми обезьянками" (а с каждым новым витком экономического кризиса в IT рвутся все чаще и чаще именно они), на обучение программированию накладывается сопутствующая задача - ОБУЧЕНИЕ САМООБУЧЕНИЮ. Программеры могут научить учиться нейросеть, но вот научить учиться взрослого дядю, который из продажников решил пойти в программисты - задача куда сложней. Те, кто может отбирать контингент, фильтровать по способности и обучать обучению, на коне, а остальные идут в категорию "мусорных" , и  когда плохо обучаемого, вызубрившего кое-какой-то синтаксис выпихивают на рынок труда, в основном за счет этого и идет деградация кадрового потенциала.  Резюмируя, можно сказать, что основная проблема сложности обучения программированию - не в содержательной сложности предмета, и не в системе технического образования, а в постепенной утере основной массой населения базовых образовательных навыков, деградации общей культуры и ценности знаний. Общество глупеет, в целом, и само собой, это влечет за собой последствия: трудно вырастить не только толковых программистов, но и учителей, и врачей, и инженеров. К этому приложила руки и школа, и минобразования, и система платных ВУЗов, и расплодившиеся паразиты на образовании - платные курсы. Червь, погрызший классическую школу и систему воспитания - он везде и повсюду, и в попсе вокруг, и в промышленности, где "солдаты из стройбата таджики заменяют экскаватор", и в самом рынке труда, который в силу абсолютного господства работодателя гарантированно создает и поддерживает неопределенность в области профессиональной ориентации, и в общественной системе, где деньги гарантированно перевешивают знания. И лечить надо именно это.  категогически