Спасибо всем, кто потратил свое время и дал советы. Ваши мысли показали стоящий передо мной вопрос с различных сторон.
Итак, отчет по первому занятию.
Я вспомнил, что сам начинал с Spectrum BASIC. Там не было никаких контекстов устройств, переключения графический\текстовый режим, долгой компиляции, сохранения програм по куче файлов и прочей несущественной для старта ерунды.
Был REPL, и можно было вводить программу построчно.
Все или работало сразу, или выкидывало однострочные сообщения об ошибках.
Еще было подобие IntellySens'а. Ключевые слова и синтаксические конструкции вводились одной кнопкой.
И я решил для пробы найти что-то подобное.
Нагуглился какой-то BASIC256. На нем и началось обучение. После нескольких странных приколов (диалекты Бейсика же) - обучение перешло на Blitz3D.
Что пошло хорошо:
1. В Бейсике можно писать осмысленные программы из 2-3 строк.
2. Понята логика работы основных конструкций: Print, Input, If Then Else, For Next (т.е. не собственное безошибочное написание, а именно что они делают).
Что пошло не так хорошо:
1. Нет навыков набора латиницей. Это очень замедляет всё.
2. Синтаксис, его надо учить, да.
Итоги: не так уж плохо для первого раза. Посмотрим, что будет дальше.
Теперь развернуто отвечу falcon'у, т.к. он затронул методологию обучения.
Сообщение от falcon
Но вообще начать было бы здорово с основ алгоритмизации, объяснить, что из себя представляет память, как происходит выполнение программы. Так сказать настроить на нужную волну. И ещё было бы здорово привить привычку чтения технических книжек.
|
Вчера я начал все же не с технических подробностей, а с демонстрации самой возможности того, что компьютером, вернее её логикой, можно управлять.
Основной упор был на простоту. Чтобы ребенок осознал, что программирование это не что-то невероятное, а вполне себе познаваемая вещь.
Сообщение от falcon
Очень важно, что бы не приходилось объяснять начинающиму перед тем как он распечатает свой первый Hello World, что такое дерективы препроцессора, импорт пакетов, модулей, что такое пространства имён, объекты, перегруженные операторы, точка входа, функции.. а ведь всё это необходимо что бы распечатать текст в Java, C# и C++..
в этом больше приимущество паскалей и бейсиков. Они действительно проще.
|
+100500
Сообщение от falcon
python, на мой взгляд, отличный выбор.
В отличии от классических паскалей и бейсиков, изучение питона - путь не тупиковый (да простят меня дельфисты).
|
согласен, но все-же ООП на Питоне это нечто своеобразное, совсем не по законам жанра. И куча приколов с динамической типизацией, которые надо будет объяснять. И еще одна "радость" в Питоне - создание полей классов на ходу при обращении к ним. Т.е. опечатался, например вместо name набрал nmae - и "компилятор" тебе ничем не поможет, ищи ошибку по всему тексту.
Да, я знаю, что можно перегрузить get_attr. Но это явно уже не про обучение программированию.
Сообщение от falcon
Питон тоже обладает этими приимуществами, но плюс к тому этот язык сейчас весьма актуален 
|
ответил про "преимущества".