Pull to refresh

Comments 171

Не, ну а чо — правильное дело делают. Язык васик по прежнему хорош для обучения самым азам.
Каким азам и почему? Рекурсия? Loop-ы? Чем сложно на каком-нибудь другом языке, в котором IDE генерит код и показывает с какой строчки начать писать, чтобы программка получилась?
ОК, хорошо. Я начинал учить программирование с языка С. Да, с чистого Си, без плюсов, без IDE, без генерации кода и вообще без ничего. И теперь, спустя почти пятнадцать лет, я понимаю что это было нихрена не правильное решение, и надо было идти стандартным путем — Васик — Паскаль — и только потом Си.

Васик хорош тем, что он очень слабо навязывает программисту стиль и синтаксис. Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет. Все предельно просто и позволяет гораздо легче преодолеть самый первый, самый высокий барьер — написание первой самостоятельной (i.e.: не по книжке) программы.
Вот отставьте. Вы предлагаете людям использовать этот мини-IDE и приводите как довод, то, что у вас не было в свое время такой среды? Неубедительно. Свобода от стиля, синтаксиса только губит. Я начинал с Pascal->C->C++. И если често, Pascal мне не особо помог что-то освоить. Да, он за меня решал квадратные уравнения, чтоб домашку с экрана списывать. Но для этой цели уж лучше б я на C писал. Легко != хорошо. Наверное, такой язык подойдет тем, кто программистом не хочет становится и будет просто писать скрипты, для облегчения рутинной работы. Только, сколько таких людей? Все, кто готов что-то учить для облегчения своей жизни или просто поковырять программирование используют какой-нибудь Python. Он тоже легок, актуален и хорошо задокументирован. Не знаю, может во мне играет нелюбовь к Basic, Pascal, Delphi, но все же…
Совершенно не согласен. СмолБасик позволяет с минимумом знаний создать что-то работающее и красивое. Именно это и нужно ребенку, чтобы у него возник интерес к программированию. Если его это зацепит — со временем он будет копать глубже и дальше. А идти надо от простого к сложному. Я не вижу ничего плохого в том, чтобы в начале писать программы мало понимая, что происходит на низком уровне, а уже потом копать глубже. Кто-то скажет, что учиться надо сразу правильно — сразу понимая, что лежит «на дне» — на мой взгляд это полный бред. В начале должен быть ИНТЕРЕС. Для ребенка — увидеть, что он сумел сделать что-то работающее и (для него это так) большое — самый важный первый шаг.
Мелкософту — аплодирую. :) (Я не их фанат — просто пытаюсь быть беспристрастным)
Мне одному кажется, что этот язык придумали не для обучения программированию, а для понимания природы работы вычислительных систем и программ?
А это, по большому, на самом начальном уровне суть одно и то же.
руки прочь от питона!

Вы не думаете что каждый язык хорош для решения определенного круга задач? Так, Small Basic, как уже сказали выше, хорош для обучения азам. Паскаль в своё время был очень даже хорошим языком, да и сейчас на нем пишут люди. Не так много, но пишут. Например, Hedge Wars. С\С++ любой здравомыслящий челове наврятли станет использовать для написания какой-нибудь программы, которая в 2 строчки реализуется bash скриптом или питоновским скриптом. Касательно питона — очень мощный язык. И только потому что вы его не щупали как полагается, не надо делать выводов.
Каких выводов? Таких, что для постижения азов и написания чего-нибудь быстрого и легкого он(Python) вполне подойдет?

Никто не говорил, что питон не мощный язык. Читайте внимательнее. Особенно не нападайте видя заминованный(почему?) коммент.
Только, сколько таких людей? Все, кто готов что-то учить для облегчения своей жизни или просто поковырять программирование используют какой-нибудь Python.

Вот это выглядит словно Вы питон считаете просто скриптовым языком с возможностями на уровне командной строки винды. По-крайней мере мне так это видится.

что для постижения азов и написания чего-нибудь быстрого и легкого он(Python) вполне подойдет?

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

Особенно не нападайте видя заминованный(почему?) коммент.

