Задать вопрос
Informatikum
@Informatikum
Преподаю робототехнику и информатику в школе.

Архаично ли обучать школьников программированию в консольном режиме?

Последнее время, довольно часто меня стали убеждать руководители некоторых компаний, программисты и элекронщики, что обучать школьников программированию в консоле, для написания программ работающих в консольном режиме архаично, что это прошлых век. По их мнению, детей нужно обучать программированию в GUI и для написания GUI программа. То же самое, по робототехнике, что нужно обучать на Ардуино, больших платах, дорогих робо-платформах, а не программированию микроконтроллеров.

Согласны ли Вы их мнением? Какие доводы за и против?

Лично я считаю, что "консоль" будет ещё довольно много лет существовать и поэтому стоит учить именно в текстовом режиме. При этом опыт работы с консолью пригодится в Linux. Для программирования робототехнических устройств, микроконтроллеров, это 90% консоль.

Возможно я не прав. Но результаты моих учеников превосходят результаты других, которые как раз работаю с дорогими устройствами и GUI.
  • Вопрос задан
  • 3262 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 5
@vdem
Лично у меня клавиатурой получается совершать необходимые действия намного быстрее, чем мышкой (которую использую практически только при работе в браузере). Окошки-менюшки просто выглядят проще и нагляднее, но запомнив пару десятков команд и сочетаний клавиш можно вполне (и быстрее) справляться с задачами используя клавиатуру. Конечно, все это актуально только для программеров :)

P.S. Само собой, я о консоли говорю. Пока работал в Windows, использовал Far Manager, сейчас - Midnight Commander, сборка проектов - командами в консоли.
Ответ написан
risik
@risik
Программист
В процессе обучения программированию, особенно на ранних стадиях, GUI вреден. Лично я, категорически против его использования. Под обучением программированию понимаю, в первую очередь:
- изучение базовых алгоритмов
- принципы ООП (класс, объект, полиморфизм, наследование, агрегация и т.д.).

Однако, я говорю про обучение студентов. За школьников ничего не скажу.

На всякий случай: стаж разработчика: 20 лет, стаж преподавателя: 15 лет.
Ответ написан
Комментировать
@gleb_kudr
Важнейшая задача обучения школьников - не само обучение, а вовлечение. Вовлекать надо чем-то ярким и интересным. Это в первую очередь GUI и приложения насыщенные графикой. Начало должно быть именно таким.
Когда вовлечение произойдет, можно переходить уже к более систематическому обучению с азов, т.е. с простейших редакторов и консоли.
Ответ написан
Tiendil
@Tiendil
Разработчик ПО.
Работать в консоли и писать для консоли — это разные вещи. Работать в консоли, безусловно, полезнее — это позволяет понять некоторые «подкапотные» вещи. Знающий консоль, гуи освоит, обратное не всегда верно. А вот писать под консоль, на мой взгляд, детей учить не обязательно.

Графика и дорогие роботы — это же всегда «круто», на них куда проще объяснять свои достижения сторонним людям. Вот небольшой пример, пусть мы учим алгоритмы на графах, делаем простой поиск пути по заранее заданной карте. Его можно сделать в виде:

- консольного рогалика где буковка @ бегает по клеточному полю.
- графического 2д, где картинка героя бегает по тайлам травки.
- графического 3д, с трёхмерным персонажем и т.д.
- программы для крутого робота, который ходит по квартире (с заранее заданным планом).

Алгоритм поиска пути будет почти одинаковый (везде может быть двухмерное клеточное поле). Сил и времени от ребёнка каждый вариант тоже требует примерно одинаковое количество. Пара вопросов:

1. Какой из вариантов будет выглядеть круче для мамы/друга/девушки?
2. Какой из вариантов ребёнок (да и взрослый) захочет дорабатывать?
3. Какой из вариантов даёт больший простор для оригинальной доработки и изучения технологий/алгоритмов?

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

По поводу программирования непосредственно GUI… Это то, чем занимается большая часть программистов, поэтому для среднего программиста эти навыки потребуются с бОльшей вероятность. Вопрос в том, готовите ли Вы средних программистов.
Ответ написан
Комментировать
BacCM
@BacCM
C++ почти с рождения
Библиотека GUI это почти всегда "надстройка" над языком. Притом часто достаточно сложная для новичков. Поэтому для начала лучше использовать консоль.\
PS: функции работы с консолью, часто тоже надстройка, это я понимаю, но более простые и стандартизированные.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@Lol4t0
Архаично обучать школьников писать GUI приложения. Лет 10 назад создавалось много GUI приложений. А сейчас все уже переехали на Web. А серверные части Wеb приложений гораздо ближе к консольным, чем к GUI. Да и при их разработке/отладке консоль используется постоянно.
Ответ написан
Комментировать
Я тоже за консоль! С консоли в ГУИ перейти не проблема а вот обратно нужно ещё подумать:(
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Не согласен.

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

GUI имеет смысл преподавать уже после консольки, при чем объясняя такие вещи как отзывчивость интерфейсов, как не допускать подвисаний интерфейсов. асинхронная работа с IO и т.д. Тогда толк есть.

Что до робототехники, контроллеры типа arduino, можно, но когда человек разберется что такое микроконтроллер, научится эффективно их использовать и все такое прочее. Все же разрабатывать коммерческие проекты на базе ардуино не очень то выгодно, обычно это просто хобби, побаловаться. Есть кучи более дешевых аналогов, от тех же Texas Instruments которые позволяют и разобраться, и не иметь дела со скучным ассемблером а писать уже на Си и делать прикольные штуки. Так же есть DSP процессоры и кучи других прикольных вещей.
Ответ написан
@slvABTOP
Архаично, но иначе они не будут понимать как все работает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы