позвольте вставить мои пять копеек.
Очень похвально, что Вы пытаетесь помочь начинающему. Однако, судя по Вашим словам, Вы сами нуждаетесь в помощи. Это уже отметили:
Проблемы fflatx как мне кажется скорее его индивидуальные проблемы, а не общая тенденция, то есть далеко не факт, что вы с ними столкнётесь.
Итак, Вы сказали:
И вот здесь кроется опасность. Посвятив много времени Паскалю, вы можете в дальнейшем оказаться в сложной ситуации при переходе к более низкоуровневому языку (например, Си). Знаю, о чём говорю, ибо я сейчас как раз в такой ситуации, переходить весьма сложно. Мышление в буквальном смысле отравлено Паскалем.
Прежде всего: откуда Вы взяли, что Си более низкоуровневый язык, чем Паскаль?
Например, во многих реализациях Паскаля можно вставлять ассемблерные фрагменты... Далее, чем конкретно Вам мешает знание Паскаля при освоении Си? Почему "Мышление в буквальном смысле отравлено Паскалем"? Можете привести конкретные примеры? - Могу предположить, что дело в типизации данных и в большей дисциплине в отношении кода. Ну так почитайте руководство Мейерса (ссылка приводилась выше), как не следует программировать - там, правда, про С++, но некоторые моменты и к Си относятся. Кстати, у Вас не возникал вопрос, почему многие программисты на Си терпеть не могут С++ и C# (и наоборот)? Вроде бы внешне похожие языки
Короче говоря, Ваша проблема выглядит следующим образом. Когда Вы занялись самообразованием, Вам показалось, что, освоив Паскаль, Вы автоматически научитесь программировать. Этого, естественно, не произошло, т.к. недостаточно освоить язык, а нужно изучать базовые алгоритмы (язык лишь средство, см. об этом выше в этой теме). А Вы, похоже, сосредоточились исключительно на синтаксисе Паскаля и, наверное, научились правильно писать операторы, а вот какие операторы нужно писать, Вы не знаете. Обнаружив это, Вы обиделись на язык, но выучи Вы еще кучу языков, дело с места не сдвинется. Вот Вы заявили:
Паскаль сам по себе неплох, но нужно четко понимать, для чего он нужен.
А нужен он для учебных целей и только для них. Для системного программирования он непригоден и не предназначен.
Какие системные задачи невозможно решить на Паскале? Например, работа с файловой системой - вполне системная задача. Простейший случай: почистить мусор, т.е. удалить файлы с расширением .bak,.tmp. Решается на Паскале, как впрочем и на других универсальных языках высокого уровня. Есть, конечно, особые случаи типа драйверов устройств, а у Вас есть реальная необходимость написать свой оригинальный драйвер?
Как уже отметили:
И судя по всему как и все самоучки путаете системное программирование с низкоуровневым.
Но, более того, делаете опасные для себя выводы:
Поэтому, чтобы Вам не оказаться в моей ситуации, я бы советовал идти другим путём: начинать с более низкого уровня: ассемблер, регистры процессора, затем язык Си (его называют "языком среднего уровня"), а дальше уже более высокий уровень - ООП и прочие высокоуровневые прибамбасы.
Очень опасная для начинающего идея работать с регистрами процессора! Вам кажется, что:
Кроме того, ассемблер позволяет писать программу, заточенную под конкретную железяку, учитывая особенности этой железяки и при этом не тащить в код ничего лишнего. Код получается компактным и быстрым.
Вероятность того, что у Вас получится более быстрый код, чем код той же программы, написанной на языке высокого уровня (ЯВУ), крайне мала. Проделайте эксперимент: найдите в сети исходный код какой-нибудь несложной процедуры, например, решения системы линейных уравнений методом Гаусса, на любом ЯВУ - хоть на Паскале, хоть на Си - и попробуйте написать то же самое на ассемблере, чтобы исполнялось быстрее... - Современные компиляторы настолько хорошо оптимизируют код, что начинающему тягаться с ними безнадежно. А вот заточить под "железяку", под конкретную конфигурацию, на которой Вы делаете код, - это запросто. В итоге с Вашей программой никто не сможет работать, кроме Вас, а когда и если Ваша "железяка" сломается и Вам придется заменить ее на другую "железяку", то очень вероятно, что на новой Ваш код не будет работать. И кому нужен такой код?
И т.д. Вот еще один момент:
Процессор есть модель человеческого мозга.
Откуда такое утвержение? Никто, кроме Вас, не знает как работает мозг во всех деталях. Листингом BIOS-а мозга не поделитесь?
Есть еще много причин, почему не стоит начинать с ассемблера, приступая к изучению программирования. Если же интересует не software design (программинг), а hardware design ("железяки"), то есть куча более важных дисциплин, с которых следует начать прежде ассемблера - теория автоматов, например. Конечно, программируя на ЯВУ, следует знать о представлении чисел в двоичном коде, о булевой алгебре и т.д., но для этого ассемблер не нужен. А вот тем, кто освоил программирование, например, в объеме книги Вирта "Алгоритмы+...", я бы очень советовал изучить ассемблер (если, конечно, время позволяет). В основном для "общего образования" - сегодня задачи для ассемблера возникают очень редко (за исключением взлома программ и прочих узких тем). Помните при этом, что новая платформа - это почти новый ассемблер (в отличие от ЯВУ и от Си), на моей памяти (макро)-ассемблеры для PDP-11, IBM 370, Mac 68K, Intel 80286, Pentium 4 и т.д.
BTW (отойдя от темы):
Поэтому я рекомендовал начать с Вирта. Он хотя и не учит как делать системы.
У Вирта есть публикации, как сделать ОС с нуля (про Оберон), но не будем советовать это новичкам!