LINUX.ORG.RU
ФорумTalks

правильное обучение программированию

 


0

2

как вы считаете, должно ли обучение программированию начинаться с глубокого изучения аппаратной части компьютера? Начиная с уровня стандартной логики, механизмов работы АЛУ, регистров, и прочих хардварных элементов. Затем изучать процессор и периферию на простых примерах, таких как восьмибитные/16-битные процессоры/микроконтроллеры с их небогатой периферией, организация работы с памятью, реализации стандартных функций и алгоритмов. И лишь затем переходить к более высокоуровневому.

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

Если цель - программировать железо, то такой подход почти наверняка правильный. А вот насколько это осмысленно в остальных случаях?

★★★★★

А вот насколько это осмысленно в остальных случаях?

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

anonymous_incognito ★★★★★ ()

Для code-monkey - не надо. Для всех остальных - надо, не обязательно детально, но общее представление иметь как минимум обязательно надо.

invy ★★★★★ ()
Ответ на: комментарий от anonymous_incognito

Никакого выноса мозга не вижу. Все лекции на эту темы были прикольными и легкими, а курсовая с VHDL и программированием светофора - очень забавная была и относительно простая.

invy ★★★★★ ()

было у меня это глубокое изучение, и я тебе говорю: ни в коем случае

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

ошибка здесь.

t184256 ★★★★★ ()

Ага, а биологию надо начинать учить с квантовой физики.

Tark ★★ ()

Не, ну ты посуди, ребёнку 8 лет, пора уже обучать. Ну не буду же я ему систему команд процессора объяснять! Надо как-то проще.

tiinn ★★★★★ ()

Начинать надо с ЯВУ, а потом уже потихоньку спускаться вниз попутно объясняя, зачем это нужно.

Hertz ★★★★★ ()
Последнее исправление: Hertz (всего исправлений: 1)

Для вхождение в программирование достаточно знакомства с Basic'ом. Всё равно всё происходящее делится на 4 категории:

  • ввод данных;
  • вывод данных;
  • изменение данных;
  • логика;
saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от tiinn

А что там сложного в системе команд? Их много, только и всего. Если отмести математические команды, то совсем ничего сложного не останется.

Вопрос тут в другом, а что ему даст их знание. И это не только детей касается. Знание как внутри устроено результата не даст, даст только понимание. Человек обучается гораздо проще, если на каждом этапе обучения есть какой-то конкретный результат. В этом смысле программирование на fasm под винду, используя winapi даст возможность и более-менее команды понять и даже графическое приложение накалякать.

ixrws ★★★ ()

с глубокого изучения аппаратной части компьютера

Нет.

чтобы человек понимал как оно работает

Лишнее. Пусть железячники с этим разбираются.

Если цель - программировать железо

И много таких спецов?

outtaspace ★★★ ()

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

PenguinSociophob ()

Ну и еще нужно, чтобы человек в общих чертах понимал то, как работает комплюктер. Что не с божьей помощью в нем винда запускается. И на 100% должен понимать, как работает то, для чего он пишет, если он пишет для железа (драйвер к видяшке, например, или придумайте пример сами). Ну и должен понимать, что существуют древнекомпы, что нужно будет оптимизировать, снижая минимальные системные требования, если он планирует для широкой аудитории свою приложеньку распространять, а не тяп-ляп на супермашинах чтобы запускалось только.

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

Ну и должен понимать, что существуют древнекомпы

Ну, и пусть существуют. В музеях.

что нужно будет оптимизировать, снижая минимальные системные требования

Кто тебе это сказал.

lenin386 ★★★ ()
Ответ на: комментарий от PenguinSociophob

Ибо там все на логике и зависимостях ведь построено

Щтоа

lenin386 ★★★ ()
Ответ на: комментарий от PenguinSociophob

чтобы чулавек начал писать драйвер к видяшке...
это его надо мотивировать на этот нелегкий труд.

Deleted ()
Ответ на: комментарий от PenguinSociophob

Что не с божьей помощью в нем винда запускается

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

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 1)

есть методика. уже давно.

есть определенная платформа, х86 называется.

можно слегонца затронуть организацию архитектуры.

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

Deleted ()
Ответ на: комментарий от Deleted

Это не нелёгкий труд. Это даже развлечение. Нелёгкий труд - это написаний и отладка питушиных алгоритмов, а потом ещё и документации.

lenin386 ★★★ ()

С обзорного изучения по всему — да, с глубокого изучения железа или ещё чего-то — нет. Обучение вообще должно быть схоже с работой пакетного менеджера — у него должен быть список пакетов и умение разрешать зависимости.

Esteban_Garcia ()
Ответ на: комментарий от PenguinSociophob

Ибо там все на логике и зависимостях ведь построено.

Часто в коде логика сложнее a && b или a || b для пары переменных? Тут недавно сишника напугал поиск по предикату.

Esteban_Garcia ()
Ответ на: комментарий от winlook38

А про что? Может у меня была плохая школа, но таких случаев множество.

Esteban_Garcia ()

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

Nebuchadnezzar ★★★★ ()
Последнее исправление: Nebuchadnezzar (всего исправлений: 1)
Ответ на: комментарий от lenin386

Так большинство компов древние, по сравнению с топовыми за 200к))

Никто не говорил - сама наблюдаю, как перепил кода влияет на то, на чем запустится программа, а на чем - нет.

PenguinSociophob ()
Ответ на: комментарий от lenin386

Так большинство компов древние, по сравнению с топовыми за 200к))

Никто не говорил - сама наблюдаю, как перепил кода влияет на то, на чем запустится программа, а на чем - нет.

PenguinSociophob ()
Ответ на: комментарий от Nebuchadnezzar

Обучение программированию должно начинаться с черепашьей графики

Несомненно. Помню-помню. Вот взял бы это тело, которое это г-но придумало, поместил бы в гильотину, и отделил бы голову - она ему не нужна.

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 3)
Ответ на: комментарий от Esteban_Garcia

Некоторые даже в такую логику не могут. И не понимают, как один кусок кода может зависеть от другого. Да, такие люди есть. Есть и все тут. И даже они пытаются программировать.

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

Так большинство компов древние, по сравнению с топовыми за 200к))

Древние компы - это ZX-Speсtrum и Commdore. А i7 не самой последней модели - это дурь и потреблядство.

сама наблюдаю, как перепил кода влияет на то, на чем запустится программа, а на чем - нет.

Щто ты наблюдаешь. Расскажи нам.

lenin386 ★★★ ()
Ответ на: комментарий от lenin386

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

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

PenguinSociophob ()
Ответ на: комментарий от lenin386

Однако ж, тот же i5 будет древним, по сравнению с топовым i7. И если у горе-программиста будет комп за 200к, на котором любое говно летает, еще не факт, что оно будет без проблем работать на более старых процессорах и с меньшим количеством оперативки.

PenguinSociophob ()
Ответ на: комментарий от lenin386

Просто сравни: 20 картинок крутятся в оперативной памяти на компе, где стоит 16 гб оперативки. И эти же 20 картинок делают то же самое на компе, где 1 гб оперативки. Будет разница?

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

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

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от PenguinSociophob

Просто сравни: 20 картинок крутятся в оперативной памяти на компе, где стоит 16 гб оперативки. И эти же 20 картинок делают то же самое на компе, где 1 гб оперативки. Будет разница?

Будет. Если у тебя каждая картинка весит более 50 мегабайт. Это што за картинки-то такие ? Расскажи нам. И заодно расскажи, зачем 16 штук таких картинок «крутить» в оперативной памяти.

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от lenin386

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

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

Однако ж, тот же i5 будет древним, по сравнению с топовым i7.

Однако ж, не будет. Я тебе скажу, что создать код, на котором будет заметна разница - это надо быть талантом.

lenin386 ★★★ ()
Ответ на: комментарий от PenguinSociophob

Вот именно, что будет.

Не будет. Потому что таких картинок не бывает. Ну, бывают, конечно, поэтому я и спросил, но это какие-то очень специфичные картинки.

Поэтому приходится оптимизировать

Поэтому, надо меньше верить идиотам, которые с умной миной набивают себе цену. Оптимизаторы хреновы.

lenin386 ★★★ ()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от lenin386

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

PenguinSociophob ()
Ответ на: комментарий от lenin386

Так в оперативе не только же картинки одни и вертятся х) И бывают телефоны, где 500 мб оп. И даже компы такие бывают, да..

А смысл верить, если я сама ощутила разницу, когда тестировала?

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

Так в оперативе не только же картинки одни и вертятся

Нда ? И щто там ещё вертится.

И бывают телефоны, где 500 мб оп

Ну, а картинки-то ты где возьмёшь на 50 мб ?

И даже компы такие бывают, да..

Да компы бывают и с 500k..

lenin386 ★★★ ()
Ответ на: комментарий от lenin386

Ну вот насчет картинок, кстати. В проекте, если усреднить, по 1-2 мб весит картинка. Какие-то больше, какие-то меньше. Их больше 250 штук. Представь, если они все в оперативке вертятся на компе, где 1 Гб этой самой оперативки. А ведь помимо этого есть другие процессы, которые ее используют.

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

PenguinSociophob ()
Ответ на: комментарий от PenguinSociophob

А смысл верить, если я сама ощутила разницу, когда тестировала?

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

lenin386 ★★★ ()
Ответ на: комментарий от lenin386

Нафига это нужно человеку, который бесплатно пишет за идею? Да и 10 винда сама прекрасно справляется с забиванием оперативки ненужными процессами х)

PenguinSociophob ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.