Мало того, что в программировании очень много контринтуитивных вещей. Это ещё и не один предмет. В него входят несколько тем, и каждая из этих тем по сложности тянет на отдельный школьный предмет. Если по-простому, то изучая программирование на Python по академическому подходу, каждый изучает
- Язык программирования
- Алгоритмы
- Структуры данных
Можно сократить список до двух первых пунктов, разделив третий между ними — и это два очень больших и разных направления. А если же вы изучаете создание приложений для Android — вам ещё и придётся изучать, как Android устроен.
Многие ученики просто не понимают, когда я пытаюсь научить их алгоритмам. Зачем эта сложность, зачем математика? Я уже понял эти циклы и ветвления! Хотя понял он их не на примере реальных задач, которые решает программист. А на примере базовых учебных задач.
Но понимать, как на языке программирования написать команду, использовать функцию, зациклить какое-то действие и т.д. — это одно. А вот использовать это в реальном случае, как делают это профессиональные программисты — совсем другое. Именно этому — как использовать язык так, чтобы решать задачи хотя бы немного сложнее учебных — и посвящено такое направление, как алгоритмы. Почитать подробнее о том, что это, можно в этой статье.
Можно ли изучать отдельно один предмет, а не два сразу?
Можно. Для этого есть Scratch — язык программирования, в котором все элементы языка, во-первых, переведены на русский, во-вторых, они уже в виде готовых блоков. И многие вещи упрощены, включая те же циклы.
Но какая обычно реакция неразбирающегося в вопросе человека? «Не, ну это детская какая-то штука, давайте что-то серьёзнее». Да, он создавался для детей, но он очень мощный и на школьном уровне изучения программирования (а это неплохой уровень, если его осилить, там не очень много до работы) равен по возможностям C++, Java, Python. В Scratch всё, что нужно для изучения основ алгоритмов:
- Команды
- Операторы
- Функции
- Переменные
- Ветвления
- Циклы
- Вложенность управляющих конструкций и функций
- Подпрограммы
- Массивы (списки)
- Классы и объекты(в урезанном виде, но всё же)
Любую из задач в ЕГЭ по информатике, любой код любой программы оттуда можно написать на Scratch(только с файлами он работать не умеет, но это уже так, ерунда). Так что для обучения до уровня, требуемого в ЕГЭ, Scratch достаточен! Но нет, «слишком детский».
И в результате множество моих учеников мучались и ели кактус, пытаясь впихнуть в свою голову невпихиваемое. Вместо того, чтобы сначала изучить программу школьного уровня на Scratch, и лишь затем изучить, как всё это записывать на Python. И сдавались в итоге, решая, что программирование не для них. Хотя у них и хватало способностей освоить на нужном уровне.
Гарвард тоже использует Scratch
Вот вам видео — курс «Введение в прогарммирование». Там всё очень понятно изложено, может посмотреть и ребёнок. Но! Посмотрите на аудиторию. Там взрослые люди.
Подытожим
Изучать программирование очень сложно. Многие вещи в нём контринтуитивны, да ещё и приходится одновременно изучать сразу два-три предмета — язык программирования, алгоритмы и структуры данных. Можно упростить процесс, разбив его на два этапа — сначала изучить основы алгоритмов и структур данных с помощью Scratch (список тем выше), а потом уже изучать, как это всё изучать на каком-то популярном промышленном языке программирования — Python, JavaScript, C# и т.д. Это хороший вариант и для детей и для взрослых.
Понравился материал? Подписывайтесь, ставьте лайк и пишите в комментариях, что ещё написать.
#программирование с нуля #программирование для начинающих #программирование для детей #программирование на scratch