2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6  След.
 
 Re: Изучение программирования
Сообщение04.03.2014, 12:40 
Аватара пользователя


22/09/09

1907
warlock66613 в сообщении #832428 писал(а):
В плохих именах переменных.
В хороших учебниках, названных выше, есть рекомендации по стилю программирования, в частности, по именам. Начинающему, особенно при самообразовании, нужно очень внимательно читать учебники.
warlock66613 в сообщении #832428 писал(а):
В методах, которые не читаются сверху вниз, а прыгают влево-вправо, потому что человек не знает как пользоваться операторами return, break и continue, потому что их нет в Паскале.
Exit, break и continue есть, например, в Delphi-7. Но может, начинающему это не нужно, чтобы не было соблазна прибегать к ним слишком часто, как не нужно слишком часто использовать goto?

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение04.03.2014, 13:21 
Заслуженный участник


27/04/09
28128
bin в сообщении #832419 писал(а):
Это не для новичков. Чтобы изучать базовые алгоритмы, ООП не нужно, более того, новичкам от него вред - отвлекает от алгоритмов.
Не обязательно итератор реализовать как интерфейс. Можно как структуру указателей на функции — наверно, для Scheme это бы подходило. Опять же, скажете, что это не для новичков? А есть ли однозначно определённая грань?

(Оффтоп)

Только не подумайте: у меня нет никакого желания вас переспоривать. Если рассмотреть меня исключительно как носителя пачки мемов, то потеря меня им ничем не грозит. :-)

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение04.03.2014, 15:41 
Аватара пользователя


22/09/09

1907
arseniiv в сообщении #832557 писал(а):
Опять же, скажете, что это не для новичков? А есть ли однозначно определённая грань?
Грань, конечно, нечеткая, но все же она есть: во всем мире накоплен значительный опыт обучения программированию, есть зарекомендовавшие себя методики, реализовавшиеся в широкоизвестных учебниках. Некоторые из этих учебников подходят для целей самообразования. Конечно же, каждый преподаватель волен избирать методику, руководствуясь не только поставленными перед ним целями, но и своими взглядами. Однако при самообразовании нет живого преподавателя, который отвечает за успех, поэтому выбор учебников лучше ограничить наиболее известными. Выбранный учебник и будет задавать ту самую грань. При этом можно с большой уверенностью утверждать, что наверняка автор такого учебника не случайно выбирал темы для изучения. Думаю, что тут стоит отметить довольно распространенное мнение, что уровень образования - в том числе и изучения программирования - снижается на протяжении ряда последних лет. Принимая во внимание это мнение, можно советовать выбирать не самые новые учебники и не самые новые методики для самообучения.

(Оффтоп)

Конечно же, это обсуждение ведется не для того, чтобы кто-то кого-то переспорил. Переспорить в таком неоднозначном вопросе, как самообучение программированию, вряд ли возможно: при достаточном количестве участников обсуждения всегда будут разные взгляды. Цель данного обсуждения помочь новичку сделать правильный выбор, при этом конечно же бесполезно пытаться навязывать ему свое мнение - ему можно только помочь, т.е. обратить его внимание на факты, которые могут быть для него неочевидными. Были бы очевидными - был бы уже не новичок.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение04.03.2014, 23:04 
Заслуженный участник


