(←) предыдущая запись ; следующая запись (→)

образование математическое программистское что_я_натворил

Некоторые школьники в очень раннем возрасте учатся программировать: в 7-ом классе они пишут почти полноценные продукты, используя мудрёный стек технологий, а к 11-му уже являются неплохими разработчиками.
Казалось бы, математика чем-то близка миру IT, но в математике я таких талантов почти не видел.

У меня есть гипотеза о том, почему так происходит. И есть план, как положение дел исправить.

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

Чем принципиально отличается изучение программирования? Тем, что у ученика есть весьма быстрый цикл обратной связи. Ты написал программу, запустил — и сразу видишь, где и как она сломалась. В интерактивном режиме даже лучше: написал одну строчку кода — увидел результат её выполнения. Не понравилось — поменял и тут же увидел новый результат. Понравилось — скопировал в свою программу.

Кроме того, для программирования есть специальные IDE — это такой умный блокнот, который подсвечивает ошибки и делает подсказки и помогает отлаживать программу, когда что-то идёт не так.
IDE не даёт разработчику написать код с ошибками. И сама по контексту догадывается, что именно ему нужно и предлагает несколько вариантов. Автокомплит не предлагает некорректных вариантов. Они все валидны, хотя и не все полезны.
И такой автокомплит у программистов был задолго до модной нейросетки Co-Pilot. Я сам работал с такими средами ещё в школе, 20 лет назад.

Даже если ты плохо знаешь, как работать с системой, автокомплит тебе показывает правильные варианты, и… Ты очень быстро осваиваешь новые подходы, которых раньше мог вообще не видеть. Фактически каждый раз, когда ты делаешь хоть какое-то действие, ты видишь большой спектр возможностей. Ты написал название переменной, поставил точку — и видишь 3–10–50 вариантов того что конкретно с этой переменной можно сделать.

Если это строка, можно найти шаблон, обрезать пробелы по краям, разделить строку на части, … Если это массив элементов, можно удалить элемент, отсортировать или перемешать, и ещё сотню разных вещей, про которые вы могли даже не догадываться. Если это файл, можно открыть, закрыть, переместиться в середину, посмотреть путь к нему, итд.
Вы видите эти подсказки, буквально, по несколько раз в минуту. Не всегда конечно, вы вчитываетесь, потому что и так знаете, что делаете. И потому что первый-второй из предложенных вариантов вас устравают. Но оказывается вполне достаточным время от времени поглядывать на эти варианты, чтобы они постепенно оседали в голове и в пальцах.

(1/4)

(↓) в конец