Я не нападаю, а просто говорю о том, что некоторые Ваши утверждения ну чуть более чем неверны и объясняю почему.
Сам начинал с QBasic, лучайно найдя его на своем компьютере и увидев в какой-то книге код на нем решил переписать его туда. В первого раза не получилось, но потом методом тыка проб и ошибок получилось запустить его. Программа была простейшая, сложение двух чисел, но в 12 лет это было для меня открытием. В комплекте шла документация на английском по всем структурам языка, даже переводил на русский со словарем и записывал в отдельную тетрадку, т.к. спросить было некого, а об существовании интернета даже не подозревал (1999 год где-то). Когда программки стали увеличиваться и их стало тяжело читать, понял что нужно форматировать код. Дальше узнал о модулях, пошло разбиение на отдельные части, и так далее. И все это в одной наипростейшей IDE. Далее увидел VBA -> VB6 (диск был раздобыл в питере в переходе, проездом там был). Далее было знакомство с PHP, С/С++, Ruby и пошло поехало. Но основной интерес и навык был заложен тем самым QBasic, переродившийся ныне в SmallBasic.
Если там еще и можно что-то графическое сделать, то вобще круто. Для ребенка сделать что-то, которое будет бегать по формачке, отскакивать от краев будет на порядок интересней, чем идеально оформленный код на C/C++, который даст ощущение того, что он может сделать САМ, а там уже потянется к книгам/интернету, когда возможности среды иссякнут.
В 12 лет первая программа? Мне вас жаль… Я в 12 уже в олимпиаде по программированию занимал призовые места.
Ван Гог начал писать код картины за десять лет до смерти.
Не у всех, родившихся до 90-х была возможность попасть за компьютер :)
А Галуа в вашем возрасте уже 10 лет как помер.
а я наоборот сидел зачем-то на алгоритмических языках, когда можно было что-то дельное изучать.
И эта халатность:

>> Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет.

приводит к тому что каждый форматирует как хочешь, а потом в этом «индуском» коде ни чего не разберешь.

Обучать нужно сразу правильно и стиль оформления должен быть единым, а не «как хочешь».

Я бейсики начал изучать еще со спектрума и там было их куча, даже «Лазер бейсик» :) И бейсик на 386 компе тоже изучал
мое мнение это все зря потраченное время, это же касается и паскаля. В Паскале мне не нравилось что нельзя рисовать, а тупо алгоритм делать. Должен сказать что детям не интересно делать алгоритмы им хочет рисовать :)

Я бы обучение программированию начинал на Java, т.к. там хорошая структура и нет сложной работы с памятью, в тоже время это все похоже на С++.
Дальнейший переход очень легкий на РНР или С++, собственно почти все 1:1, только новые заморочки добавляются
UFO landed and left these words here
У нас в вузе нынче первокурсникам-математикам С# как первый язык читают, причем читают на удивление толково. Тем, кто о программировании услышал только в вузе, дается очень сложно. Им-бы с блок-схем начать, а не с ООП.
В паскале можно рисовать!!!
Мы на первом курсе рисовали графики :) И даже какой-то танк…
Рисовали, факт ;) и неплохо, попрошу заметить, рисовали!
Я вообще игры писал на паскале. В начале текстовые, потом граические. В старших классах.
Рисовать можно и в QBasic'е. Моя первая запомнившаяся программа: человечек бегущий по горе. Код был переписан с Basic'а для компьютера Yamaha на QBasic. Отладка длилась три дня, так как я тогда еще не знал даже, что такое синусоида, которую нужно было нарисовать, которая являлась горой :) Потом человечек почему-то бежал немного выше, потом шлейф от него тянулся… Ностальгия :)
И вот именно эта программа и породила интерес к программированию, который в последующем перерос во все остальные интересы, связанные со сферой ИТ.
Да бросьте, на спектруме как раз бейсик — один из самых крутых бейсиков. Одно «автодополнение» в 1982г. чего стоит =)
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
Хм, о каком форматировании может идти речь в 5-7 классе? Почему большинство из комментирующих приравнивают это на себя? Или вы забыли сколько даже в вузе было ребят, которые не могли написать программу просто потому, что не понимали как составить алгоритм, как заставить компьютер его выполнять.
Целевая аудитория этого — не профессиональные программисты, а просто дети, которым в простой форме дается возможность изучить, что такое циклы, ветвления, методы, переменные. И изучить в дружественной манере без вырвиглазного синтаксиса. Я в школе учил паскаль и до сих благодарен, что это был именно он, а не С++, хотя синтаксис паскаля уже и не помню и вспоминать не хочу.
UFO landed and left these words here
Нет, форматирование — это просто аккуратное представление кода. Сродни разборчивому почерку. И если маленькие заметки для себя можно писать коряво, то сочинение или важную бумагу лучше писать аккуратно. Так и в плане обучения программированию — сначала дети пишут программы абы как, а аккуратное форматирование вырабатывается уже само по себе дальше, если человек не забросил занятие.
UFO landed and left these words here
UFO landed and left these words here
Это уже скорее к разбиванию программы на методы, чем к форматированию. Форматирование же мало относится к логическому разбиению программы. Впрочем особо углубляться в аналогии не стоит, они, как известно, всегда неполные.
Это вы зря, когдя я после Питона решил таки выучить Си, для мня наачался ад, с синтаксисом и точками с запятыми.


Умея программировать, выучить новый императивный язык несложно. Сложно сделать первый шаг, и вот здесь точки с запятыми только мешают.

С другой стороны питон, с аго обязательным форматированием дисциплинировал меня в отношении форматирования и комментирования кода.


В таком возрасте ребенок (т.к. это еще ребенок!) просто может не понять, почему какие-то глупые отступы могут иметь значение. Он может это зазубрить, но не понять — а это гораздо хуже
UFO landed and left these words here
Ну в каком-то смысле да ;)
Common Lisp — есть вообще ВСЁ + синтаксис проще некуда. А Python+C можно уже сейчас.
О божы, еще один. Ну а вот теперь объясните на пальцах, в чем преимущество того, что функция — это first-class object, и почему это хорошо. Так, чтобы тринадцатилетний пацан, который не знает что такое функция, это понял, и так, чтобы ему стало интересно. Слушаю вас внимательно, и даже где-то перенимаю опыт.
И зачем именно это объяснять в самом начале пути? Такие вещи объясняют позже, а начинают с выражений, присвоений и т.п.
Не надо проецировать на меня свои домыслы, пожалуйста.
Вот именно. Поэтому ничего лучше старого доброго

Dim a = 1

придумать для самого начала пути просто нельзя. Я не пишу на Лиспе, но могу читать (ну ОК, пишу на уровне достаточном чтобы хачить свой ~/.emacs но это конечно не то).
(defvar a 1)
Сильно сложнее, да?
Не сильно. Но сложнее. «a = 1» несет некую семантическую нагрузку ввиду знака равенства, который к этому моменту школьник уже знает.
В Small Basic этот т.н. знак «равенства» несёт совсем другую смысловую нагрузку.
Согласен, я помню взрыв мозга у одноклассников на строчке «а = а + 1», как раз из-за того, что смысл у знака равенства другой.

Народ не мог понять, как какое-то число может равняться самому себе+1.
UFO landed and left these words here
Вообще, сдаётся мне, ваше представление о Lisp'ах весьма шаблонно: ФП, скобочки. Я прав?
Не вижу ничего плохого в ФП, так как очень активно его использую в других языках. Иногда это вообще единственный выход.
Вы снова ответили не на тот вопрос, который я задавал, а на свои домыслы. Я не говорил, что ФП — плохо, а поинтересовался в своей правоте относительно ваших представлений о Lisp. Дальнейшую дискуссию с вами считаю бесполезной и бессмысленной.
Я вам ответил в параллельном треде.
Тринадцатилетний пацан изучает СЛАУ и преобразования (растяжение, сжатие, ...) функций, но не знает, что это такое?
Видел я людей, которые после Васика начинают изучать С, кругом лезут всякие goto, про while никогда не слышали и т.д., часто такой ужас получается, хоть стой, хоть падай.

Да и всегда думал, что язык программирования надо учить по книгам, а не в среде разработки со скудной документацией.

