image Представляю вашему вниманию учебник по программированию для начинающих (подходит для школьников). Основная цель — облегчить вход в мир программирования всем желающим.

Главные отличия от существующих учебников:
— реальный язык программирования JavaScript (а не специализированный язык для обучения)
— не требуется устанавливать среду разработки (разве что редактор кода)

Естественно, в нем нет ничего про замыкания, области видимости, ООП и т.д. Только самое простое процедурное программирование. И выбор языка связан только с тем, что JS самый доступный. Открыл браузер, и вперед.

В начале года я сделал анонс http://megamozg.ru/post/7802/. Благодаря этому появилась обратная связь и много приятных отзывов. Теперь считаю учебник цельным (но не законченным). В планах: видео с короткими мастер-классами (думаю, они доступнее для неподготовленного человека). Хотел сделать скачиваемую версию на gitbook.com, но останавливает необходимость переформатирования для лучшего оформления кода.

http://kidsjs.blogspot.ru

Комментарии (21)


  1. GreatRash
    04.06.2015 15:23
    +5

    JavaScript, среда разработки не требуется, рабочее окружение у юзера уже есть (браузер), но при этом вы не осилили живые примеры, а предлагаете скачивать архивы или довольствоваться скриншотами. И это при наличии таких сервисов как codepen.io и jsfiddle.net…


    1. alexeizuzin Автор
      04.06.2015 15:28

      > не осилили живые примеры
      Честно говоря, и не планировал. На мой взгляд, важно показать на уровне файлов: твой код запускается не в какой-то специальной среде, а из обычного файла на обычном компьютере.


    1. tegArt
      04.06.2015 15:41

      Это же учебник для начинающих, а не каталог скриптов с примерами их работы. Ученику надо рассказать как и что работает, а не просто показать «вот, глянь, работает. теперь следующий урок». Посмотрел несколько разделов, все пошагово и последовательно.
      зы. Даже вспомнилось как мелкий книжки по бейсику для спектрума читал и перенабирал по несколько страниц примеров из книги, чтобы услышать пищащую калинку-малинку или наблюдать, как экран заполняется затейливыми геометрическими фигурами в бесконечном цикле пока кнопку не ткнешь. Часто в книгах были опечатки, и чтобы что-то заработало нужно было найти ошибки. Не представляете какой это был восторг, когда «программа» запускалась.


  1. maximw
    04.06.2015 15:37
    +6

    Цитата из урока «Игра Бомбермен»

    Порядок создания игры у меня был такой:
    1. Сделал текстовое описание.
    2. Создал файлы index.html и style.css и начал поочередно вставлять теги и настраивать стили. Вначале создал поле и прикрутил стили, затем все остальные элементы. Когда все элементы были созданы, я скрыл элементы, которые не должны показываться вначале с помощью css-свойства display: none.
    3. Создал файл программы (script.css) и начал добавлять туда переменные и функции по плану.
    4. Написал комментарии в программе для лучшего понимания кода.
    Если честно, очень напоминает широко известное
    как нарисовать сову
    image


    1. alexeizuzin Автор
      04.06.2015 15:44
      +2

      Число комментариев от первого урока к последнему уменьшается и фидбека на последние уроки вообще не было. Но этот урок — не рассказ о том, как запрограммировать игру, это готовая игра для самостоятельного разбора.


      1. maximw
        04.06.2015 15:47

        Ясно, спасибо. Значит это я так «удачно» попал на такой урок. Почитаю с начала.


      1. andyudol
        04.06.2015 20:44

        Число комментариев от первого урока к последнему уменьшается и фидбека на последние уроки вообще не было.

        А как вы думаете, почему?
        И что дальше? В смысле, ваши планы.


        1. alexeizuzin Автор
          04.06.2015 22:59
          -1

          Думаю, что это нормально и закономерно.
          Дальше — правки существующих статей и добавление 3-4 новых (не больше), видео мастер-классов.


    1. tegArt
      04.06.2015 15:47

      del. Пока писал коммент автор сам ответил буквально теми-же словами.


  1. maximw
    04.06.2015 16:05

    Два предложения:
    1) Сделать к учебнику песочнику типа jsfiddle, только более простую и понятную, заточенную под учебник.
    2) В описании понятия переменных добавить сноску, что эти переменные совсем не те что в уравнениях на уроках математики. Что мы не ищем их значения, а наоборот знаем и храним их. Для меня это было одно из самых трудных осозаний когда начинал, хотя описание было почти один-в-один похожим на ваше через аналогию «ящиков».


    1. alexeizuzin Автор
      04.06.2015 16:30

      Спасибо за предложения.
      > переменные совсем не те
      Да, я заметил, что их путают, обязательно исправлю.


  1. alemiks
    04.06.2015 17:38
    +2

    >обычный домашний компьютер
    у меня на одном компьютере OS X, на другом Ubuntu. Какой из них «обычный» и на какой встанет «Notepad++»?)


    1. alexeizuzin Автор
      04.06.2015 17:50
      -2

      Для OS X, видимо, надо сделать комментарий. А у linux-пользователей наверняка есть более опытный товарищ, установивший систему :)


      1. Firsto
        07.06.2015 19:37

        Sublime Text же, кроссплатформенный же.


        1. alexeizuzin Автор
          07.06.2015 19:55

          Вы правы, укажу и его. Спасибо)


  1. Nikobraz
    05.06.2015 07:33
    +1

    Имхо, JS для обучения не подходит.

    Если ориентироваться на прикладные языки и делать упор на алгоритмизацию, то Pascal.
    Если на скриптовые языки — Python.
    Если начинать по хардкору — C/C++.

    Динамическая слабая типизация в первом ЯП — это очень плохо и может обучаемому жизнь сломать.


    1. apelsyn
      05.06.2015 14:23
      -1

      Его простота с лихвою перекрывает его недостатки.

      Если ориентироваться на прикладные языки и делать упор на алгоритмизацию, то Pascal.

      Это «каменный век», я его учил еще в конце 80-х. Тогда это было «свежо». Ребенок хочет видеть результат немедленно, строчку в консоли браузера написал colsole.log(2+2), запустил — сработало — сын счастлив, можно и друганам в школе в браузере показать.

      Если на скриптовые языки — Python.

      То JavaScript

      Если начинать по хардкору — C/C++.

      Да чего там, Ассемблер мне кажется тут уместнее.


    1. G0ran
      08.06.2015 11:28
      +1

      Да зачем Pascal, когда можно спокойно изучать Python, знания которого потом можно применить во многих сферах. В плане выразительности он ничем не хуже Pascal. Язык Си вообще я считаю обязательный к изучению, программист обязан иметь хотя бы поверхностное представление о низком уровне.


      1. Nikobraz
        10.06.2015 11:20

        Pascal лучше для изучения алгоритмизации. Там нет никаких встроенных сортировок, все ручками писать надо.
        Python лучше, когда нужен красивый и эффектный результат. Куча «батареек» располагает.
        C — сам сейчас за микроконтроллеры взялся. Указатели, битовые маски и прочая веселуха нехило бодрит мозги. И понял к чему нам системы счисления давали учить.


        1. G0ran
          11.06.2015 12:38

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


  1. G0ran
    08.06.2015 11:15
    +1

    Всё-таки весьма спорный выбор языка программирования. Если действительно целью ставится обучение программированию, то лучше выбрать на начальном этапе Python, а потом добавить к этому рассмотрение работы ОС + программирование на Си, чтобы человек в будущем имел продставление о низкоуровневой разработке, хотя бы поверхностное.