Вячеслав Романьков
Вячеслав Романьков Преподаватель творческого программирования в Креайтивика

Программирование с -10 / для тех, кто даже не знает, с чего начать

Программирование с -10 / для тех, кто даже не знает, с чего начать

Курсов вроде «Программирование для начинающих», «программирование с нуля» хватает. А вот «программирование для тех, кто даже не знает, с чего начать», «программирование с минус десяти» — этого практически нет. Поэтому я и решил вести такой курс.

В чём разница?

Поясню — нулём, как правило, считается уровень, когда человек уже получил ряд нужных для программирования знаний, умений и навыков. Которые большинству программистов и преподавателей кажутся чем-то самим собой разумеющимся. Пример? Хорошо, давайте не будем лезть в глубь, а поговорим о том, что выводится на монитор. Как вы будете размещать кнопки, поля ввода и другие элементы сайта и программ там, где нужно? Вы помните координаты?

Если у вас не натренирован навык работы с координатной плоскостью, то вам гораздо тяжелее будет размещать кнопки, поля ввода и прочие элементы программы или сайта. Даже если вы будете работать с системой, в которой используются не координаты — всё равно местоположение там будет определяется числами. Так что тот, кто работал с координатами, будет выполнять задачу размещения кнопок и т.д. на экране гораздо быстрее. А кто нет — тому придётся догонять.

И это только один из навыков, который требуется в разработке программ и сайтов, при этом по зубам каждому, все в школе проходили координаты. Но просто многим в школе этот навык не поставили, а в жизни он не вырабатывался или не тренировался, потому что был не нужен. А в разработке потребуется!

И таких вот позабытых знаний, умений и навыков может быть у человека очень много. А теперь добавьте к этому ещё и масштабность информационных технологий вообще и программирования в частности. Существуют тысячи языков программирования, куча направлений и дополнительных технологий, концепций и методов… Как во всём этом разобраться?

А что есть?

Есть курсы для уже начинающих. Тех, кто уже хоть как-то разбираются в теме, имеет представление о направлениях, в которых можно двигаться, и у которых есть набор нужных знаний и навыков. Это и есть условный «ноль».

Есть курсы, устаревшие или упрощённые за счёт вырванности из мира современных технологий. В той же школе многих досих пор учат программированию на языке Pascal, на котором сейчас почти ничего серьёзного не создаётся. Другой пример — Лого, Scratch и прочие системы, созданные для развития алгоритмического мышления у детей. Они хороши именно для детей младше 14 лет, но не для взрослого человека, который хочет понять, что такое программирование и стоит ли ему вообще двигаться в этом направлении.

Так как же мой курс решает эту проблему?

Актуальность: востребованные язык программирования и направления

Курс учит программировать на JavaScript, одном из самых популярных языков программирования — практически весь интернет использует его, все сайты, включая соцсети вроде Facebook и Instagram. И это будет не упрощённая, не урезанная, а наоборот, расширенная версия — за счёт версии библиотеки Processing для онлайн-приложений, называемой P5.js. Как бы ни был далёк человек от программирования, в конце курса он сделает простой, но полноценный проект — видеоигру вроде пинг-понга, простое приложение вроде графического редактора (Paint и подобных), интерактивную инфографику, интерактивное произведение искусства.

Так же купившие курс создатут свои онлайн-портфолио, которые смогут выложить на свои сайты или специальные онлайн-платформы. Я выложил примеры проектов, которые сможет создать каждый человек, прошедший курс до конца:

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

Визаулизатор музыки:

Визуализатор движения маятников:

3D-игра:

2D-игра (кликните по ней, затем используйте стрелки для управления, нажмите на значок сверху, чтобы перезагрузить):

больше игр здесь.

Я не зря добавил проекты, сделанных для Android. Библиотека Processing есть и для других популярных языков программирования, в частности Python, Java и Java для Android. Таким образом, закончившие мой курс смогут изучить их самостоятельно, выполняя просто выполняя те же проекты, что они делали на курсе.

Индивидуальный подход и мотивация

В основу курса заложены идеи популярного в мире направления «Creative Computing» — это направление объединяект в себе творчество, искусство, самовыражение и информационные технологии (в том числе программирование).

Каждый познакомится с несколькими направлениями разработки (онлайн-приложения, видеоигры, интерактивная инфографика, генерируемый дизайн и т.д.), и каждый выберет интересное именно ему. Есть направление даже для людей искусства — генерируемый дизайн.

На старте все темы будут разжёвываться, будут выдаваться типовые, максимально подробно разобранные проекты и задания. Но как только человек почувствует себя уверенно (а почувствуют все) и заявит о желании большей свободы в выборе идей проектов и способов их реализации, он начнёт её получать. Таким образом, каждый будет делать то, что ему интересно, и программирование превратиться для него в увлекательное занятие, в творчество, самовыражение и исследование. Все всемирно известные программисты:

  • Билл Гейтс, создатель Windows;
  • Стив Джоббс, подаривший миру Apple и в частности IPhone;
  • Билл Джой, «Эдисон интернета»;
  • Стив Возняк, создатель компьютеров Apple I и Apple II, которые начали «микрокомпьютерную революцию» и определили дальнейшее развитие отрасли

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

Заполняем пробелы

При этом все нужные знания, умения, навыки и компетенции, будут вырабатываться и тренироваться. И речь не только о базовых для программировании вещах:

  • алгоритмика (циклы, ветвление, рекурсия, переменные и т.д.)
  • владение конкретным языком (JavaScript)
  • интерактивность (программные события и т.д.)
  • подпрограммы
  • объектно-ориентированное программирование
  • и т.д. —

но и пробелах в таких нужных для программирования областях, как:

  • геометрия (координаты и преобразования на плоскости)
  • алгебра (уравнения, переменные)
  • логика
  • проектная работа
  • системное мышление
  • и т.д.

И как писалось выше, всё это будет прорабатываться, но не через насилие, как обычно, а как бы само собой, по ходу разработки интересных проектов.

Кому рекомендован курс

  • Всем, кто планирует карьеру в IT
  • Всем, кому интересно понять, что такое программирование
  • Всем, кто работает в IT, но не понимает ничего в программировании
  • Всем, кому нужен навык программирования как дополнительный бонус в портфолио

Что получит человек, прошедший курс до конца

  • Понимание и владение компьютерными алгоритмами (циклы, ветвления, подпрограммы, переменные и т.д.).
  • Владение популярным языком JavaScript.
  • Возможность самостоятельно изучить другие популярные языки разработки — Python, Java(и Java для Android).
  • Понимание, что программирование — это увлекательно, а значит, дополнительную мотивацию его изучать.
  • Собственное онлайн-портфолио.
  • Сертификат об окончании обучения.