Программирование и шахматы — почему знать правила игры недостаточно

«Ой, ты умеешь играть в шахматы!», — говорит она удивленно, а ты думаешь: «Ну и что?». Что может быть такого сложного в том, чтоб выучить несколько правил перемещения фигур? Не сложнее, чем научиться играть в «дурака». И тем не менее на теме «научиться программировать» пасутся полчища IT-курсов, спекулянтов и прочего сброда.

Поскольку пипл любит хавать простые вещи, то IT-пропагандисты льют гражданам в уши формулы а-ля «Пойди на курсы, выучи JavaScript, зарабатывай по 4 тыщи зеленых в месяц». Человек смотрит на эту объяву и думает: «Что ж, это ведь курсы по переквалификации, где покажут куда тулить куски кода (как сантехнику показывали бы куда тулить паклю) и оно всё будет работать и я буду получать свои деньжищи». Вероятно, нечто подобное можно было бы ожидать и от других конкретных курсов по переквалификации в мебельщики или строители.

И хоть Обама и пытался мотивировать граждан программировать, научившись писать на JavaScript лишь moveForward(100), однако в реальности всё на порядок сложнее.

Почему программировать сложнее, чем кажется Обаме

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

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

Доктор Савельев, палеоневролог, который изучает мозг, говорит, что некоторые участки мозга, отвечающие, к примеру, за умение рисовать или сочинять музыку могут отличаться от аналогичных участков мозга другого человека в десятки раз. От рождения. Понятное дело, что эти задатки еще надо развить и реализовать в реальном мире через практику, однако всё равно мы видим, что в некоторых вещах можно иметь генетическую «фору».

С другой стороны, в ученой среде бытует мнение, что мозги — нейропластичны и, стало быть, мы можем научиться всему и в любой мере. То есть у начинающего игрока в шахматы есть шанс. Как и у начинающего программиста. Особенно учитывая то, что в мире IT cейчас много не «rocket science» задач.

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

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

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

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

Таким же образом для начинающего программиста может быть опасно резкое погружение в реальный проект. Ведь одно дело писать простенькие сортировочные алгоритмы или мелкие сайтики и совсем другое — разбираться в 15-летнем легаси-коде сложной банковской системы. Попадая в такое болото и не получая результата, легко потерять веру в себя. Хотя, казалось бы — ты вроде и азы программирования знаешь, и паттерны применять умеешь.

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

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

  • Анон

    «Доктор Савельев» — не тот человек, на которого можно ссылаться в серьёзной статье.

  • OneLegPony

    >Доктор Савельев, палеоневролог, который изучает мозг
    Дальше не читал