?

Log in

No account? Create an account
 

Почему Python должен быть первым языком программирования в школе? - Денис Кириенко — ЖЖ

About Почему Python должен быть первым языком программирования в школе?

Previous Entry Почему Python должен быть первым языком программирования в школе? 23 ноя, 2014 @ 13:41
Оставить комментарий
[User Picture Icon]
From:iscremas
Date:Ноябрь, 23, 2014 16:00 (UTC)
(Link)
Я тут недавно где-то на просторах встретил замечание, которое поддерживаю чуть более чем полностью: "Всё чему учат на курсах программирования - это в лучшем случае алгоритмы. Про то, как писать программы, никто не учит."
Не уверен, имеет ли смысл учить этому именно школьников, но я абсолютно уверен, что сейчас по факту этому не учат нигде, даже в лучших ВУЗах, а тема более чем актуальна для людей, стремящихся стать профессионалами, или же просто программировать реальные приложения.
Постоянно сталкиваюсь с тем, что приходят на работу даже "опытные программисты" и не знают ни шаблонов проектирования, ни принципов дизайна классов, наступают вновь из раза в раз на одни и те же грабли. И от языка это знание не зависит вообще почти никак...
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 16:16 (UTC)
(Link)
Это верное замечание, и про вузы тоже верное замечание. Хотя где-то в вузах есть курсы, посвященные проектированию и дизайну классов.

Что до того, как учить "писать программы". Мне кажется, что я умею учить писать программы - на простом, школьном уровне. Сейчас я зачастую стараюсь добиваться от школьников, чтобы к их коду нельзя было придраться - то есть я сам придираюсь к коду до тех пор, пока не получится хороший код. Конечно, это не проектирование классов, это маленькие учебные программы, но я слышал отзывы от преподавателей летней компьютерной школы, что школьники 179 школы отличаются тем, что они умеют писать ХОРОШО.

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

Эх, планы, планы...
[User Picture Icon]
From:iscremas
Date:Ноябрь, 23, 2014 17:04 (UTC)
(Link)
Я не знаю, как это сформулировать, но с высоты прожитых 10 лет в качестве профессионального программиста - я до сих пор познаю дзен, и конца этому явно пока не видится. Постоянно натыкаюсь на очередной "сгусток сакральных знаний" и периодически прихожу к пониманию, что до этого всё писал плохо и имел неверные установки и убеждения. А всё из-за того, что не было тогда человека, который бы мне показал эти вещи, и, самое главное, объяснил бы как этим пользоваться реально. Из начальной базы были только алгоритмы (хотя и на этом спасибо). А всё из-за того, что у преподавателей свои задачи и свои навыки, и обучают они на каких-то абстрактных задачах, пусть даже сложных и олимпиадных, но в вакууме.
А необходимые навыки написания реальных приложений приходится приобретать самому, набивая шишки и спотыкаясь о грабли, на протяжении многих лет, каждый раз вспоминать поговорку: "Я знаю что ничего не знаю"

Кстати, есть у меня книжка по C++, на 1024 страницы )) которую я прочитал от корки до корки раза 4 еще в школе. Так там есть 1 тема, которую проводят через всю книгу - проектирование лифта, как набора классов. После каждой главы вводятся какие-то новые данные и условия. Я тогда не понимал, зачем это всё, но сейчас мне кажется, я уже понимаю: это учит писать код так, чтобы после каждого нового условия задачи, вводимого позже на следующем этапе написания программы, не приходилось всё переписывать заново.
From:(Anonymous)
Date:Июнь, 28, 2015 14:37 (UTC)

gbnjy

(Link)
На сайте фоксфорд есть курс для школьников - программирование на языке Python для 6,7,8 классов. Там я впервые узнал, что есть такой язык. Ну и Вас почитал, убедительно. Мне кажется, такой язык интереснее для школьников, так как позволяет делать интересные вещи, практически полезные. Пусть этот язык "перескакивает" через какие-то важные этапы в обучении программированию, он, с другой стороны, может дать важную вещь, которая недооценивается - что такое писание программ или программирование в целом. Все-таки синтез важнее, чем анализ, о чем в наш век очень часто забывают.
[User Picture Icon]
From:denspb
Date:Ноябрь, 24, 2014 08:59 (UTC)
(Link)
У реальных задач есть два свойства, которые довольно сложно смоделировать при обучении.
Во-первых, размер задачи. Задачу на пару человеко-часов можно просто удержать в голове.
Что-то на неделю-месяц разработки уже требует немного полезных дисциплин (без хотя бы простейшего правила для имён переменных становитcя сложно). А основные практические знания нужны в чём-то размером начиная с 5-6 человеко-месяцев.
А во-вторых, реальные задачи отличаются нечёткими условиями, меняющимися со временем и не очень чёткими критериями "правильного ответа".

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

Хорошие курсовики могут что-то из этого смоделировать, но не все.
(Оставить комментарий)
Top of Page Разработано LiveJournal.com