Странный вопрос. Если на ассемблере программируют, то - значит это комуто надо, и - кому-то стоило научиться это делать. Вам это зачем?
Ассемблер нужен узкому кругу специалистов, создающих (к примеру) библиотеки для какойто вычислительной машины или контроллера c таким процессором, для которого ещё нет ни Java, ни Си. Если вы собираетесь учиться программировать, то - ассемблер не то, на чём стоит начинать программировать.
Последний раз редактировалось Masterov 25.03.2010 23:35, всего редактировалось 1 раз.
На каком языке стоит начать учиться программировать?
Большинство из нас умеет плавать, но далеко не каждый - спортсмен-плавец. На велосипеде ездить умеет почти каждый, но не каждый - спортсмен-велогонщик. Уметь программировать может научиться почти каждый, но - не каждый обязан при этом становиться проффи.
Чтоб использовать компьютер оптимально (не прося кого-то написать программу), достаточно освоить: HTML, CSS, JavaScript и HTA. (Именно в той последовательности, что я написал.)
HTML и CSS позволит вам создавать интерфейсы к программам (и простенькие сайты). JavaScript позволит написать программу, которой вы сможете управлять, используя интерфейс, который вы написали на HTML и CSS. HTA - то же, что и HTML. Если вы переименуете файл index.html в index.hta, и кликните на него, то он запустится как обычное приложение. HTML не имеет прав доступа к диску (не может сохранять данные в файле на жестком диске и читать не может, только - картинки и файлы CSS), а HTA на это право имеет. (В этом разница.)
Т.е.: зная HTML, CSS и JavaScript, и используя HTA можно создавать приложения, которые обычно пишут на C++ (или ещё на чём-то подобном).
Вам будудт говорить, что JavaScript - медленный. Не верьте. Производительность современных компьютеров такова, что разницы между программами, написаннымит на С++ и JavaScript практически (как правило) нет, а время, требуемые для разработки программ на С++ и требования к квалификации программистов С++ весьма высоки.
перед тем, как начать учиться программировать, над задать себе вопрос, а нафига, собственно, ответить себе на него, а потом только задаваться вопросом выбора языка. именно в такой последовательности.
Member
Статус: Не в сети Регистрация: 18.01.2009 Откуда: Вологда
Masterov писал(а):
v.Dollar писал(а):
Стоит ли учиться программировать на ассемблере?
Странный вопрос. Если на ассемблере программируют, то - значит это комуто надо, и - кому-то стоило научиться это делать. Вам это зачем?
Ассемблер нужен узкому кругу специалистов, создающих (к примеру) библиотеки для какойто вычислительной машины или контроллера c таким процессором, для которого ещё нет ни Java, ни Си. Если вы собираетесь учиться программировать, то - ассемблер не то, на чём стоит начинать программировать.
Я просто так спросил, а начинаю c Visual Basic. В технаре по программе год идет обучение программированию на VB.
изучение ассемблера пригодиться для понимания того, что происходит внутри. Но в общем случае сильно много времени ему уделять, ихмо, не разумно. Современные процессоры довольно сложны, для того чтобы человеку учитывать все нюансы (как например оптимальное использование функциональных блоков, регистров, кэша разных уровней). Сейчас очень хорошие оптимизируещие компиляторы, при желании может настраиваться архитектура, использоваться различные варианты SSE, векторизоваться циклы (для работы с упакованными данными в SSE) и т.д., просто посмотрите опции GCC. Кроме того даже в рамках x86, есть режимы 32 бит и 64 бит, лет через пять 32 бит ОС на десктопах наверное уже и не будет (также как не стало 16 битных). Кроме этого, есть процессоры совершенно других архитектур, например в мобильном и embedded сегменте очень популярена ARM архитектура и чуть менее MIPS.
Сейчас в коммерческом софте ассемблер почти не используется, в случае если не хватает возможностей компилятора для специфичного софта типа видео кодировщиков, то могут использоваться intrinsic'и и в крайнем случает асм вставки.
Кроме того есть очень много направлений в программировании где знания о низком уровне конкретного железа не используется вообще, это веб-программирование, программирование на различных сктиптовых языках (включая сюда всякое программирование для 1С, для Office, AutoCAD и т.п.)... Но тем немение, знать низкий уровень полезно хотя бы для общего развития. Например может очень даже пригодиться знание того, что в разных архитектурах может быть разный порядок следования байт (big-endian, ittle-endian и middle-endian), разные размеры основных типов, что такое BCD, дополнительный код, переполнение.
и, кстати, перед изучением ассемблера я бы крайне рекомендовал освоить С. не плюсы, а именно С. без понимания, что такое сишный массив, сишные строки и указатели, особенно указатели, в ассемблер лучше даже не пытаться углубляться - голова будет сильно пухнуть
а по мне так наоборот даже лучше... когда знаешь асм становится очень легко понять что такое указатели (особенно разные сложности типа указатель на указатель массивов указателей ) , чем отличаются глобальные или автоматические переменные, включая уровни вложенности, видимости автоматических переменных и время их жизни (типа void foo() { int a; {int a; } } ), union, битовые поля, строки в виде массива оканчивающегося нулем, и т.п. Потому что понимаешь в какой машинный код это превратиться и как будет работать.
Странный вопрос. Если на ассемблере программируют, то - значит это комуто надо, и - кому-то стоило научиться это делать. Вам это зачем?
Ассемблер нужен узкому кругу специалистов, создающих (к примеру) библиотеки для какойто вычислительной машины или контроллера c таким процессором, для которого ещё нет ни Java, ни Си. Если вы собираетесь учиться программировать, то - ассемблер не то, на чём стоит начинать программировать.
Я просто так спросил, а начинаю c Visual Basic. В технаре по программе год идет обучение программированию на VB.
Не самый лучший выбор, а: он у вас был(выбор)? Из-за отсутствия финансов (или жадности дирекции), в наших учебных заведениях (к сожалению) чаще всего студентов учат программированию те, кто сам программировать не умеет. Выбор Visual Basic или Паскаля в качестве языка, на котором предполагается обучение - признак отсутствия профессионального программиста (в качестве преподавателя), владеющего современными инструментами.
ToSHiC писал(а):
перед тем, как начать учиться программировать, над задать себе вопрос, а нафига, собственно, ответить себе на него, а потом только задаваться вопросом выбора языка. именно в такой последовательности.
Если человек молод, то - это достаточно веский аргумент, чтоб освоить компьютер на уровне выше, чем просто - пользователь.
перед тем, как начать учиться программировать, над задать себе вопрос, а нафига, собственно, ответить себе на него, а потом только задаваться вопросом выбора языка. именно в такой последовательности.
Если человек молод, то - это достаточно веский аргумент, чтоб освоить компьютер на уровне выше, чем просто - пользователь.
сначала нужна цель, потом уже средства. ну и просто пользователь - понятие расплывчатое сильно. ты же не будешь просто опытным пользователем ОС хотя и тут тоже есть простор для совершенствования. MCSE, например, даётся не за навыки программирования. а среди прикладного ПО простор ещё шире: думаю, намного больше половины людей, которые каждый день чего-то пишут в ворде, не в курсе про стили. так что такое желание ведёт не к программированию
а вот если постановка вопроса "хочу научиться программировать ради интереса" - то создание html странички, несомненно, даст быстрый wow-эффект. если хочется сделать программирование профессией-ремеслом - то стоит смотреть в сторону жавы. если хочется стать действительно высококлассным программистом - то надо учить английский и купить трёхтомник кнута
и, кстати, перед изучением ассемблера я бы крайне рекомендовал освоить С. не плюсы, а именно С. без понимания, что такое сишный массив, сишные строки и указатели, особенно указатели, в ассемблер лучше даже не пытаться углубляться - голова будет сильно пухнуть
Начинать программировать с процедерных языков (такими являются С и ASM) - ошибка. Трудно себя заставить мыслить и программировать в объектах, если уже научился мыслить и программировать в процедурах.
С++ для начального программирования не годится, поскольку содержит в себе обе парадигмы: процедурную и ООП. На С++ можно писать в процедурах и думать, что пишешь - в объектах. И кроме того - С++ весьма сложен. Все эти сложности накопились в результате того, что С++ родился из Си, и унаследовал от него процедурную технологию и прочие заморочки, которые в Си накопились за десятилетия развития этого языка.
Если человек планирует обучаться программировать до уровня профессионала, то следует начинать с Java. Причём - с первой Java. Она компактна, с исходниками библиотек (по которым можно учиться программировать) и вней есть всё самое главное. А Java Вторая - монстр, который только запутает. Java - потомок С++, который унаследовал от С++ только объектную часть. На Java нельзя писать в процедурах. Java такой возможности просто не даёт. В Java нет указателей и процедур выделения памяти. Выделение, очистку от мусора и дефрагментацию памяти Java выполняет самостоятельно, и делает она это хорошо. В Java есть механизм синхронизации параллельных процессов (контролируемый на уровне компиляции), что позволяет программировать на Java кластеры и многопроцессорные машины. И (в то же время) Java создавался для программирования встроенных систем с чудовищьно малыми ресурсами. Java работает в мобильниках(!) и даже - в кредитных картах и наручных часах.
Совет "начинать обучение профессиональному программированию" с Си или с С++ - плохой совет.
Если человек хочет научиться пользоваться компьютером на уровне выше, чем простой пользователь, то читай то, что я написал выше, под заголовком: На каком языке стоит начать учиться программировать?
а по мне так наоборот даже лучше... когда знаешь асм становится очень легко понять что такое указатели...
А вот этого начинающему программисту лучше и не знать. Указатели весьма вредная вещь, поскольку именно они становятся причиной того, что ваша программа подвешивает операционку.
В Java указателей просто нет. В Java нельзя напрямую обращаться к памяти. И это - правильно.
Добавлено спустя 1 минуту 41 секунду:
progn писал(а):
человека явно заклинило
Заклинило не меня, а - тебя. Ты упорно продолжаешь давать дурные советы. Прекрати пудрить мозги несведущим гражданам. С++ - плохой язык. Начинать программировать с Си, а тем более с ASM - то же - ошибка.
Masterov я в отличии от тебя никому ничего не навязываю (причем чуть ли не в каждой теме по программированию) и большими красными буквами ничего не пишу.
и я не предлагал начинать изучать азы с асм, я ответил на вопрос стоит или нет его изучать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения