Без заголовка
> Он не понимает, зачем ему помнить все эти странные слова "из теории"
Имхо, это скорее всего говорит о простоте выдаваемых ему задач. А тратить время на ручное выравнивание кода в коде, написанном для себя -- это полнейшая глупость, и вообще, все нормальные IDE это сами делают.
Профессиональный учитель, готовящий мировых олимпиадников, рассказывал нам, что задачи должны быстро усложняться. Решил -- даётся задача сложнее. Не решил -- другая задача этого же уровня. Ну и задачи должны быть по возможности интересными / интересно поданными.
При этом, конечно, есть разница, какой класс у ученика, но не сильно большая.
К 12-13 годам должно уже абстрактное мышление вполне сформироваться. А задачи со звёздочкой есть и в учебниках для 5х классов.
>Зачем читать документацию по языку и запоминать что-то оттуда (когда можно просто погуглить какой-то сниппет кода -- и выдрать его без сопутствующих текстовых объяснений, использовать "по наитию"
А вот это уже формируется с возрастом -- это просто аккуратность и использование логики вместо интуиции. Оно само придёт, когда сложность программ перевалит за 10000 строк, готовых решений не будет, а на отладку будут уходить часы. Но интуиция тоже обязательно нужна, и её тоже нужно тренировать. Тренируется -- вот и замечательно.
А ещё можно играть в какие-нибудь шахматы. В шахматах на интуиции не выехать.
Второй нюанс -- может появиться желание схалявить в муторных задачах (не дорешивать со словами "дальше очевидно"), а это влияет на качество решения задач -- нужно тренироваться и доводить вычисления до конца. Так что нужно ещё и трудолюбие развивать. Но без повторений и без откровенной мутоты на три страницы переписываний формул и чистописания.
Нам было хорошо в этом плане -- нас в лицее самостоятельные работы для школ с физ-мат уклоном на каждом занятии давали с 8го класса. Такая мини-олимпиада по математике на полтора часа два-три раза в неделю.
> но во всех его программах есть int NY (ага, NoYes), которая принимает значения 0 и 1 -- и он категорически отказывается вводить в таких случаях булевы переменные с осмысленными именами, так и говорит: "я это не люблю".
А какая разница-то принципиальная? 0 и 1 быстрее писать, чем true и false.
Это и есть хорошее понимание теории -- знать, что в int вполне может храниться булево значение, и не во всех ЯП есть даже тип bool.
Если код пишется для себя, а не для других людей за деньги -- это абсолютно НОРМАЛЬНО.