02/08/11
6892
bin в сообщении #832541 писал(а):
Exit, break и continue есть, например, в Delphi-7. Но может, начинающему это не нужно, чтобы не было соблазна прибегать к ним слишком часто, как не нужно слишком часто использовать goto?
Ну, они не настолько опасны как goto. break вообще помогает писать циклы и позволяет избегать дублирования кода в некоторых ситуациях. Главное - уметь быстро и чисто механически переписать любой кусок кода на вариант с их использованием и наоборот.
(Мне приходилось работать как в командах, где одним из кодерулезов было наличие ровно одной точки выхода из функций, то есть ровно одного return'а, и continue, соответственно, так же не приветствовалось, так и в командах, где было ярко выражено предпочтение коду, читаемому сверху вниз, то есть без многоуровневых отступов. Лично я предпочитаю последний вариант, но командные кодерулезы важнее личных предпочтений.)

(Кстати в случае с goto дело конечно не в частоте использовании, а в использовании в соответствии с каким-либо паттерном, а не как попало. Мне известен только один такой паттерн в Си, равным образом применимый и в Паскале, - освобождение локальных ресурсов при возникновении ошибки; и один паттерн в Си-Шарп - перескок между различными case-ами в switch-case операторе минуя break. Ну а в старом Бейсике почти любой цикл, а также многострочный условный оператор, представляли собой некий goto-паттерн, так что большое количество goto в программах на нём не было признаком плохого кода.)

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 16:11 


26/12/11
87
Daft, позвольте вставить мои пять копеек.
Выше Вам рекомендовали язык Паскаль.
Я бы дал другую рекомендацию. Чуть ниже объясню, почему.
Паскаль сам по себе неплох, но нужно четко понимать, для чего он нужен.
А нужен он для учебных целей и только для них. Для системного программирования он непригоден и не предназначен.
Этот язык пригодится для изучения книги Вирта (той, что здесь упоминалась), но не более того.
Вирт создал язык Паскаль как раз для обучения, но язык оказался несколько более удачным, чем ожидалось, поэтому он (язык) начал самостоятельное существование. Появились компиляторы, среды разработки, язык развивался, добавилось ООП.
И вот здесь кроется опасность. Посвятив много времени Паскалю, вы можете в дальнейшем оказаться в сложной ситуации при переходе к более низкоуровневому языку (например, Си). Знаю, о чём говорю, ибо я сейчас как раз в такой ситуации, переходить весьма сложно. Мышление в буквальном смысле отравлено Паскалем.

Поэтому, чтобы Вам не оказаться в моей ситуации, я бы советовал идти другим путём: начинать с более низкого уровня: ассемблер, регистры процессора, затем язык Си (его называют "языком среднего уровня"), а дальше уже более высокий уровень - ООП и прочие высокоуровневые прибамбасы. Там выбор будет уже шире: С++, Java и т.д., в зависимости от предметной области.
То есть двигаться лучше от более низкого уровня к более высокому, я бы сказал, в хроногическом порядке.
Для изучения алгоритмов - книги Вирта, Кормена. Можно замахнуться и на Дональда нашего Кнута, но здесь нужна хорошая математическая подготовка.
Я создавал здесь об этом тему, загляните.

Можно вместо Паскаля начать с Си. Дейтел (автор книги по Си) считает, что Си может быть первым изучаемым языком программирования, то есть вполне подходит для новичка.
Если же всё-таки использовать Паскаль (например, читая того же Вирта), то просто нужно помнить, для чего он нужен и помнить, что не стоит привыкать к нему.
Но вообще-то, по моему мнению, алгоритмы должны изучаться без привязки к языку. В этом смысле Дональд Кнут прав в том, что использует в книге вымышленный ассемблер MIX (впрочем, для этого языка были созданы эмуляторы).

Лично я знакомился с ассемблером по старой книге издательства Диалог-МИФИ, автора не припомню.
Из более новых неплоха книга Зубкова, там кстати, рассматриваются разные платформы (Windows, UNIX, Mac).
На Ваш вопрос, зачем нужен ассемблер, скажу так: он нужен, чтобы понимать, как работает железо.
Что именно происходит там, внутри, когда работает программа.
Один мой собеседник на одном из форумов сказал: Ассемблер в нынешнее время нужен не для того, чтобы писать, а для того чтобы читать. Вот это очень правильно.
И нужно это для понимания процесса.
Без этого хорошие программы писать сложно, получается то, что презрительно называют

(Оффтоп)

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

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

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 19:26 


19/02/13
39
Уфа
fflatx спасибо за ваши рекомендации. Изначально я тоже думал начать обучение в таком порядке,но решил узнать будет ли такое обучение адекватным.Очень интересно,что скажут по этому поводу другие участники форума.
Я пока только смотрел книгу Кормена.Мне она не очень понравилась,т.к в самом начале автор использует термины,которые он не определяет или определяет очень поздно.Я думаю книга,скорее всего,написана для людей уже знакомых с алгоритмами и другими темами.
Спасибо всем за ваши рекомендации и мнения!

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 19:41 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
Daft в сообщении #833472 писал(а):
fflatx спасибо за ваши рекомендации. Изначально я тоже думал начать обучение в таком порядке,но решил узнать будет ли такое обучение адекватным.Очень интересно,что скажут по этому поводу другие участники форума.
Я бы для начала спросил, сколько вам лет и какова цель изучения программирования?
Судя по упоминанию вами "паскаля когда-то давно в школе" и "сейчас возникла необходимость работать", вы, вероятно, уже достаточно долго где-то работаете, времени свободного немного, а результат неплохо бы получить "уже вчера". В общем, опишите вашу ситуацию подробнее.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 20:04 


19/02/13
39
Уфа
Мне 19 лет,я студент 2-го курса.Целью моего изучения,как я писал в своем 1 сообщении,является понимание кибернетики и информатики,для занятия ИИ и роботами(хотя не только для занятия этим,но и потому,что просто нравятся все это,особенно математика)

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 20:11 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
А не думали сменить специальность на другую, связанную с программированием, раз уж вам интересно? Если что, программирование нормально прокормит, не пропадете, да и время у вас есть.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 20:19 


19/02/13
39
Уфа
Я думал об этом.Есть причины,по которым я этого сделать не могу.1.В моем городе(Уфе) нет нормальных университетов,где бы хорошо обучали информатике+обучают этому везде плохо(т.к это предмет новый, в отличие от других разделов математики там еще нет стабильной программы обучения.Есть еще моменты,все подтверждено эмпирически,да и все логично,просто долго объяснять),а ехать в Москву я не хочу.2.Склад моего ума.Я не люблю слушать лекции т.к. я медленно думаю и не улавливаю ход мысли,даже когда все логично.Мне проще учиться самому,а у других людей(разбирающихся в определенном вопросе) спросить непонятные или интересующие меня вещи.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 20:26 
Заслуженный участник


02/08/11
6892
Daft в сообщении #833472 писал(а):
Очень интересно,что скажут по этому поводу другие участники форума.
Хотите учить ассемблер - учите ассемблер.
Хотите учить программирование - учите программирование а не ассемблер. Паскаль хорошо для этого подходит: хотя лично я всё же склоняюсь к Си, но изучение Паскаля до Си действительно может помочь выработать некоторые полезные привычки. Проблемы fflatx как мне кажется скорее его индивидуальные проблемы, а не общая тенденция, то есть далеко не факт, что вы с ними столкнётесь.

(Кстати, для изучения программирования на ассемблере я рекомендую книгу А. Крупника "Изучаем ассемблер", а для изучения Си - книгу А. Крупника "Изучаем Си".)

-- 06.03.2014, 21:28 --

Да, ещё программирование (на ЯВУ) и ассемблер можно учить одновременно.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 20:58 


26/12/11
87
Daft в сообщении #833472 писал(а):
Изначально я тоже думал начать обучение в таком порядке,но решил узнать будет ли такое обучение адекватным.

Ну, это всего лишь рекомендация, чем она обоснована, я уже сказал.
А так, схема вполне нормальная, не хуже любой другой.
Если сможете осваивать низкоуровневые вещи параллельно с языками высокого уровня - тем лучше, сэкономите время.
Речь идет о том, что ассемблер хотя бы в минимальном объеме нужно знать любому программисту. Это знание нужно не как практический навык, а как одна из составляющих для понимания процесса. И вот когда это понимание процесса появляется, то улучшается и качество кода, упрощённо говоря.
Проблема здесь вот какая: чем больше делает за программиста язык и среда разработки, тем меньше программист задумывается над задачей, меньше уделяет внимания деталям и тем менее качественными становятся его решения.
А уж применительно к выбранному Вами направлению (ИИ и роботы) ассемблер пригодится обязательно. Почему? Очень просто: ИИ есть модель человеческого мышления. Процессор есть модель человеческого мозга. Чтобы повысить качество ИИ как модели, нужно знать как работает и то, и другое, то есть ознакомиться и с особенностями человеческого мышления, и с деталями "мышления" компьютера.
Кроме того, ассемблер позволяет писать программу, заточенную под конкретную железяку, учитывая особенности этой железяки и при этом не тащить в код ничего лишнего. Код получается компактным и быстрым.
Поэтому всякие прошивки для микросхем BIOS создаются на ассемблере: требуется наибольшая эффективность при наименьшем размере. В таких условиях ассемблер вне конкуренции.
Также и при создании драйверов код пишется на Си, наиболее критичные участки - на ассемблере. Казалось бы, почему не писать полностью на ассемблере? Ответ прост: это более трудоёмко, более затратно по времени, требует более высокой квалификации, но одновременно с этим - более эффективно и экономно (в смысле использования машинных ресурсов).
Сейчас с увеличением размеров памяти микросхем и появлением новых решений на замену BIOS возможно и станет менее актуальным использование ассемблера, но утверждать не буду.

warlock66613 в сообщении #833491 писал(а):
Проблемы fflatx как мне кажется скорее его индивидуальные проблемы, а не общая тенденция, то есть далеко не факт, что вы с ними столкнётесь.

Разумеется. Заметьте, я сказал "можете оказаться в сложной ситуации", я не сказал "непременно окажетесь". И всё-таки рекомендация "не привыкать к языку Паскаль", думаю вреда не принесёт.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 21:23 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
Daft в сообщении #833490 писал(а):
,а ехать в Москву я не хочу
А Екатеринбург, Новосибирск, другие города?
Насколько я понимаю, главное в ИТ-вузах - математика, имеющая отношение к программированию. Попробуйте еще и ее поизучать. Тут я не подскажу, ибо сам программист-самоучка, книжек по алгоритмам не читал, а занимаюсь базами данных, причем только с 28 лет...

-- 06.03.2014, 22:24 --

fflatx в сообщении #833502 писал(а):
Проблема здесь вот какая: чем больше делает за программиста язык и среда разработки, тем меньше программист задумывается над задачей, меньше уделяет внимания деталям и тем менее качественными становятся его решения.
Не совсем так. Среднестатистический программист - да, задумывается меньше. Но тем не менее многие все равно ковыряются во внутренностях используемых библиотек, чтобы использовать их максимально эффективно. Главное помнить, что такая возможность есть.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение06.03.2014, 22:44 
Аватара пользователя


31/10/08
1244
Программирование сродни лингвистике. Тут много теорий и мало конкретики. Поэтому так много было по написано, в данной теме.

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

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

Для fflatx
У вас наблюдаются как раз не достаточно знания в построении систем. И судя по всему как и все самоучки путаете системное программирование с низкоуровневым.

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

Думаю самая пора вам прочитать, перечитать. Макконал совершенный код.

Так вот вначале вы продумываете структуру или организацию своей программы. Затем составляете алгоритм. А после уже его реализуете.

Система это все три части.
Структуру и организацию программы лучше всего разрабатывать при помощи шаблонов проектирования. Описывать структуру лучше всего при помощи языка UML или любым другим графическом языком.

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

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

А вот внизу лежит язык низкого уровня(ЯНУ). На котором как правило пишется вся программа целиком. И программисту нужно уметь не только переводить я ЯВУ на него. Но и уметь скажем так красиво, выразительно излагать свои мысли на ЯНУ.
На самом деле это не сложно, но этому почти не учат.
Есть функции и типы и структуры данных которые являются мощными средствами.

Нет комплексных операторов делаем функции. Нет работы со строками делаем функции. Так к примеру в Си родился sprintf. И так далее примеров очень много. Поэтому код на Си не чуть не хуже чем код на Паскале. Я сам долго сидел на паскале, а потом переходил на Си. Трудности в переходе не было, но было отсутствие мотивации.

В этом плане Зубков как учебник ассемблера это плохой учебник. Дальше чем 1-2 функции вы по нему не напишите. Он вообще не учит писать функции.

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

-- Чт мар 06, 2014 23:58:46 --

Daft в сообщении #833480 писал(а):
Мне 19 лет,я студент 2-го курса.Целью моего изучения,как я писал в своем 1 сообщении,является понимание кибернетики и информатики,для занятия ИИ и роботами(хотя не только для занятия этим,но и потому,что просто нравятся все это,особенно математика)

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

Daft в сообщении #833490 писал(а):
Я думал об этом.Есть причины,по которым я этого сделать не могу.1.В моем городе(Уфе) нет нормальных университетов,где бы хорошо обучали информатике+обучают этому везде плохо(т.к это предмет новый, в отличие от других разделов математики там еще нет стабильной программы обучения.Есть еще моменты,все подтверждено эмпирически,да и все логично,просто долго объяснять)

Программы обучения как правила все известны ещё с 70-80 годов. На лекции и практическом занятии нет времени что-бы рассказать всё. Поэтом вам надо изучать предметную область самому. Как правило преподаватели дают список рекомендуемой литературы и её надо бы всю прочитать знать.

 Профиль  
                  
 
 Re: Изучение программирования
Сообщение07.03.2014, 00:37 
Аватара пользователя


22/09/09

1907
fflatx в сообщении #833424 писал(а):
позвольте вставить мои пять копеек.
Очень похвально, что Вы пытаетесь помочь начинающему. Однако, судя по Вашим словам, Вы сами нуждаетесь в помощи. Это уже отметили:
warlock66613 в сообщении #833491 писал(а):
Проблемы fflatx как мне кажется скорее его индивидуальные проблемы, а не общая тенденция, то есть далеко не факт, что вы с ними столкнётесь.
Итак, Вы сказали:
fflatx в сообщении #833424 писал(а):
И вот здесь кроется опасность. Посвятив много времени Паскалю, вы можете в дальнейшем оказаться в сложной ситуации при переходе к более низкоуровневому языку (например, Си). Знаю, о чём говорю, ибо я сейчас как раз в такой ситуации, переходить весьма сложно. Мышление в буквальном смысле отравлено Паскалем.
Прежде всего: откуда Вы взяли, что Си более низкоуровневый язык, чем Паскаль? ;-) Например, во многих реализациях Паскаля можно вставлять ассемблерные фрагменты... Далее, чем конкретно Вам мешает знание Паскаля при освоении Си? Почему "Мышление в буквальном смысле отравлено Паскалем"? Можете привести конкретные примеры? - Могу предположить, что дело в типизации данных и в большей дисциплине в отношении кода. Ну так почитайте руководство Мейерса (ссылка приводилась выше), как не следует программировать - там, правда, про С++, но некоторые моменты и к Си относятся. Кстати, у Вас не возникал вопрос, почему многие программисты на Си терпеть не могут С++ и C# (и наоборот)? Вроде бы внешне похожие языки ;-)

