Автор, вы единственный человек который рассказывает всё досконально, спасибо вам за такую работу) Сегодня я не смогу просмотреть данное видео, но завтра после полудня обязательно обращу на него внимание)
питон очень сильно ушёл от Си. Там и конструкции функциональных языков есть вроде генераторов, map, reduce, filter. Тогда уже и Haskell можешь посмотреть, если хочешь разобрать функциональную составляющую современных языков.
@@qwertymangames1800 а для haskell нужно посмотреть курс лекций по лямбда-исчислению. Но тогда лучше почитать книжки по математической логике, чтоб понять этих математиков. А для чтения этих книг лучше ознакомиться с теорией множеств. А если говорить о математической логике, то лучше почитать совместный труд Рассела и Вайтхеда. Начать с истоков так сказать. Изучить проблематику, откуда возникла потребность в таком подходе к математике. А значит надо задать вопрос, что есть математика?
Мужик ты для меня целое открытие спасибо за труд. Прошел твой курс по питончику и тер веру. Так же очень зашли алгоритмы на питоне и плюсах. Продолжай в том же духе, это меняет мир
Молодец! Как всегда - актуальный и сделанный с большой любовью материал... Автор сочетает в себе крепкого профи и талант потрясающего Учителя! Представляю, сколько труда стоит каждый подобный ролик..... Очередной раз "снимаю шляпу" перед Учителем за великолепный труд .....
ХОРОШЕЕ начало. Выбрал программирование как хобби. Не знаю чем мозги занять а тут просто крутое изложение материала. Пробывал лекции смотреть МФТИ . Надеюсь в совокупности с этим пойму.
Круто что настолько подробно рассказывается курс. А по поводу работы компьютера как он работает мне помогла игра Turing complete. Она в стиме ещё в раннем доступе, но там уже с нуля можно собрать компьютер и запрограммировать на ассемблере свои простейшие программы. И самое главное понимать как эти команды работают на электрической схеме. Что там с регистрами происходит например. Очень познавательная и затягивающая игра. То что надо чтобы на низком уровне разобрать устройство ЭВМ
Язык Си великий язык. Я сначала написал программу для автомойки самообслуживания на Си++. Потом переписал её на языке Си с прямым руководством состояний регистров. В результате программа начала работать в два раза быстрее и стала надёжно работать без сбоев.
Ты просто мой красавчик на ютубе. Года полтора-два назад смотрел от тебя Django, теперь работают python бэкендером, увидел первый ролик в атобусе решил глянуть, а оказалось действиетьлньо интересной штукой. Очень рад что есть ты! P.S. Я еще успел бесплатно урвать твой курс на Stepik`е по ООП. И , кстати, твой курс Django 3, помог мне получить стажировку на бэкенд
от себя хотел добавить, что использование объектных файлов ведёт к тому, что программа может быть написана на нескольких языках.Т.к. подключаемые бибилиотеки в исходном коде необязательно могут быть написаны на Си
да,коль питон написан на С узнать о нем больше надо, возможно чтобы переписывать какието затупки питона на С и тем ускорять программу. не уверен правда что С дастся мне, питон вроде терпимо но заходит...а еще я знаю что в еденицу времени можно получать лишь один навык.считаю что в школе нас не учили а калечили, ну как можно за один день 5-6разных уроков то одно то другое....к концу дня каша в голове...
Там есть ещё 2 модификации С11 и С17 но там небольшие дополнения только. В разных операционнках особенно в линуксовый есть ещё доп вариации языка С(не С++) существенно расширяющих его возможности. В некоторых моментах язык С даже опережает язык С++. В целом программы на С работают немного быстрее и требуют меньше ресурсов потому как более простые не перегружены функциональностью С++. Вопрос в том нужна она вам или нет. В целом писать на С++ боле комфортно и проще из-за ООП. Но если у вас это не надо, то лучше использовать просто С, а не С++.
Года 2 назад, переписывал "вычеслялку простых чисел" с Си на Ассемблер, щас смотрю сишный вроде понятно что и как делается, асмовый смотришь и думаешь я что реально это с нуля писал😅😅😅
вы так скилбокс разорите:)) спасибо за труд:) можно спросить а если я буду чистый код блокс или вирчуал студио код без установки мин гв можно так изучать?😍😍
Здравствуйте, спасибо за новый курс, я прошел Ваш на степики по Пайтону. Хотелось бы уточнить, а разве для ассембелра перевод в машинный код называется компиляцией ? а что тогда называется транслятором языка ассемблер ?
в данном случае - это одно и то же, просто трансляция кода - это перевод из текстового вида в другой требуемый, часто машинный код, но не всегда, например, в Java, C# трансляция - это перевод в байт-код.
А для языка ассемблера нельзя было создать разные компиляторы для разных архитектур процессора и операционных систем и спокойно переносить программы с одного компьютера на другой?
Они и созданы. Но если на C мы можем написать с = b + a не особо задумываясь о том, где именно хранятся и какой тип и разрядность имеют переменные a, b и с, то в программе на ассемблере мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё. Фактически, ассемблер - это чуть более удобочитаемый машинный код, и ту работу, что обычно делает компилятор C, приходится делать программисту. Даже для одного и того же процессора для разных операционных систем одна и та же программа на ассемблере будет выглядеть по-разному в части взаимодействия с операционной системой. Именно поэтому трансляторы с ассемблера и С поставляются разработчиком операционной системы, а не разработчиком процессора.
@@z59h2 Почему вот это все: "мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё" не делает компилятор для соответствующего процессора и операционной системы?
@@NationalVerrater потому что ассемблер - это язык очень низкого уровня, максимально близкий к программированию в машинных кодах. Он даёт полный контроль над железом, но взамен требует хорошо знать это железо. Тут аналогия такая: есть водитель и есть пассажир. Пассажиру нет необходимости знать, как управлять конкретным автомобилем, ему достаточно знать пункт назначения и сообщить его водителю. А вот водителю, чтобы туда доехать, нужно знать, как включить двигатель, как разгоняться и тормозить, как и когда переключать скорости, как поворачивать. Если вы пишете программу на ассемблере - то вы подобны водителю, непосредственно управляете работой вычислительной машины. Хотите быть пассажиром - есть Python, Java и ещё множество языков, которые избавляют от необходимости знать ужасные подробности из жизни железа. Но не бесплатно. Например, вы никогда не запустите программу на питоне на 16 килобайт ОЗУ. И никогда не сможете точно предсказать, в какой момент ваша программа на джаве затормозится, потому что включился сборщик мусора. Есть разные инструменты для разных задач, требующие разных навыков от тех, кто их использует. На ассемблере пишут то, что должно быстро работать на _конкретном_ железе и не потреблять много ресурсов. Если такая задача не стоит - разумно выбрать другой, более подходящий инструмент.
@@z59h2 Спасибо. Но все-таки, мне не до конца понятно - сделать язык ассемблера универсальным, создав разные компиляторы для разных архитектур процессоров и операционных систем невозможно? Чтоб везде например mov оставалось мувом и ничем другим и всегда работало одинаково? Ведь, как я понял для С и Пайтона это делают. А они тоже в конечном счете управляют конкретным железом, которое может быть разным.
@@NationalVerrater можете считать таким универсальным ассемблером C, в нём даже можно указать, что переменная должна храниться в регистре процессора, а не в памяти. Создать универсальный язык ассембера можно только в том случае, если вы создадите универсальную архитектуру процессора. Например, вы написали программу для процессора, у которого 16 универсальных 32-битных регистра, 32-битная шина данных и 36-битная шина адреса. И вам нужно перенести её на процессор, у которого 4 универсальных 16-битных регистра, 16-битная шина данных и 20-битная адресная шина. Можете написать алгоритм переноса? И это мы ещё не затронули разную ширину команды и разные режимы адресации.
Ну вобще-то это не компилятор а транслятор. потому что он переводит код 1:1. Т.е. просто изменяет его вид ничего с ним по сути не делая. А компилятор это когда происходит изменение самого кода в форму понятную машине из формы понятной человеку. Т.е. это совершенно другой процесс. Поэтому процесс трансляции происходит оч быстро по сравнению с компиляцией, это оч сложный и ресурсоёмкий процесс. Хотя суть обоих одна создать выполняемый код. Но делают они это по разному. Не надо их путать.
Автор, вы единственный человек который рассказывает всё досконально, спасибо вам за такую работу)
Сегодня я не смогу просмотреть данное видео, но завтра после полудня обязательно обращу на него внимание)
Историческая часть - огонь! Курс посмотрю хотя бы за тем, чтобы лучше понимать работу питона :)
Это Си
Это питон @@skvizix9106
@@skvizix9106вы далеки от программирования и вообще от cs
питон очень сильно ушёл от Си. Там и конструкции функциональных языков есть вроде генераторов, map, reduce, filter.
Тогда уже и Haskell можешь посмотреть, если хочешь разобрать функциональную составляющую современных языков.
@@qwertymangames1800 а для haskell нужно посмотреть курс лекций по лямбда-исчислению. Но тогда лучше почитать книжки по математической логике, чтоб понять этих математиков. А для чтения этих книг лучше ознакомиться с теорией множеств. А если говорить о математической логике, то лучше почитать совместный труд Рассела и Вайтхеда. Начать с истоков так сказать. Изучить проблематику, откуда возникла потребность в таком подходе к математике. А значит надо задать вопрос, что есть математика?
Мужик ты для меня целое открытие спасибо за труд. Прошел твой курс по питончику и тер веру. Так же очень зашли алгоритмы на питоне и плюсах. Продолжай в том же духе, это меняет мир
Молодец! Как всегда - актуальный и сделанный с большой любовью материал... Автор сочетает в себе крепкого профи и талант потрясающего Учителя! Представляю, сколько труда стоит каждый подобный ролик..... Очередной раз "снимаю шляпу" перед Учителем за великолепный труд .....
ХОРОШЕЕ начало. Выбрал программирование как хобби. Не знаю чем мозги занять а тут просто крутое изложение материала. Пробывал лекции смотреть МФТИ . Надеюсь в совокупности с этим пойму.
Пиши прикладные программы, на теории далеко не уедешь, нужно поддерживать интерес решая собственные задачи.
А что за лекции МФТИ? Можешь ссылку кинуть?
Какие же классные видеоуроки! Эх, где мои 15 лет 😢😅
Круто что настолько подробно рассказывается курс.
А по поводу работы компьютера как он работает мне помогла игра Turing complete. Она в стиме ещё в раннем доступе, но там уже с нуля можно собрать компьютер и запрограммировать на ассемблере свои простейшие программы. И самое главное понимать как эти команды работают на электрической схеме. Что там с регистрами происходит например. Очень познавательная и затягивающая игра. То что надо чтобы на низком уровне разобрать устройство ЭВМ
Кинь ссылку,пожалуйста
Классно обязательно буду смотреть этот курс!
Данный канал и его Автор для меня открытие, преподаватель от Бога))
Великолепные лекции! Спасибо!
Язык Си великий язык. Я сначала написал программу для автомойки самообслуживания на Си++. Потом переписал её на языке Си с прямым руководством состояний регистров. В результате программа начала работать в два раза быстрее и стала надёжно работать без сбоев.
мне почему-то намного проще разбираться в своем же коде для мк, если пишу на си нежели на с++.
Ты просто мой красавчик на ютубе. Года полтора-два назад смотрел от тебя Django, теперь работают python бэкендером, увидел первый ролик в атобусе решил глянуть, а оказалось действиетьлньо интересной штукой. Очень рад что есть ты!
P.S. Я еще успел бесплатно урвать твой курс на Stepik`е по ООП. И , кстати, твой курс Django 3, помог мне получить стажировку на бэкенд
Круто! Дальнейших успехов!!!
Отлично. Ждём продолжения. Самая понятная подача материала.
Интересно 😁👍 надо посмотреть 🙂
Огромное СПАСИБО! Like в копилку и очень ждём продолжения!!
спасибо за занятие) как всегда - всё по делу и ничего лишнего)
Спасибо, дружище. Ты делаешь неоценимый вклад для сообщества.
Как же здорово, спасибо Вам.
Наконец-то долгожданный плэйлист)))
Очень интересный урок!
Спасибо!
Изучаю. Огромное спасибо
Класс. Очень рад буду смотреть.
На одном дыхании
я новичок в програмировании и я хочу выучить язык "С" надеюсь ваши уроки помогут мне
Спасибо. Отлично!
Спасибо!
Хочу начать изучать программирование с языка C, надеюсь эксперимент окажется удачным)
Как успехи?
Топ контент!
спасибо! 👏👍
Просто супер!
понеслась, подготовка к школе 21
от себя хотел добавить, что использование объектных файлов ведёт к тому, что программа может быть написана на нескольких языках.Т.к. подключаемые бибилиотеки в исходном коде необязательно могут быть написаны на Си
Ох, кто писал на ассемблере, тот над анекдотами не смеется... помню этот треш в 90-х... Но это мало что заменит для понимания, что происходит в компе.
да,коль питон написан на С узнать о нем больше надо, возможно чтобы переписывать какието затупки питона на С и тем ускорять программу.
не уверен правда что С дастся мне, питон вроде терпимо но заходит...а еще я знаю что в еденицу времени можно получать лишь один навык.считаю что в школе нас не учили а калечили, ну как можно за один день 5-6разных уроков то одно то другое....к концу дня каша в голове...
9:47 😁
Будут ещё выпуски?
Топчик
Сергей, спасибо за урок! Сколько ориентировочно видео будет в этом плейлисте?
без понятия, курс еще не сформирован
Там есть ещё 2 модификации С11 и С17 но там небольшие дополнения только. В разных операционнках особенно в линуксовый есть ещё доп вариации языка С(не С++) существенно расширяющих его возможности. В некоторых моментах язык С даже опережает язык С++. В целом программы на С работают немного быстрее и требуют меньше ресурсов потому как более простые не перегружены функциональностью С++. Вопрос в том нужна она вам или нет. В целом писать на С++ боле комфортно и проще из-за ООП. Но если у вас это не надо, то лучше использовать просто С, а не С++.
Года 2 назад, переписывал "вычеслялку простых чисел" с Си на Ассемблер, щас смотрю сишный вроде понятно что и как делается, асмовый смотришь и думаешь я что реально это с нуля писал😅😅😅
вы так скилбокс разорите:)) спасибо за труд:) можно спросить а если я буду чистый код блокс или вирчуал студио код без установки мин гв можно так изучать?😍😍
Спасибо! Можно и codeblocks )
Здравствуйте, селфеду! Было бы круто увидеть в вашем исполнении создание веб сайта-интернет магазина
Здравствуйте, спасибо за новый курс, я прошел Ваш на степики по Пайтону. Хотелось бы уточнить, а разве для ассембелра перевод в машинный код называется компиляцией ? а что тогда называется транслятором языка ассемблер ?
в данном случае - это одно и то же, просто трансляция кода - это перевод из текстового вида в другой требуемый, часто машинный код, но не всегда, например, в Java, C# трансляция - это перевод в байт-код.
Спасибо. А можно изучать сразу С++ без знания С?
нет
А для языка ассемблера нельзя было создать разные компиляторы для разных архитектур процессора и операционных систем и спокойно переносить программы с одного компьютера на другой?
Они и созданы. Но если на C мы можем написать с = b + a не особо задумываясь о том, где именно хранятся и какой тип и разрядность имеют переменные a, b и с, то в программе на ассемблере мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё. Фактически, ассемблер - это чуть более удобочитаемый машинный код, и ту работу, что обычно делает компилятор C, приходится делать программисту. Даже для одного и того же процессора для разных операционных систем одна и та же программа на ассемблере будет выглядеть по-разному в части взаимодействия с операционной системой. Именно поэтому трансляторы с ассемблера и С поставляются разработчиком операционной системы, а не разработчиком процессора.
@@z59h2 Почему вот это все: "мы должны учитывать структуру регистров процессора, поддерживаемые им типы адресации и много чего ещё" не делает компилятор для соответствующего процессора и операционной системы?
@@NationalVerrater потому что ассемблер - это язык очень низкого уровня, максимально близкий к программированию в машинных кодах. Он даёт полный контроль над железом, но взамен требует хорошо знать это железо. Тут аналогия такая: есть водитель и есть пассажир. Пассажиру нет необходимости знать, как управлять конкретным автомобилем, ему достаточно знать пункт назначения и сообщить его водителю. А вот водителю, чтобы туда доехать, нужно знать, как включить двигатель, как разгоняться и тормозить, как и когда переключать скорости, как поворачивать. Если вы пишете программу на ассемблере - то вы подобны водителю, непосредственно управляете работой вычислительной машины. Хотите быть пассажиром - есть Python, Java и ещё множество языков, которые избавляют от необходимости знать ужасные подробности из жизни железа. Но не бесплатно. Например, вы никогда не запустите программу на питоне на 16 килобайт ОЗУ. И никогда не сможете точно предсказать, в какой момент ваша программа на джаве затормозится, потому что включился сборщик мусора.
Есть разные инструменты для разных задач, требующие разных навыков от тех, кто их использует. На ассемблере пишут то, что должно быстро работать на _конкретном_ железе и не потреблять много ресурсов. Если такая задача не стоит - разумно выбрать другой, более подходящий инструмент.
@@z59h2 Спасибо. Но все-таки, мне не до конца понятно - сделать язык ассемблера универсальным, создав разные компиляторы для разных архитектур процессоров и операционных систем невозможно? Чтоб везде например mov оставалось мувом и ничем другим и всегда работало одинаково? Ведь, как я понял для С и Пайтона это делают. А они тоже в конечном счете управляют конкретным железом, которое может быть разным.
@@NationalVerrater можете считать таким универсальным ассемблером C, в нём даже можно указать, что переменная должна храниться в регистре процессора, а не в памяти.
Создать универсальный язык ассембера можно только в том случае, если вы создадите универсальную архитектуру процессора. Например, вы написали программу для процессора, у которого 16 универсальных 32-битных регистра, 32-битная шина данных и 36-битная шина адреса. И вам нужно перенести её на процессор, у которого 4 универсальных 16-битных регистра, 16-битная шина данных и 20-битная адресная шина. Можете написать алгоритм переноса?
И это мы ещё не затронули разную ширину команды и разные режимы адресации.
Посмотрел уже две лекции и пока вроде всё понятно более-менее, не пойму чего все говорят что С сложный?:)))
Он, скорее, сложен не в понимании, а в написании программ.
Разве стандарты С и С++ это не разные стандарты, С11 и С++11 например, это же разные документы? Стандарты си закончились на С18 вроде.
Да, там разные документы, а закончились они или нет, кто знает? ))
@@selfedu_rus имел ввиду последний на текущий момент, то что будет новый стандарт по Си, это не секрет, известно что работы над C2x ведутся.
Хотел изучить С и С++ для понимания низкоуровневых концепцийи для олимпиадного программирования а тут такой шедев с нуля
Ну вобще-то это не компилятор а транслятор. потому что он переводит код 1:1. Т.е. просто изменяет его вид ничего с ним по сути не делая. А компилятор это когда происходит изменение самого кода в форму понятную машине из формы понятной человеку. Т.е. это совершенно другой процесс. Поэтому процесс трансляции происходит оч быстро по сравнению с компиляцией, это оч сложный и ресурсоёмкий процесс. Хотя суть обоих одна создать выполняемый код. Но делают они это по разному. Не надо их путать.
душнила