Чему учить после Scratch?

Мой сын с энтузиазмом программирует простые игры на Scratch. Однако Scratch — очень простая среда программирования (даже без подпрограмм), и я вижу, что вскоре ему нужно будет перейти на что-то другое.

Кто-нибудь знает хороший язык обучения, который упрощает работу с графикой, но предоставляет «настоящие» функции программирования, такие как структуры данных, функции, массивы и списки?

Бонусные баллы, если он работает под Linux (Ubuntu). Ответ вида "язык Foo с библиотекой Bar" тоже вариант.


person Paul Johnson    schedule 18.07.2009    source источник
comment
Ему 8 лет, но, похоже, он унаследовал от меня немного программиста.   -  person Paul Johnson    schedule 19.07.2009
comment
Жаль слышать это, но все еще есть хороший шанс, что он сможет продолжать вести продуктивную жизнь, не зацикливаясь на звездном пути.   -  person JohnFx    schedule 20.07.2009


Ответы (10)


Как насчет луа?

Есть хороший графический "движок" под названием LOVE, который полностью программируется на lua. У него хорошая документация, и это не очень сложно.

Есть также несколько других подобных движков, использующих lua:

Был еще один 2d движок, но я его сейчас не могу найти, он был похож на LOVE, но с немного другим подходом к вещам.

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

Также lua обычно используется в качестве языка сценариев игр. Например, все аддоны для World of Warcraft написаны на lua, фактически весь интерфейс написан на lua. Это означает, что на lua очень легко найти ответы на вопросы, связанные с играми. Кроме того, если у вас есть игра, использующая lua в качестве языка сценариев, вы можете легко добавить в нее свои собственные элементы.

Я написал это с точки зрения игры, но есть довольно много проектов, использующих lua в качестве языка сценариев.

Вы также можете попробовать python, но у него нет таких хороших готовых к использованию и простых в освоении/понимании инструментов.


Также здесь есть ссылка на руководство по lua.

person Maiku Mori    schedule 18.07.2009
comment
lua + LOVE выглядит вполне вероятно. Единый подход к структурам данных упрощает объяснение, а управляющие структуры (кроме функций) аналогичны Scratch. Определенно возможно. - person Paul Johnson; 20.07.2009
comment
Обновил список. Вы также можете / должны предоставить ему простой шаблон и, возможно, некоторые вспомогательные функции, потому что некоторые вещи в базовом программировании игр не так уж просты, например состояния игры (вступление, игра, окончание игры и т. д.) и анимация. Lua довольно динамичен, поэтому вы можете настроить его так, чтобы он был проще, и вы можете предоставить функции, упрощающие вещи, которые ему трудно понять. Я сам начал программировать примерно в его возрасте с Zbasic, а затем с Qbasic. - person Maiku Mori; 20.07.2009
comment
Так что lua+LOVE получает работу. lua выглядит легче для изучения, чем Ruby, и вы можете взять первую демо-программу и использовать ее в качестве основы для чего-то более сложного (это то, что у нас есть на сегодняшний день). Просматривая документы, я вижу, что у него также есть простой физический движок для обнаружения столкновений и связанных с ним вещей, что тоже круто. - person Paul Johnson; 24.07.2009

Если Scratch начинает немного ограничивать, но они не готовы к трудностям кодирования в текстовом редакторе, взгляните на Scratch-derivative "BYOB" (Создайте свои собственные блоки). Серьезно, это превращает Scratch в взрослую среду программирования с функциями (и, следовательно, рекурсией), данными -структуры, многопоточность и все такое!

Существует также Panther, но он меня меньше впечатлил (создание новых блоков в Panther, похоже, требует непосредственного кодирования их функций). в Squeak, а в BYOB их можно просто построить в обычном стиле Drag-n-Drop Scratch).

