Winderton / Написал несколько Языков Программирования, … — Transcript

Автор с 7-летним опытом объясняет основы языков программирования, их парадигмы и уровни, помогая лучше понять процесс обучения кода.

Key Takeaways

  • Языки программирования отличаются парадигмами и уровнем абстракции.
  • Код всегда должен быть переведен в машинный код для выполнения.
  • Понимание основ и особенностей языков облегчает изучение новых.
  • Практика важнее простого запоминания синтаксиса и теории.
  • Компиляция и интерпретация — ключевые процессы в работе языков.

Summary

  • Автор делится опытом изучения и создания языков программирования, объясняя их структуру и принципы.
  • Рассматриваются разные парадигмы программирования: объектно-ориентированная, функциональная, процедурная и скриптовая.
  • Объясняется разница между низкоуровневыми, среднеуровневыми и высокоуровневыми языками.
  • Подчеркивается важность понимания того, что код должен транслироваться в машинный код для выполнения процессором.
  • Обсуждается роль компиляции и интерпретации, а также примеры языков с разными подходами.
  • Автор приводит аналогии для лучшего понимания, например, разные способы добраться из точки А в точку Б.
  • Отмечается, что знание особенностей языков помогает быстрее осваивать новые.
  • Подчеркивается, что изучение программирования требует времени и практики, а не только теории.
  • Рассматривается опыт автора в коммерческой разработке и создание собственного интерпретатора.
  • Дается мотивация для новичков двигаться вперед, несмотря на сложности.

Full Transcript — Download SRT & Markdown

