Y_Mur Скорее всего действительно так. Наверное можно нарисовать такую пирамиду для программиста. Уровень 3 --------------Мировосприятие? Уровень 2-------------Математика, физика, ... Уровень 1--------Delphi, C, php, perl, иже с ними Основание ----Низкоуровневое программирование. Можно идти сверху, а можно снизу.
Что-то Абеля не видно. На мой взгляд это всё потом, иначе до ассемблера не доберётесь Начните вот с этого http://wasm.ru/publist.php?list=22 Когда этот материал ещё в виде рассылки выходил, я не переставал удивляться, на сколько интересно и доступно изложено. Параллельно Абеля можно скачать
jijidesign Вы собираетесь слишком много читать и слишком мало практиковаться. Рассмотрим две модели личности - исследователь и ... не знаю как назвать точно - тот, кто предпочитает сначала "прочесть как надо делать правильно чтобы не дай Бог не изобрести велосипед". Пусть будет "антивелосипедист" В любом случае есть закон сохранения времени (усилий) и вы не сможете за то же самое время полноценно изучить проблему и как следует ее обдумать и перебрать все возможные варианты уже известных решений. Теперь представим себе что два метода пытаются решить какую-то новую (для индивида) задачу. Исследователь, не обремененный (в данном случае) ссылками на готовые решения начнет пытаться решить задачу сам, Антивелосипедист разумеется полезет в книги, статьи, может быть даже запостит реквест на каком-то форуме. В чем принципиальная разница? По общепринятому (и неправильному) мнению разница в том, что Антивелосипедист начнет с того, что быстро сузит диапазон поиска благодаря чужим наработкам. Однако разница совсем не в этом. Разница в том, что прежде чем загружать мозг рекомендациями его нужно сначала "вспахать" попытками практики. Задачу нужно сначала почуствовать, попробовать самому. Это примерно как следовать указаниям по тренировке для мастеров спорта если даже не пробовал одолеть III спортивный разряд.
Наш профессор говаривал - "... а с этой мыслью нужно переспать ночку другую." Мы все ржали как кони, а он учил нас искать и находить в этом удовольствие.
На самом деле теория и практика должны идти вместе. Иногда опережает одно, иногда -- другое, но нельзя достичь настоящих высот (или глубин), придерживась лишь одного направления.
Я же не говорил что буду читать всю сразу же постепенно, просто это я подобрал книги которые думаю пригодятся в будущем. Ладно все, ушел с форума практиковаться...болею... )
Без знания теории, в частности математической её части, ничего качественно нового предложить не удастся (хотя бывают, конечно, исключения - одаренные люди, затратившие колоссальное количество времени). Другое дело что почти всегда это бывает и не нужно; для решения типовых задач и различных их комбинаций таковых достаточно практики и копирования с других источников. Сами решайте что вам нужно. Список книг очень недурен, но, боюсь, что если вы его возьметесь изучать, то
Vilco Я для себя выбрал уже, что буду стараться придумывать более что то новое. Так то посоветуете насчет математической части?
Я не большой знаток по этой части (в смысле книжек), но ваш список почти годится (как правило, лучше смотреть пару источников) на кандидатский минимум по соответствующим специальностям (дискретная математика и интформатика, программирования). Но если начинать с нуля - это все тяжеловато. Логично справиться о вашем нынешнем уровне познаний - каковы? И почему именно функциональный анализ? Для старта я бы предложил что-нибудь по математической логике (к сожалению по ней книг хороших на руках вообще не имел, только лекции; а вот для практической части есть замечательный задачник Лавров, Максимова), это для общего ознакомления с типичными математическими конструкциями и взаимосвязями между ними - сюда же можно отнести теорию групп (если вам это будет интересно конечно, но это опционально). Далее, в вашем списке не нашел ничего по тому, что называется "высшая алгебра". На мой взгляд - одно из самых полезных подразделений математики для программиста. Тут могу посоветовать классику - книги Ван Дер Вардена; Кострикина; Куроша. Ещё одна вещь по которой полезно хотя бы пробежаться глазами - теория алгоритмов. В любом случае полезно, хотя бы для общего развития, знать что такое машины Тьюринга, вычислимость, сложности алгоритмов и понятие алгоритма как такового (ну ещё много всякого). Тут могу поделиться лекциями, если хотите конечно. По-моему написано весьма неплохо. На этом все. Дальше нужно определиться с направлением дальнейших исследований. Если это будут какие-то моделирования - разумно будет изучить литературу по ФА (достаточно будет классического учебника Колмогорова или Треногина, тут уж сами выберете) и по численным методам. Если это будут графические движки - математический анализ и дифференциальная геометрия (а часто и простой евклидовой хватает). Если низкоуровневое программирование - подойдут васмовские статьи. Если ОС - книги Таненбаума, а по проектировке элементарых ОС была замечательная серия статей (возможно, немного устаревшая, но..) - http://sysbin.com/docs_ll.html. Параллельно можно изучать Кнута - формализм изложения, конечно, немного пугает, но после ознакомления с вышкой и логикой - все кажется довольно логичным. Некоторые читают и без математической подготовки, но такие люди "тащат" за счет опыта. Тут в общем-то следует понимать что изучить все и сразу не получится, поскольку объемы информации в наше время даже по отдельным областям просто огромны и "быть физиком, математиком и астрономом одновременно" уже физически человек неспособен. С другой стороны, не лишним будет ознакомится с основами всех отраслей, потому как чтобы выбрать - нужно сначала попробовать.
Если поделитесь лекциями очень хорошо будет Интересуют такие темы как разработка ОС, низкоуровненовое программирование и разработка компиляторов. Спасибо за развернутый ответ, очень приятно. Мои знания таковы - курс дискретной математики, элементы высшей математики. Больше всего нравится дискретная математика. Хочу углубится, да и старое встрехнуть как в ДМ и высшей математики. Учусь в техникуме, закончил 11 классов, но не получилось мне, тогда поступить в ВТУЗ, конечно не из-за плохих баллов Сейчас в техникуме проходим "Численые и математические методы", по программированию - Delphi, и прощу, не смеяться - FoxPro. Я не хочу быть очередным "клепальщиком дешевых бд" в своем городе, которых вполне хватает. Тяга к знаниям и терпение есть. Сейчас например, читаю статью с васм'а "Введение в машинный код" и потом прочитаю первую главу у Абеля про представление данных в компьютере, чтоб все утреслось в голове. Компьютерную арифметику я тоже изучал в техникуме, сейчас, читаю чтоб все было понятно и осозналось более лучше(тогда я этим не интересовался). Да и считаю, что лучше иметь навыки по базису чем по каким-то новым технологиям. Вспомнилась фраза "Страуструп тут сказал, что его расстраивает, что появились программисты, которые не знают, что такое байт." Хочется иметь фундументальные знания по архитектуре, данных, структурах, алгоритмах.
Книжки Ахо и Кнута очень даже ничего. Ну тогда, я думаю, неплохо было бы ознакомится с циклом http://wasm.ru/publist.php?list=24 и http://sysbin.com/docs_ll.html По теории низкоуровнего программирования можно посмотреть книжку Ахо ("Построение и анализ вычислительных алгоритмов"), там изложены такие модели как машины тьюринга, расп- и рам- машины. По практике - какую-нибудь книжку по ассемблеру +воображение для сооружения тривиальных и не совсем задач самому себе. Посмотрите, была где-то тема на форуме, где обсуждали сие множество. По компиляторам на васме тоже что-то есть, но если честно, не открывал даже. Давайте почту в пм, отправлю лекции, авось пригодятся.
Хочется спросить, читаю все статью "Введение в машинный код" там есть из 10h - 1h=Fh Я вот понять не могу как это получили? То есть это вычитали из "0" и получилось fh? Дальше я понимаю как работает, из 0Fh - 01h=0Eh и т.д. а как из 10h? 20h? Я понимаю что такое, это но что то не догоняю этот момент. Просто хочу во всем разобраться, спасибо.
jijidesign http://wasm.ru/article.php?article=ollydbg02 или эту книгу скачай http://www.infanata.com/computers/prog/1146133056-yazyk-assemblera-dlya-ibm-pc-norton-p-souxe-d.html там про системы счисления все разжевано
jijidesign А как при вычитании из 10 десятичного получается 9? Точно так же и в любой другой позиционной системе счисления.
Читая статью я встретился с проблемой, с выполнением кода. Код (Text): -a :0100 MOV AH,00 ;устанавливаем графический режим :0102 MOV AL,04 :0104 INT 10 :0106 MOV CX,0064 ;координаты Первой Точки :0109 MOV DX,0064 :010C MOV AH,0C ;рисуем точку! :010E MOV AL,1B :0110 INT 10 :0112 MOV AH,00 ;ждем нажатия на клавишу :0114 INT 16 :0116 CMP AH,4B ;а не нажат ли у нас Left? :0119 JE 012A ;если да - то "прыг"! ;если нет - то следующая строчка :011B CMP AH,4D ;а не нажат ли у нас Right? :011E JE 012D :0120 CMP AH,48 ;а не нажат ли у нас Up? :0123 JE 0130 :0125 CMP AH,50 ;а не нажат ли у нас Down? :0128 JE 0133 :012A DEC CX ;задаем новые координаты, в зависимости :012B JMP 010C ;от нажатой клавиши - и скок в начало! :012D INC CX :012E JMP 010C :0130 DEC DX :0131 JMP 010C :0133 INC DX :0134 JMP 010C Нет, нет я его понимаю. Но когда я запускаю исполняемый файл, то просто открывается консоль переходит в графический режим и выходит, я даже не успел нечего посмотреть. Либо я не внимательно читал, либо что то другое. Может где то не хватает поставить команды, которая бы ждала. хм, или тут не хватает прерывания int 20? Вроде понял в чем суть..