person timday    schedule 23.10.2010
comment
Он мало чем отличается от Sratch и тоже является бета-версией. Не лучшая идея, чтобы ребенок изучал нестабильный инструмент. Энтузиазм можно исчерпать очень быстро. - person Valentin Heinitz; 06.08.2014
comment
BYOB был переименован в Snap, он все еще находится в стадии бета-тестирования, пользовательский интерфейс немного отшлифован, но в остальном он действительно похож на Scratch++. Я бы присмотрел эту игрушку для своих детей (и для себя тоже ;) - person Guillaume; 27.09.2014

Взгляните на Обработка.

Это проявление силы — графика, анимация и визуальные манипуляции. Под линуксом тоже работает.

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

person alanlcode    schedule 18.07.2009

Хороший обзор здесь предлагает Алису и обувь после Scratch — у меня нет личного опыта в этом вопросе, но судя по обзору их стоит проверить.

person Alex Martelli    schedule 18.07.2009
comment
У Алисы есть только версии для Windows и Apple, и она не будет работать под Wine (хотя теоретически это Java, так что она должна работать). Обувь вполне возможна. - person Paul Johnson; 20.07.2009

Это может быть немного большим скачком, но Python с PyGame позволит вашему ученику создавать много программ того же типа, к которым он или она уже привык в Scratch, но с очень жестким контролем над тем, как все это работает.

  • Плюсы: Это Python, очень простой для чтения и написания язык, который предоставляет очень богатую среду программирования без каких-либо шаблонов.
  • Минусы: его SDL, в котором используется цикл обработки событий, который вы можете написать самостоятельно. Это может быть довольно большим препятствием для молодого программиста.
person SingleNegationElimination    schedule 20.07.2009
comment
Да, я думаю, что переход на Python после детского языка, такого как Scratch, — это лучшая идея и вложение времени. Это мой опыт обучения программированию моего племянника. - person Valentin Heinitz; 06.08.2014

Scratch написан на Squeak (который работает на Linux, Windows и Mac), поэтому я скажу: Болтовня! Единственная проблема заключается в отсутствии очень хорошей книги для начинающих по этому языку, что странно, если учесть его происхождение. Тем не менее, базовые концепции просты в изучении (почти без синтаксиса), а среда поощряет эксперименты.

person Community    schedule 18.07.2009
comment
Я пытался поиграть со Squeak, но не увидел очевидной отправной точки для того, чтобы что-то сделать. Учебник тратит много времени на экскурсию по окружающей среде, которая, без сомнения, необходима, чтобы что-то сделать, но очень крутая кривая обучения для ребенка. - person Paul Johnson; 20.07.2009
comment
Боюсь, виноват туториал. Но на самом деле любой полноценный язык программирования с умеренно сложной IDE требует обучения. Прыжок из такой среды, как Scratch, очень важен. - person ; 20.07.2009

Вот интересный проект Microsoft под названием Small Basic, который является хорошим, простая, бесплатная среда программирования для обучения, основанная на BASIC.

Никаких бонусных баллов из-за отсутствия убунты, но классный инструмент для обучения.

person jasonmw    schedule 18.07.2009
comment
+1: Интересно! Инсталлятор всего 5 Мб. - person Valentin Heinitz; 06.08.2014

QuickBasic все еще существует? Это то, с чего я начал, когда мне было 7-8 лет, и я мог делать полноценные игры и т. д. без каких-либо внешних библиотек.

РЕДАКТИРОВАТЬ: проверьте эту ссылку о FreeBasic:

http://linux.about.com/b/2006/11/10/freebasic-open-source-alternative-to-quickbasic.htm

person Donnie DeBoer    schedule 18.07.2009

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

person JustJeff    schedule 18.07.2009
comment
Любые реализации Linux с открытым исходным кодом? В прошлый раз, когда я смотрел, это были все коммерческие вещи. Также обычная графика черепахи больше не подойдет; ему нужны спрайты и прочее. Мне нравится идея ввести FP на ранней стадии, но я знаю, что отсутствие легкой графики, похожей на дух, убьет ее для моего сына. - person Paul Johnson; 20.07.2009

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

Ссылка: http://codingbat.com/

person David Nie    schedule 27.03.2013