15 подписчиков

Введение в программирование. Языки программирования.

После долгого выбора учебного заведения, я не первого раза, с помощью Госуслуг попал на обучение в одно из таковых. Программу обучения выбрал на сайте Университет 20.35 по направление программирование в рамках проекта «Цифровые профессии 2021».

Сегодня вкратце расскажу о первом семинаре «Введение в программирование».

Когда люди только начинают учить язык программирования, они считают, что программирование целиком и тот язык программирования, который учат сейчас — одно и то же. Это приводит к следующему: вы научились писать на одном языке и думаете, что всё программирование такое, а когда начинаете писать на другом языке, то повторяете принципы первого языка.

Для джавистов есть даже такое обидное выражение: «Java головного мозга». Потому что те, кто начал с языка программирования Java, продолжают писать так, как было в первом языке. Это свойственно не только для Java, но и практически для любого другого языка. Поэтому важно понимать, что язык программирования и программирование целиком — разные вещи.

Например, на слайде, где изображена лягушка иностранного гражданина, указано слово «риббит». Так издаёт звуки лягушка, по мнению англичан. То есть у них они не квакают, а говорят «риббит». Есть ещё «бреккеке» и «уп-уп» — предположительно, так говорят лягушки в Индонезии. Вы можете выполнить одно лёгкое упражнение — набрать в Google «как квакают лягушки в разных странах» и посмотреть множество примеров, где люди пытаются подражать лягушкам. Однако важно понимать, что лягушки на самом деле квакают одинаково, плюс-минус выходит один и тот же звук. Это люди интерпретируют его по-разному. Возвращаемся к тому, что есть смысл и звуки, которые издают лягушки, петухи и другие животные, а есть интерпретация, средства донесения этого смысла, используемые людьми в разных странах. Это связано со спецификой наблюдения за животными в разных странах, с особенностями строения языков — то, как люди разговаривают и произносят звуки. Так или иначе, мы получаем некоторое искажение, интерпретацию смысла.

Таким образом, есть смысл и средства донесения смысла.

Однако не существует единственного хорошего языка. Нет какого-то языка, который идеально подходит для всего. У каждого языка есть какая-то сфера применения, в которой он проявляет себя лучше, чем остальные. Исторически сложилось, что русский язык хорош для поэзии, прозы, написания романов. Но если мы говорим о немецком языке, то принято считать, что он хорош для юриспруденции. Этот язык более точный, он не предполагает нескольких смыслов. Да, там предложения размером с абзац, но в юриспруденции это допустимо, и двойных толкований нет. Английский же язык подходит для математики и программирования. В процессе у нас возникает понимание, что что-то не так. То, что мы написали на русском языке, кажется для нас очевидным. На самом деле, с точки зрения математики, всё далеко не очевидно и может быть интерпретировано по-разному. В этом смысле английский язык более строгий. И для математики, и для программирования он подходит гораздо лучше, чем русский язык. Однако важно понимать, что основные публикации на научные, а именно: математические, темы проходят на английском языке. У этого есть несколько причин. Одна из них — английский язык более строгий.

Мы поняли, что существует множество различных языков. Остаётся понять, на каком же языке нам надо говорить в тот или иной момент.

Представьте, что у вас есть знакомый шеф-повар, которому вы решили помочь. И он просит вас снять кожицу с помидора. Если повар будет пользоваться профессиональным языком, на котором он общается на кухне в ресторане, то скажет: «Бланшируй томаты». Для людей, хорошо знакомых с процессом приготовления пищи, кто уже работал на кухне, будет всё понятно. Но если вы увидели слово «бланшируй» в первый раз, то можете не понять, что же надо сделать. Исходя из того, кто выступает слушателем информации, которую хотите донести, надо выбирать правильный язык. Если мы хотим, чтобы с помидоров сняли кожицу, потребуется сказать несколько по-другому: «Сделай надрезы на помидорах, опусти их на несколько минут в кипящую воду, потом достань и положи в холодную воду. После этого через несколько минут достань помидоры из воды и сними с них кожицу». Таким образом, поймёт обыватель. А если мы говорим о шеф-поваре на кухне, который общается с опытными сотрудниками, он скажет: «Бланшируй томаты».

Это относится ко всем сферам. Если мы говорим о математике и при этом пытаемся объяснить то, что делаем, не математику, писать квантово смысла нет. А если говорим о нотной грамоте и хотим ей пользоваться, надо понимать, что человек, которому мы это объясняем, знает её.

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

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

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

Если набрать код на языке Python, он заработает. Однако на языке Java код в таком виде работать не станет. Просто Java немного более сложный язык, он требует дополнительных записей.

Например, вы написали для компьютера какую-то программу, записали решение, алгоритм, и теперь хотите понять, что компьютер будет делать. Можете поставить себя на его место и попробовать выполнить все действия самостоятельно. То есть возьмите ручку или карандаш, готовый или собственный алгоритм и попытаетесь по этому алгоритму пройти. Если возникнут какие-то сложности, значит, в алгоритм надо внести изменения.