Сам изучал с Васика и понял, что мозг он не в ту сторону у меня выравнял, потом дело пошло на Pascal, потом на z-80 asm, а потом только на С/С++. Asm приучил меня к порядку, C/C++ научил меня правильной работе с ресурсами. И я считаю, лучше сразу взять к примеру книжку Страуструпа и сесть за С/С++. А не тратить время на изучение одного языка, потом форматированию мозга и изучению другого.
Уважаемый, вы сами-то хоть понимаете какой бред несете? Страуструпа в 12-13 лет?! Вам самому не смешно?
Нет, не понимаю и не смешно. Хотя если основываться на том, как к примеру нас в школе учили информатике и как сейчас. Когда поменялась учительница, до этого учила преподовательница физики, поменяли на выпускницу по профилю информатики и класс знал больше её, было довольно смешно. Кто захочет, тот выучит.
А мне смешно. Я готов посмотреть, как вы объясните своей тринадцатилетней сестре концепцию поток ввода-вывода, и почему std::cout << «Hello world!» << std::endl; нагляднее чем TextWindow.WriteLine(«Hello world!»)
Я не знаю как сестра, а у нас парень работает, который в 13 лет её читал, с ним ничего не случилось, программирует на ура сейчас. Я всегда считал, что сложность обучения обусловлена только одним фактором — желанием.

Уж не считаете ли вы, что в 18+ лет к примеру мозг человека лучше обучается, да, к этим годам он накопит больше опыта, но вот чем меньше годиков, тем лучше обучается и 12-13 лет вполне подходящий возраст.

Да, в данной книге очень много всего, но и изложено все довольно просто. Я в эти года читал книги и в более сложном изложении и уже изучал теорию программирования, а не только конкретный язык программирования, у меня просто было желание.
Экий вы умный, да и парень тот тоже не промах! Вы молодцы, и гении и вообще суперзвезды. А нам, простым смертным, надо б что попроще, чтоб разобраться сперва, стало быть. А вот уж если разберемся, то там и по Страуструпу пойдем, и глядишь, может и догоним гениев-то наших.
Ну что же, пожелаю вам удачи на пару с вашим сарказмом.
Спасибо вам, добрый человек! Мы уж постараемся (с моим-то сарказмом!), авось и выбьемся в люди как-нибудь с Божьим поможением!
UFO landed and left these words here
12-13, может, и подходящий возраст. Но наверняка у этого парня была до Страуструпа хоть какая-то подготовка?.. Я не представляю, как можно научить программировать по «Языку программирования C++». Эта книга не для начинающих предназначена. Ладно еще «Программирование. Принципы и практика использования C++» того же Бьярне.
А Small Basic предназначен, скорее, для тех, кто помладше, когда важно прежде всего заинтересовать ребенка.
> Сам изучал с Васика и понял, что мозг он не в ту сторону у меня выравнял

Так это проблема мозга, а не бейсика. Ваш комментарий целиком завязан на установке «мне изучение бейсика пошло во вред, значит это зло». Ваш опыт — всего лишь ваш опыт, это не значит что все будут себя чувствовать также. Вообще, ни одна технология не может навредить обучаемому, если обучаемый желает учиться постоянно. Тот кто не хочет учиться — сидит всю жизнь на бейсике, а потом, начинает жаловаться, мол вот он мне всю карьеру испортил, ах если бы я начал с Си, все было бы иначе. Да не было бы. Никто насильно не заставляет юзать бейсик, чувствуете что не ваше или уже выросли из его рамок, переходите на следующий уровень. Мы все разные и в обучении тоже. Лично я считаю Бейсик и Паскаль — идеальными языками. А конкретно Small Basic — сделан просто великолепно. Я бы очень хотел чтобы у меня был именно он, а не QBasic без документации (да еще в пору когда не было инета и книжки были редкостью по IT)
Блин, опечатался, учился по GWBasic (тот что без среды вообще, только с подсказками F-клавиш в нижней строке) вот это был ад, QBasic по удобству почти TPascal 7.0
Императивный стиль он навязывает ещё как.
По поводу того, хорошо ли «отступы делай как хочешь» и «типов нет» — это ещё можно поспорить.
Императивный стиль — да. Но чтобы навязывать функциональный стиль, обучаемый должен понимать что такое функция, что такое аргументы функции, не говоря уже про концепции более высокого порядка. Это подразумевает знание математики, а именно этого в таком возрасте и нет.

Для меня, например, было адом понять что такое «функция» и что означает что функция «возвращает» значение, и нафига нужны функции которые возвращают «пустое» значение — это взрывало мой тринадцатилетний моск.
Для меня, например, было адом понять что такое «функция» и что означает что функция «возвращает» значение, и нафига нужны функции которые возвращают «пустое» значение — это взрывало мой тринадцатилетний моск.

