По поводу Ассамблера - это вы меня за живое задели. Это моя молодость. Ассамблер один из первых языков, которых появился. Он появился ещё тогда, когда не было профессии - программист. Программированием занимались электронщики. В то время как процессоры стали приобретать всё более сложный и разветвлённый вид - то программировать на "нуль" и "единицу" или даже в шестнадцатитеричном коде стало не тривиально. И именно по этой причине был разработаны ряд стандартных универсальных макросов, которые в совокупности и являются языком ассамблера. А по большей части в лексиконе программы на Ассамблере слова состоят из шестнадцатитеричной системы. И кстати, когда современные программисты говорят, что они написали код, так вот слово "код" в современном программировании исторически тянется с тех самых лохматых времён. Хотя на самом деле конечно современная программа уже давно на "код" не похожа. Ответ на вопрос: Нужно ли изучать Ассамблер? Если вы хотите связать свою жизнь с программированием, то учить конечно нужно начинать с С++ и выше. А если ваша жизнь будет связана с электроникой, автоматикой и робото-техникой, то без Ассамблера вам туда дорога закрыта.
@@igormel5137 найдёте ответ на свой вопрос, когда изучите ассамблер хотябы на уровне азов. А если собрались изучать Си, то изучайте сразу три языка Си, С++, С#
Считаю, что каждый программист обязан потратить месяцишко (+/- как пойдёт) на ассемблер. Ради академического интереса и понимания того, как его код на самом деле выглядит где-то там, в недрах. Для саморазвития. Даже если ты js-джун, потрать немного времени (тут главное не увлекаться, а то затянет) на всемогущий asm.)
Считаю что каждый человек который есть мясо, обязан потратить месяцишко на охоту. Ради интереса добычи, как его мясо на самом деле получается где-то там в диких полях. Для саморазвития. Даже если ты мало ешь мяса, потрать немного времени (тут главное не увлекаться, а то затянет, станешь диким) на всемогущую охоту.
@@Donatello_s_stick Ну если про эту тему говорить, то сначала лучше изучить от корки до корки Computer Science, после чего разобрать процессор, посмотреть под лупой транзисторы, изучить радиомеханику.... (сарказм)
@@danielluko7635 считаю что каждый человек, который родился обязан потратить месяцишко на секс. Ради интереса, как ребенок на самом деле только-только начинает получаться. Для саморазвития. Даже если ты гей, все равно, потрать немного времени (тут главное не увлекаться, а то затянет, станешь гомофобом) на всемогущий секс.)
Если вы хотите заниматься взломом приложений и игр , или же программировать холодильники, стиральные машины, запускать ракеты в космос, писать драйверы для табуретки, то Ассемблер нужно знать. Зная Ассемблер вы всегда сможете узнать как и что работает, и применить это в своих целях.(Конечно же это муторно и времязатратно) .
Самое главное не сказал - ассемблер для разных процессоров разный. И помимо изучения самого языка нужно знать архитектуру железа на самом низком уровне.
@@kadencode5347 на поверхностных знаниях, конечно, можно много демагогии разводить, но архитектура и инструкции микропроцессора(сейчас даже именно о нем, а не о процессоре, как о системе в целом) немного разные вещи.
Тот кто хочет стать высокооплачиваемым специалистом, ассемблер обязан знать. Ассемблер более важен для компилируемых языков типа Си,С++,Delphi,Pascal и т.д, где есть возможность использовать ассемблерные вставки. Алгоритмы написанные на ассемблеры более производительные, на ассемблере более богатый охват инструментария для решения задач, есть различные побитовые сдвиги с поворотом, с флагом переноса, более удобная работа с потоковыми данными, некоторые вещи возможно реализовать только с помощью ассемблера, например генерация псевдослучайных чисел.
С асемблером стоит познакомится в учебных целях, пописать под какий-нибуть avr контроллер. Это будет полезно для понимания процессов. А если вы собираетесь заниматься системным программированием, писать на C/C++, то асемблер нужно знать, чтобы использовать асемблерные вставки. Но учить асемблер первым не стоит - потратите слишком много времени на вход в профессию. Асемблеру можно уделить несколько месяцев, когда вы уже работаете и пишете на каком-либо языке хотябы год-два. Тогда это углубит ваши знания и принесет пользу.
Ассемблер полезен для общего понимания, что и как происходит. Вы станете смотреть на переменные, на функции, на свои программы, да даже на сам компьютер немного другими глазами. Ничего заумного там нет. Базовые знания можно получить за несколько вечеров: что такое регистры, флаги, стек и т.п. Как реализуются те же if'ы, циклы итд. Писать программы на нём сейчас, конечно, смысла мало, обычно это узкоспециализированные цели или оптимизация, но, повторюсь, по моему мнению, уделить ему несколько вечеров всё же стоит.
Не такой сложный ассемблер в изучении. Раньше для микроконтроллеров только ассемблер использовался, сейчас на с++ можно просто написать. С автором согласен. Тот кому нужен ассемблер, не будет спрашивать стоит ли изучать.
Ассемблер не сложный (не комплексный, как язык. Хотя сейчас процы такие крутые, что там команды капец высокоуровневые и сложные встречаются). Но на нём сложно писать безошибочно и быстро.
Все верно, нужно понимать в первую очередь задачу, а уже какими языками это лучше (легче, быстрее, оптимальнее и т.д.) сделать и есть главная задача программиста.
на ассемблере для такойже программы нужно строк от тех же 2х-3х строк до 8 (зависит от программы и от платформы на которую пишем). Я новичок и начал с ассемблера. Да , действительно сложно понять все тонкости этого языка. Но я более чем уверен что с правильным подходом к делу изучить этот язык сможет каждый
Ассемблер очень важный язык программирования, он нужен в критических местах, где производительность играет определяющую роль. И есть вещи, которые не доступны более высокоуровневым языкам, но доступны ассемблеру. А учить или не учить зависит от специфики работы)
Ответь пожалуйста, вот если переписать игру cyberpunk 2077 на ассемблере 100% то что это даст ? Насколько она станет лучше работать, и меньше требовать
На самом деле программирование обычных прикладных программ под Windows на ассемблере не на много сложнее, чем в том же чистом Си, так как, по большей части, все сводится к вызову функций WinApi. Поэтому небольшие программки вполне себе можно и в асме нацарапать, другое дело нужно ли? Раньше, если что-то делал для себя, то писал только в ассемблере, был молод времени казалось целая жизнь впереди... А сейчас пишу в том, что быстрее даст рабочий вариант, старый стал :D Ассемблер теперь только для обхода попадающихся "костылей" CPP использую в виде вставок или когда не хочу, чтобы мое приложение требовало наличия каких-то "левых" библиотек в системе. ;)
На ZX spectrum это был пожалуй единственный язык, на котором можно было написать серьёзную программу. И ничего, ребята писали, да ещё какие программы писали. А главное, ассемблер выступал неким ситом, которое отсеивало программистов. В поприще-программирование могли попасть только действительно толковые и фанатично любящие программирование люди.
Сомневаюсь что IDE Visual Studio написан на ассемблер :) скорее всего на с++. Изначально был ассемблер. На ассемблер написали си. Что есть функция printf? Это кусок кода машинного вставляемого компилятором. Программисты на машинном коде создали редактор ассемблер для пользователя. Пользователи создали с помощью ассемблер другие языки :) Так что Программистами были те кто писал в машиных кодах, а все остальные это пользователи. Так что получается программистов нет. Мы все пользователи.
@@miroslavrodin6818 До того как придумали Ассемблер и компилятор, программы писали именно битами. О чем сведетельствуют перфокарты. Потом пришла эра звуков. В каждой тональности есть байт. На Спектрумах пример. В 1 минуте звуков 10кб. информации. Потом цифровизация сменила звук на побитовле намагничивание :) Так и живём с этим до сих пор. Выросла скорость чтения, а запись как была побитовая, так и осталась. Ибо процессор кроме бит ничего не понимает.
Неправильно у вас получается, потому что изначально данные не те. Программист - это человек, который создаёт программы. Если ты их создаёшь, то не важно, на каком языке: ты - программист. Есть люди, которые что-то секут в нижнем уровне, задирают нос к небу и самовольно перетягивают звание "программиста" только на себя (и себе подобным). Но это агрессивное узколобое меньшинство, которое оскорбляет других программистов.
Новичку, может и не стОит. В самом начале. Но для лучшего понимания как там всё устроено, почитать книжку по ассемблеру будет полезно. По аналогии с автомобилем. Если вы ремонтируете электрику, то знать как работает ДВС будет полезно.
С одной стороны вы правы, но с яву на ассемблер переходить не так просто, нет привычных типов данных, переменные можно разместить где угодно. Нужно понять регистры и использовать их. Ещё ассемблер есть и с win32 api, и для DOS, и для ПК без ОС.
Чтобы писать сверхбыстрые прошивки для простейших микроконтроллеров, дописывать ОС Колибри, или драйвера для конкретного железа. Если не это, то забудьте про ассемблер.
Ну. У меня (а я никто) насчёт асма такое мнение: понимание нужно, и не в стиле "ну там в проц команды летят вроде mov, а ещё какие-то регистры есть". К тому, что автор сказал "хотите учить жабу или шарпы -- учите", не спорю, но на каком-то уровне развития вам придется столкнуться с байткодом JVM или CIL, в случае шарпов, и, пусть это и не ассемблер, языки довольно схожие с ним по структуре. Я немного писал под ColibriOS (это такая крохотная операционка), и копался в виртуалке жабы, так как делал интерпретируемый яп. Но от этого уровень моего "развития" не повысился, и, мне кажется, ни у кого не повысится. Самое главное, что я получил, это связь -- между тем, что я пишу, и тем, что происходит внутри: JVM или V8, пусть и не на глубоком уровне. Может так у всех, но мне лично тяжело чем-то пользоваться без минимального понимания в том как это работает внутри, начинается паника, и это единственное, как я думаю, что можно получить от подобных знаний, если вы не планируете их применять напрямую. Тоже дорогого стоит. К сожалению, жизнь не игра, где прокачиваешь скиллы (получил скилл "ассемблер", начал писать на Пайтоне лучше), всё куда сложнее, но от этого ведь, и интереснее
Ассемблер это простой ЯП, хотя тут надо понимать что такое ЯП ассемблер - это компилятор, а компиляторы ассемблера бывают разные, и у них часто разный синтаксис, AT&T vs Intel и их вариации. Сам ассемблер я начал изучать лет 20 с лишним назад, 8080, и ещё бейсик - по сравнению с 8080 проще, но очень медленный. Ладно это все давно было. Проблема ассемблера, это отсутствие стандарта, по этому все лепят компиляторы как им вздумается, FASM, MASM, NASM, GAS. Я вот работаю с МАСМом, а сейчас перешёл на UASM это 100% совместимый MASM ассемблер, ага только он не все 100%, а скажем только на 99.8% совместимый, есть код который работает на MASM'е, на не работает на UASM. Хороший ассемблер обладает хорошей макросистемой что сильно облегчает разработку проектов, но в том же МАСМе макросистема обладает рядом недостатков, существенно затрудняющая использования. Так же компилятор ассемблера может обладать рядом высокоуровневых операторов, такие как .if, .while, .until, invoke они существенно облегчают программирования и делают листинг более понятный. В общем, ассемблер это не так сложно, а порой проще чем все эти ваши C++, Pytuhon и тд.
Ассемблер это уже из области фундаментальных наук. Современные компиляторы сами неплохо переводят ваш высокоуровневый быдлокод в машинный. Но, чтоб создавать те самые компиляторы , драйвера, ОС и т.д. всетаки нужно знать АСМ.
грубо говоря люди делающие инструменты для всего мира гуру программирования, а эти говорят что нахрен оно ни кому не надо, ну, ну, лень двигатель прогресса.
когда ты студент, тебе 30 лет, да да 30, заочное отделение) Учить или не учить отпадает, так как там он идет по плану) учиться никогда не поздно ребят. P.S. очкую капец! xD
Более продвинутые все же должны иметь общие представления об ассемблере. Это бывает в некоторых случаях важным (даже в процессе отладки), когда нет исходного кода. При этом не обязательно знать идеально все команды ассемблера. В случаях выявления и создания вирусов, а также патчей для креков ассемблер очень необходим. Наиболее часто ассембер используется в "инверсной инженерии" (например в IDA PRO - Interactive Disassambler).
:) Если вы ничего не шарите в микроэлектронике, то Вам точно не нужен ассемблер, даже работать с контроллером Atmel уже можно на языке С, загрузив в него бутлодер, который естественно написан на ассемблере. Только истинный программист может освоить Ассемблер, все остальные это девелоперы ( т.е прикладное п.о). На моем пути к программированию именно ассемблер меня и сломал, я потерял очень много драгоценного времени, поэтому соглашусь с Автором, Учите С++ если хотите заниматься системным программированием. Java и C# если Net, Python как вариант.
Этот язык подойдёт для написания троянов и вирусов, так как ему не нужен компилятор который весит не мало соответственно тоскать с собой компилятор не целесообразно.
Проблема в том что АССЕМБЛЕР не язык пронраммирования, это чистое машинный код, и это самый правильный вариант для создания таких мало оптимизированных игр как Cyberpunk
@@mids2783 если бы они это все писали на ассемблере, это либо занимало бы 40+ лет, либо было бы еще багованнее. Ты просто представь, сколько раз можно запнуться при разработке такой сложной системы с нуля
Ну не знаю...я начал учить ассемблер, а из языков программирования знаю только php. C++ уж очень тяжелый для понимания так и не смог освоить...а ассемблер показался довольно легким да и интересным.
Ты забыл про работу с микроконтроллерами, ардуинами, AVR, STM и т.п. Если нужно выжать максимум скорости обработки и производительности при их тактовой частоте, то тут только ассемблер справляется.
@@ДмитрийКошелев-п5э Я качал книгу 1996 годов по ассемблер на IBM. Я хочу его удалить но рука остановится😟Я оооочень хочу учить ассемблер тут вожможности просто нереально много
Тут все зависит от того что тебе больше нравится . Я год назад даже не представлял как можно на этом ужасе писать ) Сегодня я кайфую от процесса написания программ на асме )
Какой ассемблер учить? Arm Intel avr risk v mips mcs51? Сначала нужно понять а надо ли оно вообще привязываться к архитектуре. Сейчас компиляторы c скомпилят так в АСМ что ручками так не напишеш.
Когда смотришь видео с названием "Стоит ли учить ассемблер новичку", а на 2:30 тебе говорят: "Скажу сразу я этот язык не знаю". Даже не знаю как на такое реагировать...
@@amir32806 Cи - это не низкоуровневый язык. По началу то Ассемб. будет не трудный, более менее так сказать, но потом начнется ад. Попробуй на ассемб. что нибудь сложное написать.
Люди, я писал на ASM, программу типа НОРТОН, но это полный гемор я работал под DVK -MC0511 (двухядерный). КОРОЧЕ ASM нужен, под старые схемы... либо под новые но уже другой АСМ, а ВЫ все будете за бортом..
давным давно в школе был компьютерный класс с компьютерами БК0010 на котором был язык бейсик. Программы на котором очень быстро съедали оперативку и очень сильно тормозили при выводе на экран. Поэтому что то написать типа игры на бейсике или что то эффектное с графикой на этом компе было не реально. Но в школе только такой комп и более ничего!!! Был ли выбор в таком случае - учить или не учить асм чтобы написать типа игры клад? вот и ответ. Сейчас выбора дофига, только стали от этого писать программы эффективно? Сейчас пром. контроллеры быстрее чем 286 комп, и памяти в них дохрена и больше. И смысл учить асм даже на контроллерах. в былые времена все стоило дорого - хранение информации, процессорная мощность, передача информации. Сейчас это стоит копейки. не думаю что потратив годик на асм на контроллерах или компе написав что то быстрое и полезное пожалеешь. Да и учить асм точно не стоит, его в принципе не нужно учить. Специфику архитектуры важнее понять, нежели команды процессора. команды процессора - практически у всех одинаковые.
Не зная особенностей ассемблера не сможешь до конца понять некоторые принципы в ширпотребовских языках для умственно ограниченных (типа пайтона). На самом деле ассемблер - простейший язык. Если не брать в качестве примера большие процессоры, а посмотреть принципы написания программ на ассемблере для простейших микроконтроллеров, то польза будет несомненная. Но для нынешнего уровня "программистов" - это не по их мозгам. Вырождаетесь, однако!
@VideoLine та ща зараьатываю созданием сайтов, походу не ту😂 пошел учитьсч на разработчика программного обеспечения, т.к другого связаным с программированием небыло
@VideoLine причем тут нытик и хвастунишка? я говорю очевидные вещи, этим языком пользуется 0.1%, он на последней строчке. И где я хвастался, и чем, покажи мне. может ты чаты перепутал?
@Королевский Пингвин какие у вас мезозойские убеждения. Чтож, учите кодьте на мертвом языке, пока остальные будуть косить бабки на тех, которые в тренде
да не так страшен чёрт как его малюют 3-4 дня активного изучения и ты уже умеешь писать простой консольный калькулятор, главное книгами не увлекаться, а то мозги так запарят, что и смотреть в сторону асма не сможешь однако я бы не советовал новичку начинать не то чтобы с ассемблера, даже С/С++ и даже C#/Java и то будет рано изучать, я бы советовал новичкам вообще с блоксхем начинать и пытаться их реализовать на всемогущем Паскале и не в Лазарусе, а в PascalABC
Сейчас вообще не чего не надо учить, средства и время вложенное в данном направлении не окупается, поэтому в Канаде своих программистов раз, два и все больше нету.
Однозначно ассемблер новичку изучать не надо если есть высокоуровневая альтернатива. На ассемблере нужно не писать код а исправлять корявость компилятора если считаешь, что можешь написать лучше. Так же можно писать вставки кода, где нет возможности обойтись другими средствами. И еще почему не надо изучать - это практически одноразовый язык, то есть для каждого семейства или каждого процессора. А изучать для все процессоров - неблагодарное и бесполезное занятие.
Не то, чтобы одноразовый. Если бы большинство современных (десктопных) процессоров не поддерживало архитектуру команд x86, то приходилось бы подгонять компиляторы под каждую отдельную модель процессора. И таких простых радостей, как поменять процессор на компьютере и сразу запустить ОС со своего диска со всеми драйверами, не было бы в помине.
@@Никитас-ч6и Если ассемблер не одноразовый, тогда скажи сколько ты проектов написал на нем для только для 8086, чтобы они работали на любой архитектуре x86?
@@НиколайПетров-в7ж, я имел ввиду конкретно х86-64 и, в разумных рамках, х86-32. И специально уточнил про современные десктопные процессоры, а не микроконтроллеры, не серверные железки и не те устройства, которые вышли ближе к дате изобретения тразисторов, чем к сегодняшнему дню.
Два года назад начал изучать программирование.Так как ничего не знал,начал изучать ассемблер.В результате потерял порядка 5-6 месяцев на изучение этого языка,а мог начать сразу с чего-то полезного.Учитесь на чужих ошибках. Кстати,изучение ассемблера пригодилось позже,при программирование микрокотроллеров,но там ассемблер легче.Так что лучше не создавать велосипед и сразу начать изучать с++ и не терять время
C++ несравнимо сложнее. Да и ассемблер это лишь набор команд ЦП в виде мнемоник. А нужен он драйверописакам, реверсерам и по необходимости для ассемблерных вставок.
С помощью аськи я написал программу -шпион и думал что меня позвалят в универе,кто ж знал что они его запустят в универе,теперь я его сам не могу найти,гуляет где то по просторам
асемблер для хацкеров - вскрывать программы и изменять их работу для своих нужд, ну или для понимания как работает железо и писать свою операционку типа дос, в любом случае денег на этом срубить в первые 10 лет сложно и почти невозможно, это когда денег дофига и нечем заняться - то можно побаловаться
@@Astn00 микроконтроллеры программисты компьютерные на Си пишут, они ассемблер с стеками, регистрами, шимами, компараторами не понимают. В них абстракция в голове засела.
@@USER-ruzer2000 ПО для микроконтроллеров пишут на Си, если мощность микроконтроллера позволяет и производитель соизволил необходимое по запилить. А в остальных случаях есть инженеры, которые делают обвязку процессора, разводят обвязку и пишут ПО на ассемблере. В силовую электронику обычно такие инженеры не лезут.