Разработка будущего: как определить у ребенка задатки программиста
Об эксперте: Оксана Селендеева — ИТ-предприниматель и идейный вдохновитель Школы программирования для детей CODDY. Соорганизатор благотворительного проекта помощи детям Donate-Codding. Основательница групп Sell Your Head в соцсетях.
Абстрактно-логическое мышление
Программирование строится на логике, это ее воплощение в жизнь. Иногда даже утрируют, что разработка — это и есть логика [1]. Поэтому умение абстрагироваться и логически мыслить — важнейшие навыки программиста.
Мыслить абстрактно-логически означает оперировать сущностями, а не конкретными предметами: умение обобщать, определять отношения между объектами, находить паттерны, строить гипотезы. Человек, который мыслит логически, делает верные выводы из предпосылок.
Вот пример из книги Канемана «Думай медленно… решай быстро»:
«Стоимость бейсбольного мяча и биты — 1 доллар и 10 центов. Бита на 1 доллар дороже мяча. Сколько стоит мяч?» Если вы ответили — 10 центов, то сделали неправильный вывод, ведь получается, что бита всего на 90 центов дороже мяча, и не совпадает совместная стоимость товаров. Логичный и верный ответ — 5 центов.
Чтобы строить верные умозаключения, нужно уметь применять виды логического мышления, следовать законам логики, не допускать логических ошибок. Можно не знать как это называется. Интуитивное, прокачанное жизненным опытом логическое мышление в быту часто называют здравым смыслом.
Как проверить логическое мышление у ребенка
Логическое мышление легко проверить задачами на смекалку. Они также помогут определить вдумчивость, метамышление, последовательность, внимательность и другие ценные для разработчика качества.
Вот несколько таких задач
- Нужно усовершенствовать конструкцию самолетов, чтобы их реже сбивали на войне. Известно, что у вернувшихся с заданий самолетов больше всего пробоин на фюзеляже, чуть меньше — на крыльях, а зона двигателя всегда практически в идеальном состоянии. Бюджета хватает на усиление только одной детали. Что в самолете надо укрепить?
Ответ. Это хрестоматийная задача на ошибку выжившего. Укреплять нужно защиту двигателя, ведь самолеты с пробитым двигателем не возвращаются.
- У Тани две монеты на сумму 15 копеек. Одна из них — не пятак. Какие у Тани монеты?
Ответ. Банальная внимательность к предпосылкам и ответ очевиден — 5 копеек и 10 копеек. Ведь если одна монета — не пятак, нет противоречия в том, чтобы пятаком была другая.
- В двух кошельках всего 4 копейки, причем в первом — копеек вдвое больше, чем во втором. Как это возможно?
Ответ. Опять же акцент на формальные условия. Нигде не сказано, что один кошелек не может лежать в другом.
Эти задачи подойдут для ребят, которые уже как минимум учатся в средней школе. Еще им подойдет тест на склонности к программированию, состоящий из десяти вопросов на проверку логического и причинно-следственного мышления, умения анализировать и обобщать, гибкости ума и внимательности. Тест на английском [2].
Малышам нужны задачи попроще и поинтереснее. Например, на сайте LogicLike много красочно оформленных задач, что особенно помогает удерживать внимание дошкольников [3].
Алгоритмическое мышление
Алгоритм — порядок шагов для решения задачи. Программы — это инструкции для компьютера, алгоритмы написанные на языке программирования. Без них не получится разработки.
Алгоритмическое мышление — навык определения последовательности действий для достижения цели. Задача разбивается на части и становится понятной. Простой пример — рецепты приготовления еды.
Алгоритмы помогают автоматизировать рутинные действия. Например, все мы в школе учили алгоритм умножения в столбик. С алгоритмом нам не нужно каждый раз с нуля придумывать, как умножить числа.
Исследования доказывают, что умение мыслить алгоритмами помогает преуспеть в программировании [4]. В исследовании одна половина учащихся могла в уме представить модель программы и поэтапно ее реализовать, а другая — нет. В первой группе экзамен сдали 84% студентов, во второй — 48%.
Как проверить алгоритмическое мышление у ребенка
Попросите рассказать, как что-то делать, например, чистить зубы или рисовать человека. Если ребенок без проблем сможет объяснить вам порядок действий, то все отлично.
Дети постарше могут построить алгоритмы в интуитивно-понятной визуальной среде программирования Scratch, где алгоритмы собирают из графических блоков [5]. При этом если ребенок справляется с задачами из точных наук, у него имеется развитое алгоритмическое мышление.
Твердость характера или стойкость
Твердость характера (grit) — упорство в следовании долгосрочным целям. Стойкость помогает выиграть марафон, а не спринт. Противоположности этого качества — слабохарактерность, импульсивность и малодушие.
Как проверить стойкость у ребенка
Для определения уровня твердости характера есть простой тест из десяти вопросов [6]. Его разработала Анжела Ли Дакворт, профессор психологии Пенсильванского университета, автор книги «Твердость характера. Как развить в себе главное качество успешных людей».
Определить зачатки твердости характера у малышей можно с помощью аналогов популярного «зефирного теста». Это серия исследований отсроченного удовольствия. Детям предлагают выбрать между одним небольшим вознаграждением сейчас, или в два раза больше, если они терпеливо подождут его в течение 15 минут. При этом если дети выбирают второе, экспериментатор выходит из комнаты. Ребенок остается с выбором один на один.
В таком исследовании важно выбрать наградой что-то действительно желанное. Исследователи доказали неточность оригинального «зефирного теста» — дети из богатых семей чаще откладывали сиюминутное удовольствие, потому что не видели ценности в зефире [7].
В целом, если ребенок проявляет силу воли и готов подождать, чтобы получить большую награду, то у него есть все шансы на успех в разработке. Волевой компонент самый важный в любом деле. Когда человек мотивирован — все необходимые навыки легко взращиваются на дороге к цели.