Короче говоря, Ваша проблема выглядит следующим образом. Когда Вы занялись самообразованием, Вам показалось, что, освоив Паскаль, Вы автоматически научитесь программировать. Этого, естественно, не произошло, т.к. недостаточно освоить язык, а нужно изучать базовые алгоритмы (язык лишь средство, см. об этом выше в этой теме). А Вы, похоже, сосредоточились исключительно на синтаксисе Паскаля и, наверное, научились правильно писать операторы, а вот какие операторы нужно писать, Вы не знаете. Обнаружив это, Вы обиделись на язык, но выучи Вы еще кучу языков, дело с места не сдвинется. Вот Вы заявили:
fflatx в сообщении #833424 писал(а):
Паскаль сам по себе неплох, но нужно четко понимать, для чего он нужен.
А нужен он для учебных целей и только для них. Для системного программирования он непригоден и не предназначен.
Какие системные задачи невозможно решить на Паскале? Например, работа с файловой системой - вполне системная задача. Простейший случай: почистить мусор, т.е. удалить файлы с расширением .bak,.tmp. Решается на Паскале, как впрочем и на других универсальных языках высокого уровня. Есть, конечно, особые случаи типа драйверов устройств, а у Вас есть реальная необходимость написать свой оригинальный драйвер? ;-) Как уже отметили:
Pavia в сообщении #833557 писал(а):
И судя по всему как и все самоучки путаете системное программирование с низкоуровневым.
Но, более того, делаете опасные для себя выводы:
fflatx в сообщении #833424 писал(а):
Поэтому, чтобы Вам не оказаться в моей ситуации, я бы советовал идти другим путём: начинать с более низкого уровня: ассемблер, регистры процессора, затем язык Си (его называют "языком среднего уровня"), а дальше уже более высокий уровень - ООП и прочие высокоуровневые прибамбасы.
Очень опасная для начинающего идея работать с регистрами процессора! Вам кажется, что:
fflatx в сообщении #833502 писал(а):
Кроме того, ассемблер позволяет писать программу, заточенную под конкретную железяку, учитывая особенности этой железяки и при этом не тащить в код ничего лишнего. Код получается компактным и быстрым.
Вероятность того, что у Вас получится более быстрый код, чем код той же программы, написанной на языке высокого уровня (ЯВУ), крайне мала. Проделайте эксперимент: найдите в сети исходный код какой-нибудь несложной процедуры, например, решения системы линейных уравнений методом Гаусса, на любом ЯВУ - хоть на Паскале, хоть на Си - и попробуйте написать то же самое на ассемблере, чтобы исполнялось быстрее... - Современные компиляторы настолько хорошо оптимизируют код, что начинающему тягаться с ними безнадежно. А вот заточить под "железяку", под конкретную конфигурацию, на которой Вы делаете код, - это запросто. В итоге с Вашей программой никто не сможет работать, кроме Вас, а когда и если Ваша "железяка" сломается и Вам придется заменить ее на другую "железяку", то очень вероятно, что на новой Ваш код не будет работать. И кому нужен такой код?

И т.д. Вот еще один момент:
fflatx в сообщении #833502 писал(а):
Процессор есть модель человеческого мозга.
Откуда такое утвержение? Никто, кроме Вас, не знает как работает мозг во всех деталях. Листингом BIOS-а мозга не поделитесь? ;-)

Есть еще много причин, почему не стоит начинать с ассемблера, приступая к изучению программирования. Если же интересует не software design (программинг), а hardware design ("железяки"), то есть куча более важных дисциплин, с которых следует начать прежде ассемблера - теория автоматов, например. Конечно, программируя на ЯВУ, следует знать о представлении чисел в двоичном коде, о булевой алгебре и т.д., но для этого ассемблер не нужен. А вот тем, кто освоил программирование, например, в объеме книги Вирта "Алгоритмы+...", я бы очень советовал изучить ассемблер (если, конечно, время позволяет). В основном для "общего образования" - сегодня задачи для ассемблера возникают очень редко (за исключением взлома программ и прочих узких тем). Помните при этом, что новая платформа - это почти новый ассемблер (в отличие от ЯВУ и от Си), на моей памяти (макро)-ассемблеры для PDP-11, IBM 370, Mac 68K, Intel 80286, Pentium 4 и т.д. ;-)

BTW (отойдя от темы):
Pavia в сообщении #833557 писал(а):
Поэтому я рекомендовал начать с Вирта. Он хотя и не учит как делать системы.
У Вирта есть публикации, как сделать ОС с нуля (про Оберон), но не будем советовать это новичкам! :-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group