Pull to refresh

Comments 16

Хм, в моем «церковно-приходском» рядовом политехе для 10-11 классов были курсы вводные, где учили работать с голыми DSP и CPLD, а для 1-2 курсов добавляли еще ARM и FPGA. За 8 лет универы так скатились?

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

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

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

И так же суть любого обучения — это пробудить интерес, а не вызвать отторжение. И часто успех зависит не от того что преподаётся, а кем и как — если у преподавателя есть энтузиазм и профессионализм — то он передаётся слушателям, ученикам — и они с интересом изучают «голые DPS и CPLD» и т.п. и т.д.

По поводу того, что есть множество курсов и детских кружков — был бы рад, если это было так. Но по факту — курсы либо на английском, либо переводные, либо совсем небольшие. А в детских кружках (которых было много в советское время) — как правило в основном Лего…

Если у вас есть ссылки на русскоязычные бесплатные видео-курсы по Ардуино для начинающих, на уровне этого 6-ти недельного курса — будут рад их посмотреть.

А по поводу сертификата — это стандартный механизм от Coursera, и на выбор слушателя)

Лично я хочу выразить благодарность Киберфизике и МФТИ, авторам курса — что нашли время на создание этого 6-ти недельного курса, и что не безразлична популяризация технического творчества (в том числе среди молодежи).
Для начинающих вначале не плохо бы раскурить математику школьную, физику (первые 2 семестра), электроту (1 семестр). И только потом браться за ардуино. Приходится часто собеседовать народ, в том числе с МФТИ, и большинство заходят в тупик на просьбах:
1) Чем TTL отличается от CMOS?
2) Схематически покажите цифровой выход на МК

Большинство из них готовы показать кучу «проектов» на ардуине и всяких малинах, но понятия не имеют как оно работает.

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

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

Гуманитарий программу не напишет, максимум — склеит франкенштейна из нагугленной копипасты и будет чесать репу: «Почему же оно не работает?..»

Но Ардуино для студентов?.. В Физтехе?! Я в растерянности…
1) Чем TTL отличается от CMOS?
2) Схематически покажите цифровой выход на МК


А это вобще зачем знать? Какая мне разница, по какой технологии выполнен МК учитывая, что подавляющая часть современных микросхем КМОП, ну или производные. Для чего это принципиально?
Зачем показывать схемотически цифровой выход MK? Для какой цели?

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

Да ерунда всё это. А программировать надо начинать в машинных кодах? Так можно дойти до того, что чтобы пользоваться телефоном, надо его разработать с нуля. Утрирую конечно, но…
Человек всё время существования пытается упростить себе жизнь. И это правильно. Объясните мне, зачем мне понимать: «а как оно там вообще работает», если это понимание мне ненужно для комфортного достижения цели?
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.
Э. Дейкстра

Первый опыт важен в любой деятельности. Получение первого опыта с корявым фреймворком, который скрывает важные детали работы контроллера, ломается и чинится магическим образом (добавили либу — все свалилось), насаждает антипаттерн «формирование задержек при помощи delay вместо конечного автомата на прерываниях» — порождает не менее корявых программистов, которых потом придется переучивать.
Поискал источник цитаты, это было сказано в июне 1975 года, вот здесь, это было за пару лет до моего рождения)

Кстати будучи школьником начал изучать именно Бейсик — был вполне рад этому, позднее появился ZX Spectrum — где смог программировать игры, на этом самом Бейсике — и это приносило радость. Да, та самая клавиатура где команды Бейсика были прописаны на клавишах…

В моём случае — Бейсик был стимулом к дальнейшему изучению программирования — далее были С, Perl, Php, Python, Ruby.

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

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

Сейчас и достаточно давно — наблюдается спад в сфере ИТ (не только в России, но и во всём мире). Компьютер стал обыденным устройством и программирование уже не столь интересно. На мой взгляд в текущих тенденциях — робототехника может привлечь опять к сфере ИТ.

Кстати появление микрокомпьютера RaspberryPi — обязано решению именно этой проблемы — как привлечь детей к ИТ (разработчик Eben Upton — кто спроектировал и сделал этот МК — осознал, что компьютеры современную молодежь уже не привлекают, как было в его время, и решил сделать что-то особенное).


Вероятно вы справедливо критикуете Ардуино, но что вы можете предложить взамен платформы для начинающих для Physical Computing? Мне кажется любой open-source проект — это плод коллективных усилий.

Кстати я не против если вместо Arduino будет RPi и Python. Но это сути не меняет. Любой специалист становится таким через личный опыт, через интерес который кем-то как-то был заложен в детстве/юности.

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

К сожалению у учителей в школах как правило нет времени на эксперименты, выходящие за рамки программы, да и не все хотят что-то менять. А самоходов не так много, как например Денис Копосов — учитель информатики из Архангельска кто с 2008 года самостоятельно развивает на базе класса информатики - начала инженерного образования в школе. И поэтому важны такие курсы по основам электроники и робототехники, что сделали сотрудники МФТИ — самостоятельное образование.
Проблема в том, что в программировании (математике, электротехнике, etc) есть действительно сложные и важные вещи, которые нужно понимать.

Для достижения этого понимания есть два пути.
1) Изучать все с самого начала — что такое регистры, как работает процессор, что такое инструкции процессора, что такое прерывание, какие регистры за это отвечают и так далее. Этот путь долгий, занудный и у большинства вызывает реакцию «это чЁ ваще». Че так сложна-то, епты внатуре?

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

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

О том, как \"сообщество\" способно заставить вас признать черное белым

А Вы знаете порядок работы цилиндров двигателя своего автомобиля и зависимость УОЗ от числа оборотов коленвала в минуту? Или вы просто умеете переключать передачи и крутить руль? В последнем случае, вы плохой водитель. От вас все эти пробки, дтп и ямы на дорогах. Как вам такая логика?

Тем и хорош прогресс, что человек имеет возможность выбирать подходящий инструмент для реализации своей цели. Кроме того, этот же человек волен выбирать, насколько глубоко надо вгрызться в гранит науки для достижения поставленной задачи. Благо, знания практически любые, сейчас получить не просто, а очень просто, если есть желание, конечно. Но зачем в себя пихать то, что не нужно?

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

Ну и на всякий случай, я знаю, что такое прерывания и таймеры, могу запрограммировать ШИМ и прочее. Но, я научился этому исключительно тогда, когда мне это понадобилось. А сначала был бэйсик на самопальном спектруме, который я собрал, тогда ещё не особенно разбираясь в электронике. А глядя на себя нынешнего, можно сказать, что и совсем не разбираясь. Но цели я тогда достиг.
Порядок работы цилиндров моего автомобиля 1-3-4-2.

Почитайте о дырявых абстрацкиях у Спольски.

Ваши аналогии построены на неверном принципе. Вы говорите о том, что гипотетический «пользователь» не должен знать, о том, как устроено то, чем он пользуется внутри. Это хорошо. Однако в программировании программист не пользователь, а «дорабатыватель». И чтобы пользоваться чьей-то абстракцией, нужно хотя бы в общих чертах иметь представление о том, что происходит на уровне ниже.
1342, классика?

Да нет же. Программист — это тоже пользователь. Он использует определённые инструменты, для достижения цели. Можно вручную вводить код за кодом в память компьютера в двоичном виде, используя тумблеры и кнопки. А можно воспользоваться некоторым уровнем абстракции, в виде языка высокого уровня и набором библиотек к нему, чтобы упростить себе жизнь. И в последнем случае, совершенно не обязательно знать, в каком порядке переключать тумблеры, и на сколько секунд нажимать кнопку «ввод». Тут важно понять, что есть разные программисты, и у них разные цели. Гвоздь забивается молотком, а саморез заворачивается отвёрткой.

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

Я например не понимаю, зачем человеку, который хочет включить мотор если кнопка нажата знать как на конкретной плате считать вольтаж на аналоговом пине и задать режим PWM.

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

тот кто занимается логикой должен думать о том, что он хочет сделать, а не как это реализовать на данной аппаратной платформе.

А с подходом про два пути можно в каждой теме про новый или обновленный фреймворк или IDE писать что все очень плохо.

МФТИ — крутой ВУЗ.
Но это не мешает им выпускать иногда и простые для понимания вещи.
Например, недавно был запущен курс "Математика для всех", где многие математические концепции (инвариант, потологию и т.п.) объясняют «на пальцах». В этом курсе сейчас есть техническая проблема (курсеру как всегда глючит, поэтому она не публикует тесты с исправленными вопросами, поэтому многие не могут набрать 100%).
Но курс клёвый и именно «посмотреть по фану» (я смотрел за ужином вместо сериальчика).

Почему бы даже крутому ВУЗу не делать иногда простые вещи?
Мне как-то даже не ловко говорить, о том, что вы только что сравнили свои знания с курсом для всех желающих возрастом от 13 лет. Наверное любой университет как-то работает со школьниками, и с популяризацией знаний. Судя по рейтингу/отзывам этого онлайн курса у МФТИ это получается талантливо.
Сертификат об окончании курсов школьник может повесить на стенку или пополнить свое школьное портфолио (сейчас такие портфолио в тренде и может скоро будет учитываться при поступлении).
UFO just landed and posted this here
Sign up to leave a comment.