Аналитика
Зачем писать "hello world"?

Зачем писать "hello world"?

Немного размышлений об одной из самых известных программ для обучения программированию.

Пожалуй, самое распространённое первое задание при обучении программированию на многих языках - "вывести в терминал фразу 'hello world'". Что же даёт это начинающему программисту, и почему с завидным упорством преподаватели и авторы книг заставляют учеников "здороваться с миром"?

Одна из причин - привычка / успешный опыт - в культовой книге от Кернигана и Ритчи "Язык программирования Си" именно эта программа использовалась как первый пример. И пусть мне кажется, что этот пример несвоевременен, но мастера решили так, так что мои возражения я просто оставлю здесь.

Другая причина и, возможно, решение Кернигана и Ритчи в том, что это минимальная программа, которая что-то возвращает пользователю. Появляется хоть какая-то "обратная связь". А это важно. Ты не просто вводишь что-то в компьютер, как в бездонную яму, а получаешь от него хоть и простой и ожидаемый, но ответ.

Очень важно при обучении получать что-то в ответ на свои старания. Пожалуй, в этом, например, причина интереса студентов к веб-программированию. Ведь сверстать страничку и увидеть что-то понятное и относительно близкое к тому, что видел - очень важно. Это мотивирует куда сильнее, чем написание алгоритма сортировки кучей или структуры данных "двоичное дерево". Появляется радость узнавания, ощущение сопричастности с чем-то реальным. И пусть "hello world" - лишь фраза в терминале, всё же это понятный отклик.

Ну и третья, весьма вероятно, надуманная причина - так мы узнаём об основополагающем принципе отладки - дебаговые принты. Ведь помимо желания вывести "hello world" мы хотим понять: оно вообще работает? В первый то запуск - ещё бы! Так мы понимаем, что простейший и очевидный способ понять, дошло ли исполнение программы до данной точки - вставить вывод чего-то.

Вполне возможно, что всё это "поиски глубинного смысла", но трудно игнорировать тот факт, что программа "hello world" стала феноменом, надёжно прописалась в историю программирования. К примеру, эзотерический язык программирования HQ9 на 33% состоит из этой программы...

Также может быть вам интересно:

Как на Bash получить файлы, изменённые за сегодняшний день

Bash имеет огромные возможности по программированию/скриптованию и администрированию операционной системы. Не важно: Linux это, FreeBSD, или MacOS – на Bash можно сделать многое.

Читать »

Антипаттерн "Дойная корова"

Приятно, когда проект приносит деньги. Можно расслабиться и упражняться в эффективном менеджменте. Митинги крутятся, лавеха мутится!

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

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

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

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

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

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