Допустим он хотел бы учить Питон.но с программированием он не когда в жизни не сталкивался?Как тогда?
Когда в свое время я пытался объяснить абсолютному новичку в программировании для чего нужно писать какой-либо код, что за алгоритмы такие вообще, то всегда старался рассказать, что программа - это всего лишь инструкции, которые необходимо выполнить компьютеру над входными данными для достижения необходимой цели. Вот например, нам нужно приготовить чай. Входные данные: кружка, ложка, пакетик чая, сахар, чайник, вода ну и газовая плита, например. Далее начинаем описывать необходимые инструкции для достижения резульата:
кружка.добавить(пакетик_чая, сахар)
налить_воду(чайник)
плита.поставить_на_плиту(чайник)
плита.зажечь_газ()
пока(чайник.кипит != ИСТИНА) то ничего_не_делать
иначе чайник.налить_кипяток(кружка)
пока((сахар.растворен И пакетик_чая.заварился) != ИСТИНА)то ждать
иначе готово
Ну как-то так. Я никогда правда псевдокодом не пытался все это объяснить. Просто на словах объяснял. Но главное, что я пытался донести до человека - это необходимость понимать как именно происходят преобразования данных из входные в выходные на каждом этапе работы программы. Даже если взять простой while, где мы на каждом шагу увеличиваем значение переменной на 1 до тех пор, пока переменная не станет равной 100, а затем,выйдя из цикла, печатаем результат, то человек должен понимать, что происходит внутри цикла, что на каждом шагу происходит сравнение текущего значения переменной с необходимым, а далее переменой так или иначе присваивается новое значение.
Этот пример, может показаться простым, но я в жизни встречал случай, когда у человека в цикле описанном выше был оператор вывода значения в консоль. То есть на каждой итерации выводилось текущее значение переменной, но он не мог понять, как сделать так, чтобы выводилось только конечное значение из-за того, что не понимал, что именно происходит на каждом шаге выполнения программы.
В общем, новичков, которые вообще не представляют как это все работает, нужно в самом начала не то чтобы языку программирования учить(хотя и это нужно), а нужно учить алгоритмическому мышлению (правда все вышеописанное в большей степени относится именно к императивному подходу. Декларативному подходу нужно все таки немного иначе учить). Когда человек может поэтапно (этапом здесь считать некоторое атомарное в контексте определенной задачи действие) объяснить, как из входных данных получить выходные, выполняя некоторые преобразования, то потом описать это все на каком-то языке программирования ему будет очень просто, чем человеку, знающему синтаксис языка, но не представляющему, что с этим синтаксисом делать.
[Anonymous], вы попробуйте поставить несложную задачу человеку. Например, спросите у него для начала как из некоторого списка числе от одного до ста получить только четные. Тут человек (новичок) может вообще не знать никаких языков программирования, но может сказать, что нужно брать каждое число и делить его на два и, если деление было без остатка, то число - четное.
Но, тут не нужно впадать в крайности. Знания базовых (и не только базовых) конструкций языка тоже очень важны. Без них человеку будет тяжело описать алгоритм, который, возможно уже родился в его голове. Это все равно, что гений ядерной физики из Женевы, которому нужно срочно объяснить русскому человеку (не знающему иностранные языки) некий физический процесс на русском языке, но он при этом знает только два слова: водка и балалайка. Вроде бы он и гений, но словарной базы для достижения цели не хватает.