Программный код
Программный код — это текст, написанный на языке программирования. Обычно его пишут программисты, и этот процесс называется «кодинг». С помощью кода создают программы: отдают компьютеру команды, которые он выполняет.
«IT-специалист с нуля» наш лучший курс для старта в IT
Когда человек пишет код, про него говорят, что он кодит. Чаще всего этот термин применяют по отношению к программистам, которых еще называют кодерами.
Код программы изначально воспринимается компьютером как простой текст. Чтобы он заработал, нужно передать его специальному инструменту — компилятору или интерпретатору нужного языка. Тот преобразует код в вид, понятный машине. После этого его можно будет запустить.
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам
Для чего нужен программный код
Компьютер не понимает человеческие языки. Но и программный код на современных языках программирования ему непонятен: его нужно компилировать или интерпретировать, чтобы он заработал. Возникает вопрос: почему тогда не писать программы на человеческом языке. Но так не получится — код все-таки нужен. Попробуем объяснить простыми словами, почему.
Человеческие языки сложные. Практически невозможно создать компилятор, который переводил бы человеческие естественные языки в понятный компьютеру вид. В программировании есть область их распознавания, которая называется NLP, но она очень сложная и не способна распознать все. Поэтому человеческий язык в качестве языка программирования просто не подойдет.
Код помогает быстрее и лаконичнее отдавать команды. Представьте, что вам нужно отсортировать большое количество данных. Описать задачу обычным текстом будет сложнее, чем написать одну или две строчки кода.
Код понятен и структурирован. Современные языки программирования — высокоуровневые. Это значит, что их уровень абстракции выше, ближе к человеческому пониманию, чем к машинному. Поэтому код на них нужно компилировать или интерпретировать. Исходный «язык машины» — длинные машинные коды из нулей и единиц, и писать на них программы человеку практически невозможно. Будет совершенно непонятно. А по программному коду видно, что он делает — его синтаксис приближен к человеческому пониманию.
Языки программирования служат своеобразным компромиссом между сложными для человека машинными кодами и непонятным для компьютера человеческим языком.
Станьте Fullstack-разработчик на Python и найдите стабильную работу
на удаленке
Как выглядит программный код
Это набор строчек на языке программирования. Языки обычно приближены к английскому: слова из него заимствуются для обозначения команд. По структуре код состоит из команд, связей между ними, различных операторов и знаков препинания, а также переменных и значений. Большие группы команд, которые выполняют конкретное действие, собираются в блоки — функции.
В конце каждой строчки в большинстве языков ставится точка с запятой. Она помогает компилятору или интерпретатору понять, что команда закончилась. Но это не всегда так: например, в Python вместо точки с запятой используется перенос строки.
На картинках с кодом, которые вы наверняка видели в сети, он разноцветный. Это происходит, потому что специальные средства для программирования подсвечивают разные элементы его синтаксиса для наглядности.
Разбираемся с терминами: каким бывает код
Это не классификация — просто список терминов, которые часто можно услышать в контексте написания кода. Они могут быть похожи, но означают разное.
Исходный код, или сурс, source code — текст программы, который написал разработчик. Может быть открытым или закрытым. Открытый исходный код может просмотреть кто угодно. Закрытый или спрятан от пользователей, или вообще отсутствует в готовом программном продукте — вместо него используются исполняемые коды.
Исполняемый код — код, который может исполнить программа. Иногда противопоставляется исходному. Чаще всего так называют код, который получился в результате компиляции. Компилятор переводит исходный код в машинный, который сможет исполнить операционная система, — на выходе получается исполняемый код.
Чистый код — это понятие другого порядка, которое, скорее, относится к правилам хорошего тона для разработчиков. Чистым называют код, который хорошо написан, не слишком многословен, понятен и лаконичен. Такой код легко прочитать другим разработчикам, а не только автору.
Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
В чем пишут код
Языки программирования устроены так, что код можно написать в любом редакторе, даже в «Блокноте». Компьютер в таком случае воспримет его как текст, а для запуска нужно выполнить дополнительные действия: сохранить файл в нужном формате, отправить его компилятору или интерпретатору. Если это код на JavaScript, проще всего запустить его в браузере. А если код на внутренних языках операционной системы — в консоли.
Чаще всего программисты пишут код в специальных программах: средах разработки, они же IDE, и редакторах кода. Среда — более мощный инструмент со множеством дополнительных функций. Код можно запустить прямо из нее одной кнопкой. Редактор проще, в нем легче разобраться, и он менее ресурсоемкий.
Специальные средства для написания кода умеют больше, чем текстовые редакторы. Они подсвечивают синтаксис и делают код разноцветным, чтобы разработчику было понятнее. Они помогают находить неудачные места, отлаживать программы, выводить данные и делать много других вещей. Это удобные и наглядные инструменты.
Новичкам мы рекомендуем начать с редакторов кода или IDE. Так удобнее писать и сложнее запутаться.
Из чего состоит код
Набор правил, по которым пишется код, называется синтаксисом. Синтаксис поясняет, какие команды можно использовать, какой должна быть структура кода, как правильно расставлять связи, передавать аргументы и использовать разные операторы. Его можно сравнить с правилами русского языка.
Синтаксис языка программирования ничего не говорит о смысле программы. Он отвечает только за правильность написания.
Код состоит из команд, связей между ними и других элементов синтаксиса. Вот какими они бывают.
Сначала договоримся об общих понятиях.
- Командами мы будем называть непосредственные указания для компьютера, что сделать. Например, напечатать слово: print(“слово”).
- Связями будем называть разные элементы, связывающие команды друг с другом. Чаще всего это знаки пунктуации и различные операторы.
А теперь рассмотрим компоненты более подробно.
Переменные. Когда пользователь оперирует какими-то значениями по нескольку раз, ему бывает нужно куда-то их записать. Для этого в языках программирования существуют переменные. У переменной есть имя, тип и значение.
- Имя показывает, как обращаться к переменной. Например, если мы объявили a = 5, то переменная называется a.
- Значение – это данные, которые лежат в переменной. Для названной выше переменной a это число 5.
- Тип данных показывает, какой вид информации находится в переменной: число, буква, строка или что-то более сложное. Есть простые и составные типы данных. В первых хранятся примитивные значения вроде чисел и строк, во вторых – сложные конструкции из нескольких примитивов или даже функций.
Работа с типами данных в разных языках программирования – тема для отдельной статьи. Они могут сильно различаться: где-то тип надо указывать явно, где-то нет. В некоторых языках можно сравнивать или складывать данные разных типов, в других нельзя. Вариаций много, поэтому стоит сразу смотреть, как устроены типы в выбранном вами языке.
Константы. Так называют переменные, значение которых нельзя изменить. Оно задается раз и навсегда. В некоторых языках программирования, например в функциональных, все переменные по сути являются константами.
Ключевые слова. Ключевые слова — это особые зарезервированные слова, которые используются для технических целей. Например, значения True и False, «истинно» или «ложно». Зачастую эти слова — не команды: они рассказывают компьютеру о каком-то значении или формате. Зарезервированными словами нельзя что-то назвать. Например, в программе не может быть переменной, имя которой True.
Станьте веб-разработчиком и найдите стабильную работу на удаленке
Идентификаторы. Так в информатике называются имена, которые программисты дают сущностям в коде. Например, имя переменной — это ее идентификатор. А если пользователь захочет создать какую-то функцию, то он даст ей имя. Оно тоже будет идентификатором.
Значения и литералы. Литералы еще называют безымянными константами. Это значения какого-то типа, которые используются в коде, но не привязаны к переменной. Они не меняются, ведь их никуда не записывают — это не переменные. Изменить литерал можно только одним способом: переписать исходный код.
Например, когда мы пишем print(“слово”), строка «слово» — это литерал. Нам не нужно записывать ее в переменную, но и обойтись без нее не получится. Она остается в коде как безымянная константа.
Знаки пунктуации и символы. Символы чаще всего бывают связями. Иногда — операторами. Это «знаки препинания» для языка программирования: точка, двоеточие, запятая, точка с запятой и так далее. Они помогают структурировать программу. Например, скобки () после функции обрамляют данные, которые нужно передать ей при запуске. А сами данные перечисляются через запятую, чтобы отделить одно от другого.
Правила пунктуации опять же различаются в зависимости от языка. Но чаще всего в языках программирования можно встретить круглые, квадратные и фигурные скобки, запятые и точки с запятой, а также точки и кавычки. Среди других распространенных символов — двоеточие, значок ^, вопросительный знак, вертикальная или косая черта, процент и многое другое.
Операции, операторы и операнды. Не пугайтесь. Операции — это определенные действия с данными: сложение, вычитание, сравнение и так далее. Причем речь не всегда идет о действиях в математическом смысле — это просто хороший наглядный пример.
Операции состоят из операндов и операторов.
- Операнд – это переменная или литерал, что-то, с чем мы будем работать.
- Оператор – это символ или слово для обозначения действия.
Например, в операции a + 2 переменная a и литерал 2 будут операндами, а знак + оператором.
Функции. Иногда набор команд бывает нужно объединить в один блок, чтобы потом вызывать его как одну большую команду. Это возможно. Такие блоки в программировании называются функциями.
У функции чаще всего есть имя (исключения встречаются, но редко) и список аргументов — данных, которые передаются ей при вызове. Когда программист вызывает функцию, она выполняет заложенные в ней действия.
Встроенные команды языков программирования — обычно тоже функции. Просто они изначально заложены в язык. Но программист может написать и свои. Более того: разбивать код по функциям — хорошая практика, потому что это улучшает читаемость и гибкость программы.
Дополнительные наборы функций для каких-то задач называются библиотеками. Они тоже бывают встроенными, уже существующими в языке, и пользовательскими. Чтобы использовать функции из библиотеки, ее нужно подключить к программе, а если библиотеки нет на компьютере, сначала скачать.
Комментарии. В большинстве языков есть возможность писать комментарии — текстовые блоки, которые ничего не делают и нужны для удобства разработчика. Они выделяются специальными символами. Компилятор или интерпретатор игнорирует комментарии и ничего с ними не делает.
Основных назначений у комментариев два:
- документировать и объяснять. Например, разработчик может оставить комментарий около сложной функции и пояснить в нем, что она делает;
- временно скрывать участки кода. К примеру, человек превращает какую-то строку кода в комментарий, чтобы временно исключить ее из выполнения программы.
Если вы хотите профессионально заниматься программированием, записывайтесь на наши курсы. Мы будем рады помочь вам получить новую профессию.
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.
Что такое код и почему компьютеры все еще не пишут сами?
Что говорят программисты, когда их просят дать определение своей деятельности и намекают, что “машины справились бы быстрее”? Мы собрали ответы пользователей Quora, и вот что у нас получилось.
Вопрос:
— Почему компьютеры все еще не заменили программистов, если они быстрее, умнее и не ошибаются?
Ответы:
— Не поверите, ваш вопрос изучен до тошноты, и продолжает изучаться.
Давайте рассмотрим ситуацию так: на самом деле, много механической работы, которую должен выполнять программист, уже делает компьютер (хотя некоторые все еще используют C++, вместо того, чтобы написать скрипт в одну строчку). То есть (в идеале), мы не делаем то, что повторяется много раз — машины делают это за нас.
Таким образом, частично мы уже на этом пути. С другой стороны, передать кодинг компьютеру мы не можем сейчас, и не сможем в ближайшем будущем.
— Алан Купер отлично высказался по этому поводу:
Далекие от программирования люди видят в нем только механический, инженерный процесс. На самом же деле, это исключительно вариативная и творческая деятельность.
— Я бы хотел рассмотреть вопрос немного с другой стороны. Программирование решает 5 задач:
- Создание новой программы или функции
- Расширение функциональных возможностей уже существующих программ
- Исправление того, что не работает
- Реализация известного (существующего) шаблона проектирования в простой ситуации
- Реализация известного паттерна в вызывающе сложной задаче.
А теперь способности, которыми должен обладать исполнитель (компьютер):
- Понимать задачу
- Видеть пути реализации (знать возможности)
- Быть в состоянии определить, какое решение будет оптимальным для конкретной задачи
- Иметь возможность осуществить решение
Сейчас понять новую задачу (ее цели, проблемы, которые нужно решить) могут только люди. Для того чтобы компьютер мог понимать людей — их особенности, потребности, проблемы, которые могут возникать у них в процессе работы, он должен обладать более высоким уровнем осознанности, чем может сейчас. И я говорю не об искусственном разуме, а просто о больших по сравнению с нынешними возможностями. Например, сделать заключение на основании недостаточного количества данных путем поиска дополнительных во внешней среде или среди имеющихся.
Это достаточно сложный функционал, который, возможно, будет реализован, но это сомнительно.
Компьютер может написать код, используя достаточно сложные существующие шаблоны проектирования, и даже, в какой-то мере, удовлетворить некоторые пользовательские требования — это метапрограммирование. Есть задачи, которые могут решать только превосходные профессионалы, а написать средство для решения таких задач — особенно сложно.
— Думаю, что с появлением беспилотных автомобилей мы должны признать: компьютеры уже на полпути к окончательному превосходству над нами. Что касается "компьютеров, способных программировать хотя бы на уровне среднего разработчика", то задача эта отнюдь не простая, но вполне реальная.
Не поверите, машины УЖЕ программируют за нас. LINQ — достойный пример из относительно современных: наш код становится все ближе и ближе к словесным формулировкам, так что ваш вопрос отчасти уже решен.
Тем не менее, обрабатывать абстрактные запросы и понятия они пока не умеют, как и самостоятельно приобретать новые знания, и вряд ли мы это увидим в нашей жизни.
— Отвечу вопросом на вопрос: а зачем для этого нужны люди?
Ответ в одном слове: творчество. Люди могут смотреть на одну вещь настолько по-разному! И, казалось бы, все решения логичны, но все они уникальны. Люди великолепны тем, что могут выполнить задание, данное в виде смутного описания. То есть, они могут понять ее — это уже неплохо, — и, более того, найти рабочее решение и воплотить его в жизнь.
А теперь представьте, каким должен быть компьютер, который решит задачу с требованием "Провести два перпендикулярных друг другу перпендикуляра к прямой".
Человек обязательно что-нибудь придумает.
— Хм, если появится специальная программа, которая будет писать глючный код, то да — компьютер сможет заменить человека.
Я всегда думал, что идеальный код возникает только в процессе работы.
— Почему писатели все еще существуют? Неужели нельзя создать супермашину, которая будет писать книги лучше (см. Лем 'Электрибальд Трурля')?
Просто компьютеры — это инструменты, как молоток или печатная машинка. Почему писатели все еще существуют? Потому что машина набирает текст, а писатель создает историю.
Компьютер, который использует программист — это такой же инструмент, работающий с числовыми данными. Если его разобрать, оттуда не вылетит магический шар, излучающий логику.
— Да-да, это же тот самый вопрос, который частенько задают CEO, продакт-менеджеры и менеджеры по продажам: "Почему я не могу просто дать команду компьютеру вместо того чтобы иметь дело с вечно недовольными программистами?". Программист должен понять смутную и непонятную "большую идею" управленца (даже если два человека хотят диаметрально противоположных вещей) и "объяснить" ее компьютеру в виде кода. А вот если все начнут мыслить как программисты, мы сможем продолжить обдумывать эту идею.
— Я хочу посмотреть, как он будет сам себя тестировать! Куда подать заявку?
— Если вы создадите программу, которая сможет генерировать другой софт на основании четких вербальных требований, вы обнаружите, что 99,99% людей не могут четко и недвусмысленно эти требования ставить. Весомая часть работы программиста — выслушивать и пытаться понять.
— Зачем нам нужны водители, разве автомобиль не справится с управлением лучше?
Все автоматизируется, и будет автоматизироваться до тех пор, пока человек существует как вид — это неизбежно. Другой вопрос, что для нас это стало обыденно до незаметности, и мы продолжаем мечтать. Допустим, вы решили воспользоваться экспериментальным беспилотником. Ваши действия сведутся к единственной команде (точка прибытия) — будет ли это означать, что автомобиль “едет сам”, и вы не участвуете в управлении? Нет. Вы все еще водитель, который пользуется продвинутой автоматизированной системой, но все еще управляет ею.
Мы не замечаем постепенное упрощение жизни сейчас, как и не будем замечать его позже. То же касается и программирования.
С одной стороны, мы уже сильно продвинулись по пути автоматизации. Пример — те самые экспериментальные автомобили. С другой, хотя процесс написания кода уже тоже упрощен IDE, фрейморками и т.п., мы пока не можем доверить компьютеру самому решать, с какими именно проблемами работать, и как. И вряд ли доверим в ближайшее время: система принятия таких решений — это уже искусственный интеллект.
Вопрос:
Что вообще такое код и программирование?
Ответы:
— Постараюсь ответить. Допустим, вы играете в видеоигру. Чтобы она не закончилась, и вы могли продолжать играть, вам нужно совершать некие действия — "убивать боссов", решать головоломки и просто продолжать идти.
Я вижу свою профессию как решение логических задач творческого характера. В кодинге достаточно много головоломок, и часто они требуют нестандартного видения для того чтобы найти ответы, которые лежат за рамками привычного игрового поля.
И да, есть вторая сторона — дружба с браузером и умение составлять запросы поисковикам 🙂
Все это работает вместе примерно как симфония. Символьная. Это и есть кодинг.
— Программирование — это удивительная область знаний, в которой поиск ошибки — еще большее таинство, чем написание кода: почему я могу подключиться к трем другим SFTP-серверам, но только не к этому? Почему, черт возьми, копировать-вставить не работает в этом WebView?! Или у вас веселый марафон с загрузкой приложения в AppStore?
И, фактически, все, что вы делаете, сводится к поиску и устранению багов (и попутному созданию новых). Иногда я ловлю себя на мысли: "А может, я просто пишу ошибки?"
— Это сложная, но интересная логическая игра против начальства 🙂 Вы просто собираетесь вместе с командой, чтобы решить проблему. Ищете решения, и находите наиболее оптимальный путь из возможных (иногда оказывается, что был и более оптимальный, но это другая история). Затем вам нужно идти, придерживаясь выбранного пути с тем условием, что начальник, вступивший в игру, будет подкидывать новые "ловушки" — например, в виде правок к ТЗ.
А еще у этой игры нет финала.
— Представим это в таком виде: работа состоит из двух последовательных состояний — самодовольство и стресс — когда вы горды тем, что нашли крутое решение, а потом поняли, что оно провалилось по какой-то причине. Иногда цепь прерывается, например, когда у одного из них вы не находите недостатков и принимаете в работу. И потом вы переходите к следующей задаче, и все начинаете заново: "Я понял, как это сделать! Как же я находчив” — "Ok, оно не работает" — "Я понял, почему!" — "Хмм. " — .
Чтобы цепи были как можно короче, надо постоянно учиться и подглядывать к старшим по должности 😉
— Это как делать любую другую вещь. Попробуйте!
Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».
Код: что ты такое
Код определяет внешний вид и внутреннюю логику программ, сайтов.
Содержание
Вы пишете сообщение, заказываете еду на сайте или открываете эту статью. Для этого нажимаете на кнопки, иконки или переходите по ссылкам. Чтобы они работали правильно и приводили вас к нужному результату, программисты пишут код.
❓ Что такое код
Это «текст», который составлен на одном из языков программирования. Компьютерные программы, игры и сайты работают по правилам — они прописаны в коде. Код определяет их внешний вид и внутреннюю логику.
❓ Как программист создает код
- Анализирует задачу и понимает, как ее решить. Какие команды расположить в коде и в каком порядке, иногда — какой язык программирования выбрать.
- Пишет код.
- Компилирует код: использует сервис, который создает из текста программу. Запускает ее и проверяет на ошибки.
- Исправляет код, если программа написана неправильно.
- Отдает код на разбор. Его анализируют другие разработчики. Затем программист улучшает код или передает на проверку тестировщику.
- Адаптирует код к новым требованиям и задачам. Например, новым страницам сайта или функциям игры и программы.
❓ Что такое «чистый» и «грязный» код
«Грязным» называют код, который перегружен лишними строками, элементами и командами. Другим разработчикам трудно его читать.
«Чистый» код хорошо структурирован, в нём нет лишнего, все команды на своих местах. Он соответствует образцу кода для похожих задач, его легко понять.
❓ Как писать «чистый» код
Для этого разработчик практикуется и получает опыт. Тренируется сразу писать правильно, например:
→ Называет функции, переменные и классы кода простыми именами. Они отражают, что это за элемент, зачем существует и какие функции выполняет.
→ Назначает функции только одну задачу. Функция — «глагол» языка программирования: она должна выполнять только одно действие и делать это хорошо.
→ Не оставляет комментариев в коде: заботится, чтобы он был понятен.
Научитесь писать «чистый» код на курсах Skypro «Python-разработчик», «Java-разработчик». Даем только те знания, которые приведут вас к предложению о работе, помогаем собрать портфолио и составить резюме. Преподаватели — практикующие программисты с опытом найма и наставничества.
Что такое код
Определение, что такое код, очень простое. Это текст, написанный по стандарту одного из языков программирования. Он определяет интерфейс и логику работы компьютерных программ, сайтов и мобильных приложений. В статье мы расскажем, как написать код, и по каким признакам хорошая программа отличается от плохой.
Как написать программный код
Прежде чем начать заниматься программированием, следует выбрать, какой синтаксис изучать. К самым популярным решениям относятся:
- Java.
- C++.
- Python.
- JavaScript.
- HTML5.
- CSS.
- PHP.
Изучить стандарты и создать программу за один день не выйдет. Чтобы писать код, понадобится уделить несколько месяцев изучению синтаксиса. Обучаться программированию проще всего на курсах или в университете под руководством преподавателей.
Написание программы начинается с формулировки целей. Следует решить, какие задачи продукт будет выполнять, и как будет выглядеть пользовательский интерфейс. Требуется составить план разработки алгоритма с предварительной структурой. Затем по очереди написать блоки, пытаясь найти для каждого этапа простое решение. Программировать можно в текстовом редакторе или с помощью сервисов (Notepad++, Sublime Text, Visual Studio )
Программу требуется проверить и исправить найденные ошибки. Для преобразования текстовых файлов в рабочие продукты используется компилятор. После компилирования можно запустить и протестировать новую программу. При обнаружении ошибок требуется исправить строки, которые отвечают за выполнение соответствующих функций.
Критерии хорошо написанного кода
Хороший код понятен любому программисту, знающему синтаксис. Для объяснения, как работает алгоритм, не нужны слова. Смысл всех строчек понятен без чтения комментариев и технической документации. Каждая строка отвечает за конкретную задачу, после решения которой может быть выполнена цель следующей строки.
Признаки грамотно написанной программы:
- для решения задач применяются простые методы;
- скорость выполнения команд является оптимальной;
- у классов, функций и переменных есть грамотные и простые названия, по которым понятно их предназначение;
- в текстовом файле нет повторяющихся строчек и почти идентичных блоков;
- файл содержит минимум комментариев с информацией от разработчика;
- алгоритм модульный, можно тестировать часть блоков независимо от других;
- продукт работает без ошибок и решает поставленные задачи.
Определить качество алгоритма можно в процессе программирования. Нужно оценить, насколько легко возвращаться к задаче на следующий день или после выходных. Если разработчик быстро продолжает программировать с места, где он остановился, результат является хорошим. Если для понимания написанной информации и составления плана требуется время, синтаксис нуждается в исправлении.
Составляющие элементы плохого кода
С плохо написанным кодом сложно работать другим программистам. Для понимания алгоритмов требуется время. При запуске программы тратится больше вычислительных ресурсов и времени.
Как определить, что продукт нуждается в доработке:
- в файле много комментариев автора с большим количеством информации;
- алгоритмы сложно исправлять или модифицировать;
- для решения задач используются не самые очевидные методы;
- в блоках содержится большое количество строчек, длину блоков можно сократить;
- при редактировании одного блока не обойтись без внесения изменений в другие;
- присутствуют повторяющиеся блоки или дублирующиеся по смыслу фрагменты;
- для классов, функций и переменных применяются неочевидные названия, не отражающие их назначение и смысл;
- при запуске и тестировании продукта возникают ошибки.
Плохим считается код, который не выполняет поставленную задачу или решает ее не полностью. Даже если синтаксис грамотный, и алгоритмы работают без ошибок, программу нужно переписать.
Код — это совокупность алгоритмов, по которым работает программа, сайт или приложение. Для его написания используются особые правила синтаксиса. Плохо написанный алгоритм перегружен лишними строками, элементами и командами. Разработчикам, не знакомым с задачей, сложно его читать. Грамотное решение задачи соответствует стандартам выбранного синтаксиса. Алгоритм не содержит лишних элементов, его смысл легко понимать.