00:01
Speaker A
Каждый из вас либо уже изучает какой-то язык программирования, либо только начинает его учить: Java, Python, C#, и так далее. Любой вы их учите по книгам, по туториалам, по различным статьям. Мы все слышали популярные ролики "Как выучить язык программирования за час". У меня есть немного времени, и сейчас я постараюсь вам доступно объяснить, что такое язык программирования, с чего он состоит, общие принципы и так далее.
00:16
Speaker A
немного времени и сейчас я постараюсь вам доступно объяснить что такое язык программирование с чего он состоит общие принципы и так далее сейчас июль 2019 года я как программист имею 7 лет опыта плюс-минус 2 из которых это коммерческий она на моменты работы над
00:29
Speaker A
Сейчас июль 2019 года. Я, как программист, имею 7 лет опыта, плюс-минус 2, из которых это коммерческий опыт работы над проектами в тир-1 компаниях, где мы занимаемся полноценной и независимой разработкой систем управления базами данных, СУБД, ДДМС. И сразу для тех, кто понимает, то система настолько независимая, что у нас свой ДДЛ и протокол для работы с данными.
00:43
Speaker A
это полностью переработанный и доработана и где ди би си тех кто не понимает то я немножко знаю .
00:49
Speaker A
Это полностью переработанный и доработанный DBC. Тем, кто не понимает, я немножко объясню.
01:06
Speaker A
далее и тому подобное почему все так как это работает и почему это представлено в таком виде либо не объясняется ли объяснять или вы объясняется криво или косвенно надела вообще по факту даже не в этом новичка основная проблема тут
01:16
Speaker A
Итак, все, наверное, видели ролики "Как выучить язык программирования за час", где авторы сразу начинают рассказывать о том, что в языке есть данные, циклы, массивы и функции, что язык объектно-ориентированный, динамический, интерпретируемый, компилируемый, многопоточный со сборщиками мусора и так далее, и тому подобное.
01:27
Speaker A
таком программирования все сводится к тому что человек вроде как сидит и думает блин я же все это уже знаю и видел все эти циклы переменные типа данных массивы и функции почему я до сих пор не могу сесть и что-то написать эти
01:37
Speaker A
Почему все так? Как это работает и почему это представлено в таком виде? Либо не объясняется, либо объясняется криво, либо косвенно. На деле, по факту, даже не в этом новичка основная проблема.
01:54
Speaker A
отличие заключается в том что там разные парадигмы или подход к тому как вы пишете код можно привести аналогию следующим образом представьте человека который пытается добраться из точки а в точку б и сделать это можно несколькими путями на поезде и на самолете пешком не
02:07
Speaker A
Заключается в том, что человек просто задает вопросы: почему все представлено в таком виде, в каком оно есть? И неужели я действительно должен все это заучивать? Для тех, кто уже что-то знает и программирует не первый день, не знакомится уже с третьим или четвертым языком программирования, все сводится к тому, что человек вроде как сидит и думает: "Блин, я же все это уже знаю и видел все эти циклы, переменные, типы данных, массивы и функции. Почему я до сих пор не могу сесть и что-то написать?"
02:18
Speaker A
тоже несколько объектно-ориентированный функциональный процедурные скриптовой и так далее такие языки как си плюс плюс или java script например включает себя сразу несколько парадигма этих которые вы можете комбинировать в то время как какая-нибудь java летишь варп форсит или заставляет вас по гомеру и только в
02:32
Speaker A
Эти обе мысли постараюсь раскрыть в течение всего ролика. У каждого языка есть какой-то набор особенностей, которые объединяют. Поняв их, будет гораздо проще осилить уже следующий язык программирования либо понять первый, само собой.
02:48
Speaker A
самую основу языков есть уровне то есть низкоуровневые языки вроде assembly с какой-то средний уровень вроде 7 plus и высоко вороне языке питон java скрипта java и так далее ключевое отличие между уровнями в том что чем ниже уровень тем код более
03:01
Speaker A
Да, все языки чем-то отличаются, и в первую очередь это отличие заключается в том, что там разные парадигмы или подходы к тому, как вы пишете код. Можно привести аналогию следующим образом: представьте человека, который пытается добраться из точки А в точку Б, и сделать это можно несколькими путями — на поезде, на самолете, пешком, не успеть. То есть результат один и тот же, а способы разные.
03:15
Speaker A
должен транслироваться или компилируется интерпретировать то есть перевести с одной формы с его изначальной в самую низшую ту который может понять машина или процесса это называется машинным кодом мы не можем позволить себе программировать сразу на машинном языке почему потому что все программе нас идет
03:31
Speaker A
С программированием то же самое. Представьте, что вы пишете программу, где А — это когда программа вообще не работает, а Б — полноценно работает. Так вот способов написать эту программу тоже несколько: объектно-ориентированный, функциональный, процедурный, скриптовый и так далее.
03:42
Speaker A
очень быстро с точки зрения именно раза axapta то берем python же 1 клип может быть джаву и если кто-то из вас занимается программированием более серьезно то вы как и многие другие люди кто занимается вообще изучение компьютер сайт должны
03:54
Speaker A
Такие языки, как C++ или JavaScript, например, включают в себя сразу несколько парадигм, которые вы можете комбинировать, в то время как какая-нибудь Java или C# заставляют вас программировать только в одной парадигме.
04:06
Speaker A
раз написать чем в сто раз это почитать или посмотреть вот это вот один из моих старых проектов написание языка программирования который состоит из интерпретатора парсера и lexer а к кому интересный код будет в описании можете ознакомиться то есть резюме
04:20
Speaker A
У каждого из этих подходов есть свои плюсы и минусы, но ваша задача просто понять, что эти подходы вообще есть и что код может писаться по-разному.
04:35
Speaker A
квасить собой постоянно переводчика то есть вы что-то говорите ваш переводчик тут же это переводит и доносит до того кому вы это говорите соответственно как его зид собой переводчика интерпретатор этого языка должен встраиваться в среду где вы запускаете ли будете запускать эту программу здесь
04:49
Speaker A
Интерпретируемый или компилируемый язык, устройство компиляторов можно изучать годами, поэтому скажу лишь самую основу.
05:07
Speaker A
код который боится байт кодом и работы за счет виртуальной машины которые уже в свою очередь в режиме интерпретатора превращает этот байт код код конкретного железа на котором и запускает свою программу если вам все это нравится то слегка заговорю то просто ставьте лайки
05:20
Speaker A
Языки есть на уровне, то есть низкоуровневые языки вроде Assembly, средний уровень вроде C++, и высокоуровневые языки Python, JavaScript, Java и так далее.
05:39
Speaker A
эта железка то есть сидели люди и такие думали как этот процессор примерно будет работать и как примерно он будет реализован и все это записали это какой-то лист бумаги при плюс минус например процессор будет уметь складываете извлекать корень вычитать и
05:52
Speaker A
Ключевое отличие между уровнями в том, что чем ниже уровень, тем код более приятен для процессора, для машины, но тем менее читабелен он для человека, и наоборот.
06:07
Speaker A
процессор имеет программный интерфейс доступ к которому можно получить как раз таки с помощью языков программирования и пользоваться всеми этими вещами вроде сложение вычитание работ с видеокартой и так далее и тому подобное за кулисами в это время происходит куча различного
06:22
Speaker A
Сейчас вам нужно понять, что неважно, на каком уровне вы пишете — Assembly, C++, Python и так далее — код из начальной формы языка, на котором пишете, должен транслироваться или компилироваться, интерпретироваться, то есть переведён с одной формы, с его изначальной, в самую низшую, ту, которую может понять машина или процессор. Это называется машинным кодом.
06:36
Speaker A
полному новичку это не простая задача это годы опыта поданные в сжатом формате ваша задача просто сейчас двигать себя с места и наматывать себе на ус из вам тяжело то вы двигаетесь в правильном направлении и на фоне того что некоторым
06:49
Speaker A
Мы не можем позволить себе программировать сразу на машинном языке, почему? Потому что все программы сводятся к тому, что просто запоминать последовательность нулей и единиц.
07:04
Speaker A
которые работают либо можно пойти еще дальше и организовать полноценную связь формате ученик и учитель элемент три студента не знаю как хотите где я под конкретного человека учитывая ваши возможности желания навыки background и так далее напишу вам путь от а до я как
07:19
Speaker A
Если вам нужен полноценный контроль вашей программы и сделать так, чтобы все работало быстро на любой железяке, там берем C++, Assembly.
07:38
Speaker A
расскажет про синтаксис языка для работы с типами данных но не говорят что такое данное зачем это зачем это все нужно вообще программирование это работа с данными просто запомнить эту мысль и она вам поможет обработка данных трансформации и так далее и чтобы эти
07:53
Speaker A
Если нужно сделать так, чтобы программа просто работала, например, на карте, какой-то прототип очень быстро с точки зрения именно разработки, то берем Python, JavaScript, может быть Java.
08:08
Speaker A
подобное и кстати вот эти вот 2 группы типа в данных то из пользовательские типы это так называемые коллекции по которые примут регулярно спрашивать на собеседованиях то есть понимание того как работает организации данных как с ними работать важный момент и вопрос
08:22
Speaker A
И если кто-то из вас занимается программированием более серьезно, то вы, как и многие другие люди, кто занимается вообще изучением компьютерных наук, должны будете написать свои компиляторы. Тут даже выбора нет.
08:36
Speaker A
месси один набор данных для геометрии для искусственного интеллекта для звука для графики так далее тому подобное с другой стороны в виде java script другой абсолютно другой сет из данных событий в браузере ответы сервера координатах думы все так далее тому
08:53
Speaker A
Только написав свой компилятор полноценно, поймете, из чего он состоит и как примерно вообще работает и запрограммировать это.
09:05
Speaker A
трансформации с одной формы другую и самый простой пример кто мне приходится с головы ты когда пользователь нажимает такую кнопку на клавиатуре а на экране происходит изменение картинки то есть нажатии кнопки это один набор данных изменений на мониторе это другой набор данных то есть
09:21
Speaker A
Как знаете пословицу: лучше один раз увидеть, чем сто раз услышать. Это как лучше один раз написать, чем сто раз это почитать или посмотреть.
09:37
Speaker A
другого сортировка есть еще языки и не типизированные вроде питона где типа данных есть но не скрыто от программиста чаще всего это делается для простоты и удобства разработки очевидным от иметь какие-то плюсы и так и свои минусы но объяснение всего этого глубже это уже за
09:52
Speaker A
Вот это вот один из моих старых проектов — написание языка программирования, который состоит из интерпретатора, парсера и лексера. А кому интересен код, будет в описании, можете ознакомиться.
10:13
Speaker A
плюс-минус одинаково потому что это инструкции которые заложены в ваш процессор во время его создания помните просто доступ к этим инструкциям из-под разных языков и компиляторов соответственно разной еды свою практику работаю с компиляторами написал несколько реализаций для работ в контру
10:29
Speaker A
То есть резюме: в первом случае вы пишете код на компилируемом языке, то есть вроде C, где ваши исходники превращаются в машинный код, который может напрямую запускаться вашим процессором и работать быстро.
10:46
Speaker A
и при изучении любого языка x вам просто нужно смириться с его синтаксисом по работе с этими инструкциями вот и все вот то что еще сказал и плюс еще несколько pitch вроде операторов и тишину функций это и есть тот самый стандартный набор всех языков
11:03
Speaker A
В случае же с интерпретируемыми языками вроде Python это, знаете, как с собой постоянно носить переводчика, то есть вы что-то говорите, ваш переводчик тут же это переводит и доносит до того, кому вы это говорите.
11:14
Speaker A
самого спустился джавы просто говорится стык ihip но не говорится что это такое как это работает и где-то находится вот где то пол не настолько им flow нас есть вопрос там как человек задает что такое хип и стек и где они находятся и там по
11:28
Speaker A
Соответственно, как его носить с собой? Переводчика, интерпретатор этого языка должен встраиваться в среду, где вы запускаете или будете запускать эту программу.
11:42
Speaker A
операционной системы вам поможет ей туда закинуть то есть добавить в оперативную память и выделит ей определенный layout или сектор из памяти который будет разделён на несколько сегментов это как знаете в гардероб у вас дома где есть там отдельные полка для штанов там отдельный
11:56
Speaker A
Здесь понятно, да? Возить с собой переводчика и встраивать в среду.
12:09
Speaker A
и переменной с функцией то есть параметры то что находится внутри функции и хип думайте об happy как это все остальное где хранятся ваши глобальные переменные объекты и тому подобное все об этом говорить и дальше не будут по той причине что дальше вся
12:22
Speaker A
Какие-нибудь Java и C# работают по смежной схеме, то есть они и компилируются, и интерпретируются, только в отличие от какого-нибудь C.
12:37
Speaker A
это реализовано то хотел хотел сделать ролик на 6 минут но в итоге получилось то что получилось задача этого ролика наверное была в том чтобы показать вам шаблон последовательность модели и архитектуры того как примерно устроены языки программирования как они работают
12:54
Speaker A
Когда вы взялись компилировать вашу программу, то она превратилась в некий промежуточный код, который называется байт-кодом, и работает за счет виртуальной машины, которая уже в свою очередь в режиме интерпретатора превращает этот байт-код в код конкретного железа, на котором и запускает свою программу.
13:10
Speaker A
компилятором поэтому их реализации сильно разнятся в комментах напишите просто вам было большего интересный не забудьте поставить лайк чтобы помочь видео будут толкнуть этот ролик куда-то подальше вам было сложно [музыка]
Topics:язык программированияпарадигмы программированиякомпиляцияинтерпретациямашинный коднизкоуровневые языкивысокоуровневые языкипрограммирование для новичковопыт программистаобучение программированию

Frequently Asked Questions

Что такое парадигмы программирования и почему они важны?

Парадигмы — это разные подходы к написанию кода, например, объектно-ориентированная или функциональная. Понимание парадигм помогает лучше структурировать программы и выбирать подходящий язык.

Почему нельзя сразу писать программы на машинном языке?

Машинный язык — это последовательность нулей и единиц, которая очень сложна для понимания и написания человеком. Поэтому используют языки программирования, которые транслируются в машинный код.

Чем отличаются компилируемые и интерпретируемые языки?

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

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →