=! «Школа юного Лиспера»

Статус: Росток ☘️ | Посажено: Июль 29, 2023 – Обновлено: Янв 16, 2024

23 07 29 lisper school

В будущем текст заметки будет расширяться. На скриншоте зафиксировал изначальный вариант.

Зафиксирую для себя и для истории момент формализации мысли (29.07.2023).

В качестве стёбы

  • над современной системой доп. образования (учим всех python!) и
  • над хайпом «personal productivity» приложений (строим замки из песка в Notion и Obsidian),

зреет идея запустить «Школу юного Лиспера».

Название условное, но суть отражает. Будут в этой школе принципиально учить только работе с Emacs, Clojure, особенно в связке с Babashka, Datalog и смежным вещам. И основам, в виде «SICP» ➜ Scheme, место найдётся (для тех, кто постарше).

Судя по поиску в интернете, детям подобные вещи комплексно нигде не преподают. Впрочем, взрослым тоже, сам с этим столкнулся.

На python и всякие приложения-костыли в первые 1-2 года обучения будет жёсткое табу. Потом уже можно будет подумать над вариантами, для расширения кругозора учащихся :0)

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

В проработке:

  • Формализовать предпосылки (название Datasay, кстати, тоже отчасти общие корни с этой идеей имеет).
  • Как в эту идею вписываются приложения-аутлайнеры (на них отчасти завязаны сроки имплементации).
  • Аргументировать плюсы (минусы текущей ситуации).
  • Думаем над логикой программы (например, что имеет смысл изучение HtDP вынести на первые места).

добавка от 16.01.2024. Новая заметка по данной тематике, которая немного корректирует идею [[=! Школа юного Лиспера]]. Надо будет вдумчиво выбирать язык первого уровня. И подумать, что эффективнее будет на 2-м уровне (но скорее Java).

=! Рекомендуемый порядок изучения языков программирования

Виталий Брагилевский (JetBrains) рассказал про оптимальный выбор первого языка программирования (у автора большой опыт преподавания в университете). Выступление за 2019 год, но информация точно не устарела.

  • Люди, которые, на мой взгляд, отличные инженеры-разработчики, согласны со схемой, размещенной ниже.
  • Если предметно искать, то можно найти сотни научных публикаций, посвященных данному вопросу (докладчик об этом упоминает). Есть и мета-исследования, консолидирующие результаты. Ответ в них однозначный, что выбор первого языка для обучения имеет важное значение.

Кратко:

  • Есть языки, более подходящие для обучения и менее подходящие.
  • Негативные эффекты от плохого обучения значительнее, чем от плохого языка.
  • Важнее хорошо учить (роль преподавателя и методики).

Разумеется, этот выбор зависит от кучи факторов, но есть проверенные временем и исследованиями конкретные языки и методики, которые можно и нужно рекомендовать в первую очередь.

В конце доклада (40-43 мин) автор предложил схему с оптимальной на его взгляд последовательностью изучения:

Рекомендуемый порядок изучения языков / направлений, чтобы не забить мозги почём зря (2: Низкоуровневое. 3: Энтерпрайз. 4: Академия)

Выделены три уровня:

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

Когда первокурсник или школьник начинает изучать программирование, то ни он сам, ни, тем более, преподаватель не знают, к чему это приведёт. Задача языков первого уровня — не мешать студентам учиться мыслить алгоритмически и строить абстракции. Язык для начинающего должен быть простым инструментом, формирующим высокоуровневое мышление. Специализация — следующий шаг (второй и третий уровень). Важно помнить, что методика обучения — это основа, а язык — вспомогательный инструмент методики. Когда методика и язык друг друга дополняют или хотя бы не противоречат, то обучение идёт системно, контролируемо и с интересом.

Второстепенные вопросы затронутые в докладе:

  • 11-я минута. Факторы, которые влияют на выбор языка, поделенные на несколько групп: прагматика, педагогика, сам язык. Там всё предсказуемо (ЗП, популярность на рынке, распространение в промышленности, удобство преподавания…).
  • 29 мин. Что отличает промышленный язык от учебного? (слишком много способов решить задачу; сообщения об ошибках предполагают, что язык уже известен; у него другие цели, пример: компиляция кода с ошибками).
  • 33 мин. Суть книги How to Design Programs [[☊ HtDP]]. Чему и как надо учить обучающегося.