Обучение программированию с нуля.
Последнее время часто возникает такой вопрос: как обучить человека программированию вообще с нуля. Т.е., например, человек умеет работать на компьютере и все, пользователь - с чего начинать, чтобы он смог хоть как-то понять, например, книги по программированию "для начинающих".
Если по хорошему, то начинать, конечно, надо с таненбаума, ассемблера, сишечьки, SICP и прочего такого - но, само собой, за короткое время это не осилишь, да и, честно говоря, когда не видишь практического применения - оно даже с базовыми знаниями нихрена не осиливается. Разве что для сдачи экзамена, когда над душой стоит препод с дубиной.
Если по хорошему, то начинать, конечно, надо с таненбаума, ассемблера, сишечьки, SICP и прочего такого - но, само собой, за короткое время это не осилишь, да и, честно говоря, когда не видишь практического применения - оно даже с базовыми знаниями нихрена не осиливается. Разве что для сдачи экзамена, когда над душой стоит препод с дубиной.
no subject
Хотя, конечно, правильнее всего начать с вопроса "а для чего данного конкретного человека надо обучать программированию? и кто и почему решил, что его надо обучать?"
Ведь пока по условиям задачи "нет практического применения", то нет и собственно цели. А если нет цели -- к чему двигаться-то?
no subject
no subject
no subject
Но начинать с манкискриптокодинга - это убить у ученика всякое желание программировать на три поколения вперёд.
Волшебство начинается с нескольких К строк. Есть программирование и Программирование, и ученик, наверное, всё-таки стремится ко второму. В первом случае тоже могут быть интересные решения, но они, как правило плоские, и требуют больше толстого багажа, чем творчества. Второй случай описывается классическим определением программиста: "Это человек, который одновременно работает на разных уровнях абстракции". И здесь язык и методология только важные вторичные инструменты.
Мне представляется, что обучение должно начинаться с важных абстрактных понятий: структуры данных, структуры программ, сущности, объекты, функции. Парадигмы. Мультипарадигматичность:) И разбирая эти интересные вещи можно использовать тот или иной язык разной направленности, даже лучше псевдоязык для начала. А лучше и два: Си-подобный и Лисп-подобный, ну или Java и F#. В общем первый "семестр" это всё равно:)
no subject
Т.е. потрогать руками простейшее программирование.
no subject
надо же куда занесло:)
но если потрогать руками, то проще всего Excel. Писнул пару строк, заполнилась простыня. Эффект потрясающий.
меня там сбила с толку фраза "понять программирование". Без того, что я написал в предыдущем камменте "понять" никак не удастся. А так, увлечь можно кого чем. Помнится как-то в умный калькулятор вводили программу кодами и он её выполнял, восторгу не было предела.