Яндекс.Метрика

+7 (900) 082-25-06 ДЮТТ
+7 (904) 808-60-10 Кванториум Челябинск
+7 (3519) 33-07-37 Кванториум Магнитогорск
+7 (351) 369-08-13 Кванториум Златоуст
+7 (35163) 2-45-85 Кванториум Троицк
+7 (351) 394-33-03 Кванториум Копейск
+7 (35160) 2-25-76 Кванториум Пласт
+7 (35134) 4-22-81 IT-Куб Южноуральск
+7 951 806 3486 IT-Куб Сатка
+7 (3519) 33-08-08 IT-Куб Магнитогорск
+7 951-787-67-82 IT-Куб Кыштым
+7 (35146) 92 716 IT-Куб Снежинск
+7 9000 670 186 IT-Куб Миасс
+7 (351) 218-11-16 IT-Куб Челябинск
+7 (919) 111-20-76 IT-Куб Трехгорный
80-Я ГОДОВЩИНА ПОБЕДЫ В ВЕЛИКОЙ ОТЕЧЕСТВЕННОЙ ВОЙНЕ 1941–1945 ГОДОВ

Компьютер всегда прав?! Основы программирования...

Компьютер всегда прав или что такое программирование…

Что такое программирование? Почему многие ребята, занимающиеся не первый год, затрудняются дать ответ на этот вопрос? Об этом и о многом другом мы поговорили с Антоном Елохиным, наставником детского технопарка «Кванториум» в Челябинске.

— За свою практику преподавания я заметил интересную тенденцию — практически никто не понимает, что вообще такое программирование, даже ребята, которые довольно хорошо пишут код. Отчасти, они не задаются этим вопросом? Хотя понимание, что такое программирование, лично мне помогает не только в моменты, когда я пишу код, но и когда начинаю задумываться о вопросах бытия. Специалистов уровня «Линус Торвальдс» прошу меня не судить строго, сегодня мы говорим не только для гениев, поэтому некоторые моменты будут упрощаться, а некоторые отбрасываться.

Предлагаю начать например, с языка С++ (то, что описано здесь, скорее всего будет работать для любого другого высокоуровневого языка, однако в приведенных примерах подразумевается логика решения, которая используется именно в c++). С++ — очень простой язык, в нем есть условия, переменные и много всего другого прекрасного, что нас пока не интересует. Условия (как понятно из названия) — они проверяют что-то. Допустим, если мы говорим про ардуино, это может быть проверка, нажата кнопка или нет, прошло 4 литра воды или 200 и т.д. В зависимости от этого выполняются разные действия. Например, если условие истинно (что-то сработало, прошло достаточное количество воды), то мы включаем лампочку, запускаем какой-нибудь двигатель и т.д.

Но компьютер не знает, что в мире существуют какие-то «условия». Он только умеет считать. Точнее он умеет только складывать двоичные числа (то есть он даже не догадывается, что есть число, меньше чем 0 и больше чем 1 (на самом деле это тоже небольшая «ошибка», но не будем вдаваться в эти «процессоростроительные» дебри, мы не для этого здесь)).

Итак, что мы имеем? Когда мы пишем какие-то условия, происходит какая-то «магия» и компьютер, складывая числа, выполняет нашу работу. ЧТО??? И мы плавно подходим к такой теме, как «Абстракции» (или, как реже называют, «уровни сложности»). Что это за абстракции??

Смотрите, давайте пройдем эту дорогу снизу вверх (пропустим самый нижний уровень — работа транзисторов в процессоре, не об этом речь сегодня). На нижнем уровне у нас «булевая математика» — математика, в которой складываются числа не более 1 (говорил об этом чуть раньше). Потом идет какая-то программа-переводчик, которая, по сути, является сокращением некоторых операций, этот переводчик называется «ассемблер». 

Низкоуровневые языки — Ассемблер — уже позволяют писать немного проще. По сути, это какое-то упрощение для «машинного кода», о котором мы говорили немного раньше: все, что написано на ассемблере, переводится в машинный код. Этот язык дает возможность достаточно «близко» общаться с железками, поэтому он до сих пор часто используется для написания драйверов (кекстов в случае линукс и мак ос) и модулей системы. В любом случае ассемблер — это все равно довольно сложно, мы не «ворочаем» условиями, мы продолжаем «ворочать» числами, которые не понятны обычным людям. И тут к нам на помощь приходит другое сокращение. Поднимаемся на один уровень абстракции выше…

Высокоуровневые языки программирования… На этом уровне находятся практически все языки программирования — C, C++, Java, Kotlin, Swift, Python, JS… Хотелось бы внести небольшое уточнение: несмотря на то, что все названные мной языки входят в одну группу, языки C и C++ ниже всех остальных. Они переводят код в ассемблер, а все остальные языки обычно переводят код в C или C++ (имеется в виду те, о которых говорилось в примере). И уже на этом уровне происходит что-то понятное обычным пользователям, хотя я не рассказал еще кое-что — библиотеки, фреймворки, драйвера (или кексты)... 

Об этом я расскажу в следующий раз. Кроме того, тогда же мы подведем итог всему сказанному сегодня…

Продолжение следует

 

Написать сообщение

Оцените от 1 до 5

Вам понравилось? Расскажите о своем опыте своим друзьям в социальных сетях. Пусть им понравится тоже!

Подпишитесь на нашу рассылку

Подписаться

Остались вопросы по качеству обучения?

Вы можете задать их любым удобным для вас способом:

  • Заполнив форму
  • Написав в телеграм @Techkids74
  • Приемная +7 (351) 225-07-83 внутренний номер:102
  • Отправить на e-mail pismadir@robo74.ru

Приемная директора

Обратиться

Приемная +7 (351) 225-07-83 внутренний номер:102

Отправить на e-mail pismadir@robo74.ru

Уважаемые родители, законные представители, а также воспитанники Регионального центра технического творчества!

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

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

Ваше мнение очень важно для нас и будет учтено в дальнейшей работе.

Опрос для родителей и законных представителей

Опрос для воспитанников

Решаем вместе
Есть предложения по организации учебного процесса или знаете, как сделать школу лучше?

Наш сайт использует сервис "Яндекс.Метрика" и файлы cookies на вашем устройстве в соответствии с политикой обработки персональных данных и условиями использования сервиса "Яндекс.Метрика"

* Для запрета сбора данных вы можете использовать расширение для броузера "Блокировщик яндекс метрики"