Вот именно, императивное понятие «функция» взрывает мозг.
А по алгебре в 13 лет вполне себе проходят преобразования математических функций. Т.е. понятие о функциях в ФП у них уже есть.
Сама среда разработки красивая. Игрался с ней с удовольствием. Но с другой стороны не уверен, что данный подход верен. Может детям лучше сразу осваивать, например, C#, Java и т.д.
Сначала бы блок-схемы алгоритмов порисовать, а потом уже можно любой высокоуровневый язык осваивать.
А то часто просто сперва не понимают какой алгоритм, например, у вычисления корней квадратного уравнения, а уже пытаются его закодить на паскале или C#.
Язык сам по себе является неплохим инструментом наглядного моделирования.
IMHO, детей надо учить не какому-то конкретному языку программирования.
у детей надо развивать «алгоритмический» образ мышления и умение «обёртывать» эти алгоритмы во что-то уже осязаемое. поэтому простой язык программирования подходит для этого больше всего.
а всякие языки более высогого уровня они, при желании, выучат позже. главное — научиться «правильно» мыслить.
Ничего не лучше. Во-первых чем больше языков выучишь, тем проще выучить новый (это верно и для естественных языков), во-вторых по кой фиг маленьким детям копаться в диких наворотах настроек реальных IDE если им надо просто научиться алгоритмически мыслить.
Угу. И преподавателям преподать java и c# ))) (на должном уровне)
Смотря с какого возраста начинать. Думаю, среднему пятикласснику не будут особо интересны Java или C#, все-таки нет такой яркой и простой среды разработки, пособий, языки слишком обширны и сложны, поскольку предназначены для реальной разработки. Их будет не просто этим заинтересовать. При этом, перейти со SmallBasic на C# будет уже гораздо проще. Ну а для более старших школьников C# или Java вполне подойдут. У Майкрософт вон есть книга «C# для школьников», которую можно свободно скачать с MSDN.
UFO landed and left these words here
В Basic, насколько я понимаю, динамическая типизация. Там есть библиотеки для черепашьей графики и всяких других подобных вещей. Для начинающих это правильно. IMO, маленького ребенка не нужно учить всяким типам данных, алгоритмам. Его важно завлечь, а затем уже, после того, как ему это понравится, продолжать обучение на более серьезном уровне. И понятная среда разработки, всячески помогающая программировать, очень важна.
А затем, когда ребенок поймет, что ему это нравится, уже стоит начинать рассказывать про серьезные вещи.
UFO landed and left these words here
Эхх… А я как раз классе в 8м писал на ассемблере под Z-80. Славные были времена…
Ассемблер Z-80 на порядок легче обычного ассемблера, мне он тоже нравился в свое время.

Но при всей легкости это 100% не язык для детей
Не бывает «обычного» ассемблера. Просто архитектура x86 состоит (приблизительно поровну) из костылей и извращений.
не все такие… как вы. таких единицы
UFO landed and left these words here
Вот я бы от такой штуки в Microsoft Office вместо стандартного VisualBasic не отказался… Так, чтобы просто и с подсказками.
VisualBasic не плох для автоматизации офиса, редактор бы ему подкрутили малясь. А то всегда норовит по одной строке интерпретировать.
Лучше бы вместо VB туда C# вкорячили…

я каждый раз заново начинаю VB учить, когда приходится что-то для office «подписать/подпилить». Каждый раз одно и тоже: Как там переменная то делается? Как там цикл for организовать? Чё; нету чтоли? А как же закрыть этот цикл } не катит…

Просто на всём спотыкаюсь.
Ну если раз в 2 месяца приходится что-то сделать, можно быстро восстановить знания.
Дак с 2007-го вроде как можно на C# писать под офис. Во всяком случае раздел MSDN на эту тему я видел.
Модули писать можно. А чтобы скрипты — нет
Попробуйте вот так:
hello:
i = i + 10
GraphicsWindow.DrawText(100, i, "HELLO WORLD")
Goto hello
UFO landed and left these words here
там метки в стиле ассемблера, смотри справа пример на твоем скриншоте.
Странно что так сделали, стандартный бейсик имел метки как у тебя.
Все правильно сделали, числовые метки зло, пусть начинающие если уж и используют GOTO, то дают осмысленные названия меток
вы б хоть тег «ирония» проставили, а то же не поймут :)
Хорошая тема для обсуждения, кстати.
Я в своё время начинал учиться на различных бейсиках советских компьютеров типа БК/ДВК/АГАТ, и затем на ZX Spectrum. На PC перешёл на паскаль, затем долго сидел под MS Visual Basic.

Сейчас моему сыну 8 лет, и я думаю, что уже самое время начать учиться программировать. Признаюсь, думал начать с питона, как с самого простого сегодня языка. У кого-то есть похожий опыт с детьми?
детям главное хорошо составленная программа обучения ;)
что бы было интересно и понятно
Я работал год преподавателем программирования. Насчет Питона ничего не могу сказать, но вот Си очень тяжело идет. Причем ученики у меня были в основном 9-10 класс. Мне кажется, что и Питон не стоит.
Pascal идет лучше всего. Пока не было другого языка, столь популярного у школьников. Но из си-программистов выходят неплохие олимпиадники, не особо понимаю с чем это связано, может из-за сложности обучения и кучи томов документации и развиваются определенные навыки, которые полезны для спортивного программирования
Ну я и с Паскалем учавствовал в олимпиадах. Правда потом его запретили на олимпиадах всероссийского уровня.

Дело в том, что в спортивном программировании язык — всего лишь инструмент. В олимпиадах — главное алгоритмы и умение нестандартно решать стандартные ситуации.
я тоже с паскалем участвовал, но его позже запретили, чем я начал участвовать на си

чорт, кто-то мне хорошо в карму насрал, теперь комментировать могу раз в 5 минут
не мучайте ребенка, в 8 лет пусть гуляет с друзьями и катается на велосипеде. я бы ненавидел программирование, если бы меня в 8 лет питону обучали. может уж с C + WinApi начать, чтобы настоящий программист вырос?
C++ и ring0, в 10 лет будет папе драйвера помогать писать
Плюсы в нулевом кольце? Ну-ну…
Ладно-ладно, я больше не буду ;)
Для ребенка в 8 лет и UMDF пойдет.
Это была шутка. Как всегда сам виноват…
Я не собираюсь ему WinAPI преподавать.
Я другое хочу — чтобы у человека способ мышления постепенно нужный выстраивался, поэтому и ищу какой-нибудь простой язык. Не знаю, может с программируемой черепашки начать? :)))
Неплохая идея, а вообще, нужно научить ребенка в какой-нибудь игровой форме составлять простые алгоритмы. Думаю есть какая-нибудь игра, где, например надо drag-n-drop коммандами робота программировать
Вот есть замечательная вещь для детей от того же майкрософта. Как раз таки драг-н-дропом создавать игры, и ветвления там есть и циклы! Посмотрите, замечательная вещь: http://fuse.microsoft.com/page/kodu.aspx
сори за повтор, забыл комменты обновить.
UFO landed and left these words here
Черепашка эволюционировала в котика. Детей, видимо, правильно учить Scratch (вроде, в Стэнфорде вводный курс по CS начинается тоже с него).

Знаю людей, коорые преподают у нас в России это в школах.

Mcrosoft с его Small Basic'ом тоже можно понять. Ему не нужны программирующие дети, ему нужны дети, программирующие на .Net.

Я начинал программировать в 6 лет как раз на Васике. Ну купили мне родители игрушку, Вектор-06Ц (типа спектрума), там еще игры с кассет. Ну и Бэйсик конечно, где еще метки цифрами и программу построчно вводить надо было, ибо IDE не было, а сразу консоль интерпретатора. Помню там был курс красочных уроков языку и основам ПК — программок на нем же. После их просмотра как раз и захотелось освоить.

Вот было интересно, сочинял простенькие программки, рисовал. По мере роста математического аппарата уже вещи поинтереснее делал. Паскаль впервые увидел уже в старших классах школы и он мне не понравился…

Ну а потом был x86 ассемблер, скриптовые языки, sql и прочее. Честно говоря C++ до сих пор не владею, только C :). Надо будет книжку почитать :)
это вы говорите с точки зрения программиста. вам это интересно было, вы этим занимались. поставьте себя на место любого нормального :) человека.
> Ну а потом был x86 ассемблер, скриптовые языки, sql
да никто даже из взрослых не знает что это такое! и ребенок 8 летний не знает. и отнимать у него детство, изучая с ним питон мне кажется неправильным. имею в виду, что своих детей точно обучать специально не буду, вот если подойдет и спросит «а что это папа делает», тогда другой разговор. значит, ему это тоже интересно и можно с ним позаниматься.
Ну я ж говорю, начинал в 6 лет :). Просто мне электроника с раннего детства нравилась, с тех пор как в детском саду впервые нам показали компьютер. Конечно в итоге эту специализацию и выбрал.
Кстати, никто из взрослых со мной тогда не занимался, в семье у меня никого имеющего отношения к ИТ нет.
Тоже почему-то кажется, что есть смысл ребенка начинать учить с питона…
С первого взгляда синтаксис не сложнее чем у Small Basic, функциональный и объектный паттерны, вроде как используется при программировании Lego Mindstorms. И самое главное — сразу у малыша в руках оказывается вся прикладная мощь языка с блэкджеком и шлюхами ;-)
>вроде как используется при программировании Lego Mindstorms

Это вряд ли. Но купить ребенку Lego Mindstorms — это лучший способ в раннем возрасте привить ребенку интерес к программированию
Мне кажется, что лучше начинать изучать программирование все таки с Паскаля. Там и компилятор хороший — на все ошибки укажет, да и язык более менее серьезный, даже указатели есть. По-моему Бейсик только развращает.
UFO landed and left these words here
в школе, где я учился до сих пор используется borland delphi и ms vb, ведь платят же
UFO landed and left these words here
ну если приходится платить за ОС, пакет безопасности(или как там у них это называется), офисный пакет, думаю и за IDE-шки платят. У них там это проверяется
Почему-то сразу же вспоминается одна всем известная компания фаст-фуда, которая «подсаживает» своих клиентов на свои продукты с раннего возраста.
P.S. Хотя, конечно же, Microsoft в отличии от той компании, занимается полезным делом! Молодцы! Я бы обязательно показал эту вещь своему ребенку.
«It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.»
Edsger Dijkstra
Когда Дейкстра это писал, в Бейсике во всю использовались всякие GOTO. Сейчас это не одобряется. Современный Бейсик по сути не отличается от того же Паскаля, ну только динамической типизацией.
Начинать нужно с черепашки LOGO.
Пока ничего более привлекательного для детей не придумали.

Именно в такой последовательно
LOGO. Учит разбивать задачу на подзадачи т.е. в виде последовательностей команд.
BASIC. Учит логическим ветвлениям потока управления. Обычно учат блок схемы параллельно.
PASCAL. Учит строгой типизации, работе с памятью, и служит базой для обучению алгоритмам.

Дальше можно идти от задачи
С++ чтобы учить ООП.
LISP функциональному программированию
Perl скриптингу
GPSS моделированию СММ
итд.
UFO landed and left these words here
будет, наверное, сложновато подсадить на такую игру ребенка, но есть игра в которой нужно писать поведение танка на java и потом сражаться с помощью своего программируемого танка с танками, написанными другими программистами. Самая соль этой игры, что можно посоревноваться на одном поле с другом просто попросив файл с байт-кодом его танка
UFO landed and left these words here
UFO landed and left these words here
в описании сказано, что и для обучения эта игра подходит, вот только детей ли…
все же задумка неплохая, если, например, разработать такую-же игру, но, чтобы программировать роботов можно было на ЯП попроще: кумире или том же ваиске
UFO landed and left these words here
То о чем писал я — это обучить навыкам програмирования,
приблизительно в той же манере, что, например, математике.
Это педагогический подход, в основном за счет упражнений
(задач и так далее), где смысл в том чтобы заинтересовать ребенка
конкретной задачей.

Вы же пытаетесь навязать ребенку интерес к программированию, и это
немного другое. И с моей точки зрения с вашей стороны было ошибкой
связать игры и программирование, тем более если он видел современные игры.
Задача должна быть достижимой. Более того, чем младше ребенок, и
тем меньше у него время концентрации и разочарование наступает очень быстро.
UFO landed and left these words here
Смысл начального обучения в том чтобы у ребенка был бы базовый инструмент,
то есть базовые знания.
Вот если бы у вашего обучаемого уже были начальное понимание системного подхода, контекста исполнения и понимание ветвления потока управления я бы не волновался.
Именно в том что вы взяли язык высокого уровня абстракции, мне кажется ваша ошибка и заключается. Посмотрим что получится.
Чем меньше ребенок, понимает тем больше для него это выглядит магией, чем больший процент магии тем меньше шансов на успех.

UFO landed and left these words here
дальше нужно идти не от задачи, а от предпочтений ребенка(хотя, если он хорошо освоил паскаль, он уже не совсем ребенок)
В smallbasic есть черепашка
Блин, а в D, Common Lisp, Python и ассемблерах черепашки нет ):
я неправильно изучал программирование %)
вначале Logo, а затем сразу C++
На смену лого уже давно пришел Scratch.
(сам был в шоке, когда узнал в 2008 году).
а про colobot почему никто не вспомнил? игра и программирование в одном флаконе
под colobot нужна база.
на определенном этапе она конечно будет очень интересна.
выше там уже писали про неудачу.
Интересно для второклассника подойдет? Немогу ничем заинтересовать… только игры :)
Можно в сторону Kodu посмотреть. Можно создавать и потом играть в игры.
Во втором классе я сам изучал бейсик и писал игрушки, было очень любопытно.
Современным детям повезло больше, у них есть Lego MindStorms, программируемые роботы.
Первая ссылка ведёт на английскую версию 0.95. Надо бы поправить…
Или App Inventor for Android. Тоже вспомнилось.
Кажется, SmallBasic может тоже генерировать silverlight. Или ошибаюсь?
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации (по этому вопросу см. статью про оператор GOTO)»

Edsger Wybe Dijkstra
Упс… Проглядел, зато русский вариант будет :)
Класс, сначала WebMatrix, теперь Small Basic. Первый нашел отличное применение и во взрослых проектах. Интересно, найдет ли второй :)
Весьма вероятно. Смотрим любой пример программы на SB, например, этот и замечаем, что она работает в браузере в среде silverlight.

тут и до взрослых проектов становится недалеко :)
удиваляют те, кто считают, что обучение нужно начинать с джавы, си шарпа или даже си.
поясню на примере:

#include <stdio.h> — тут говорим «ну просто ТАК НАДО»
int main() { — тут ок, «это наша программа»
char str[50]; — тут мы говорим «это будет строка, из 50 символов»
int num; — это число, тоже понятно
scanf("%s",str); — тут мы пытаемся объяснить, что это значит. допустим, объяснили
scanf("%d",&num); — а теперь попытайтесь объяснить этот амперсанд
return 0;
}
чтобы объяснить &num, нужна концепция «взятие адреса». нужно будет рассказать отличие значения и адреса. и почему в str это работает. и как выделяется память. и про нулевые указатели. потом встретится segmentation fault. нужно будет рассказать, почему программа «просто не выведет мне ошибку»
Ява ещё хуже. одна магия:

import java.io.BufferedReader; — сложно объяснить, что значат эти строки, если этот язык программирования первый
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.ParseException;

public class InputHandler{ — что такое класс?
public static void main(String[] args) { — а теперь попробуйте объяснить, что значит static
System.out.println(«Reading from console.»);
double numberFromConsole; — отличие «строки» и «числа» довольно понятное. чем числа отличаются между собой, объяснить сложнее.
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
DecimalFormat df = new DecimalFormat();
Number n = df.parse(s);
numberFromConsole = n.doubleValue(); — тут нужно будет рассказывать про типы данных. долго и обстоятельно
} catch (IOException e) { — тут будет опять рассказ про классы и новый рассказ про исключения
numberFromConsole = 0;
} catch (ParseException e) {
numberFromConsole = 0;
}
System.out.println(numberFromConsole );
}
}

из всего этого человек поймёт в лучшем случае строчку с println. потому что это не язык, с которого нужно начинать обучение.
Согласен с Вами. Несколько раз пытался объснить своим ученикам, что такое &num. Так и не поняли. Писали почти все вот так: scanf("%d", num). А потом вопрос: «А почему с клавиатуры не вводится???». Некоторые писали правильно, но все равно не понимали зачем это нужно. Поэтому Бейсик или Паскаль идеальный вариант. ReadLn() и WriteLn() — и никаких проблем.
Один мой коллега любил говорить, что пока не превзойдешь косвенную адресацию, программистом считаться не можешь.

Он прав.
Мда, сыровато пока что.
Например, набираю TextWindow.WriteLine(«Hello, World!»), запускаю — работает. Перехожу на следующую строчку, жму Alt+Space — вылет. (Win7ПрофSP1)
У меня вообще после установки вылетает и предлагает дебаггер (на рабочей ХР).
Only those users with full accounts are able to leave comments. Log in, please.