В наших школах на уроках информатики дают немного программирования. Когда-то давно было модно программировать на языке Basic. Его специально придумали для обучения программированию. Но выяснилось, что Basic формирует плохой стиль программирования, и постепенно от него отказались. Стиль программирования очень важен для профессиональной разработки. Если стиль правильный, задача решается быстрее, в программе меньше ошибок, её проще модифицировать, поддерживать и всячески развивать. А ещё, плохой стиль, это как фальшь в музыке.
От Basic отказались в пользу Pascal, у которого со стилем было всё в порядке. Это был классический язык, специально разработанный для обучения программированию. И Pascal с этой задачей многие годы прекрасно справлялся!
Видимо, всему хорошему когда-то приходит конец. Позабыли, почему преуспели – это то, что с нами регулярно случается. Сейчас в школе нет Pascal, но можно программировать на Python, Java, C# и C. Проблема в том, что каждый из этих языков для целей начального обучения программированию не очень-то подходит.
Язык C прекрасен, в каком-то смысле это тоже классика, но чтобы его хорошо понять, очень желательно иметь какую-то минимальную базу, и в программировании по железу, и в программировании вообще. Это язык для профессионалов, которые хорошо понимают, что делают. Он и сложноват для начинающих, и не совсем подходит, чтобы изучать на нём классические алгоритмы, например.
Язык Java требует понять парадигму объектно-ориентированного программирования, что я не рекомендовал бы делать в самом начале. И самая большая проблема Java в смысле обучения – он бережёт нас от ошибок, и не даёт нам понимания, как реально выполняется программа на компьютере, потому что она выполняется не на железе, а на виртуальной машине. А для того, чтобы научиться программировать, нужно и совершать ошибки, и сталкиваться с их последствиями.
Есть на эту тему прекрасная статья Perils of Java schools by Joel Spolsky – Опасности обучения на Java, в русском переводе. Мне нечего добавить, кроме того, что Java может быть хорош для ряда прикладных задач, но в вузе вообще нет смысла его давать. Михаил Николаевич Морозов, мой преподаватель в институте, говорил примерно так: “Наша задача научить вас хорошему, а плохому вы сами научитесь”.
Всё сказанное про Java можно практически полностью отнести и на счёт C#.
Что касается Python, то он совсем уж простой. На нём ничему стоящему не научишься. С ним человечество совершает ту же ошибку, что ранее с Basic, но некому об этом нам сообщить. И Python сейчас, наверное, самый популярный стартовый язык программирования не только в школе, но и во многих вузах.
Если сравнивать изучение программирования с изучением музыки, Pascal будет примерно как классическая музыка. Получив базовое музыкальное образование, например, в музыкальной школе, мы в дальнейшем сможем освоить всю вариативность стилей: джаз, рок, рэп – всё, что угодно. И качественно, глубоко изучая Pascal на старте, мы как бы попадаем в программирование с парадного входа, и на правах почётного гостя имеем наилучшую возможность зайти в любую дверь.
Если развивать музыкальную метафору, Python скорее похож на рэп. Не сложный, не классический, и даже особо не музыкальный. Те, кто учились в классической музыкальной школе, смогут легко стать прекрасными рэп исполнителями, если захотят. А вот если в музыкальной школе вместо классики давать рэп, то непонятно, что её выпускники в музыке смогут, кроме рэпа, даже если захотят..
Post #79
1.53K
- 👍 35
- 👏 4
- ❤ 3
- 🤔 3
- 🦄 3