Support us

Почему научиться программировать становится всё сложнее?

Оставить комментарий
Почему научиться программировать становится всё сложнее?

Профессор информатики Аллен Дауни опубликовал размышления о том, почему освоить программирование стало намного труднее и поделился советами для начинающих разработчиков. dev.by публикует перевод колонки.

Читать далее

Иллюстрация: Simple Programming

Я написал несколько книг по Байесовскому анализу и цифровой обработке сигналов на Python, читатели которых могут увидеть мой код на GitHub. Для работы с кодом необходимо базовое знание языка, но также нужно установить Python и необходимые библиотеки на компьютер и знать, как скачивать и запускать код с GitHub. И на этом моменте у многих читателей возникают проблемы.

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

Я их понимаю. И с одной стороны, их разочарование полностью оправдано: всё это так же элементарно, как скачать и запустить программу. Иногда они винят Python, а иногда — меня. И это не совсем справедливо. Давайте я объясню, в чём, как мне кажется, суть проблемы и как её решить (или просто обойти).

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

Когда где-то в начале 80-х у меня появился Commodore 64, всё тоже было сложно. Вы включали компьютер, он загружался, и запускалась среда программирования. Чтобы выполнить какое-то действие, пусть даже запустить другую программу (например, Archon), нужно было ввести хотя бы одну строчку кода.

С того времени три изменения постепенно сделали программирование более трудным для пользователей.

  1. На компьютеры перестали по умолчанию устанавливать среды разработки. Как следствие, всем, кто учился программировать, сначала приходилось установить среду программирования — и это оказалось неожиданно серьёзным препятствием. Многие пользователи никогда ничего не устанавливали и понятия не имели, как это делать, или попросту не имели нужных прав. Устанавливать ПО сегодня намного легче, но всё равно можно наделать ошибок. Чтобы просто научиться программировать, нет необходимости перед этим осваивать системное администрирование.
  2. Текстовый интерфейс сменился графическим. Он более удобен в использовании, но при этом скрыта информация о текущих процессах. Пользователям она не нужна, и им это удобно. Но проблема в том, что графический интерфейс не отображает информацию, которую действительно нужно знать разработчику. Поэтому когда пользователь решает изучить программирование, ему приходится столкнуться со всеми скрытыми данными.
  3. Облачные вычисления вывели программирование на абсолютно новый уровень. Пользователи веб-приложений имеют лишь смутное представление о том, где хранятся их данные и с помощью каких приложений они могут получить к ним доступ. Многие пользователи, особенно мобильных устройств, не понимают разницы между операционными системами, приложениями, веб-браузерами и веб-приложениями. Они загружают и скачивают данные, но не знают, откуда и куда они перемещаются. Устанавливают что-то, но не знают толком, что и куда устанавливается.

Иллюстрация: TechLog360

Тем, кто вырос на Commodore 64, научиться программировать было достаточно сложно. А тем, кто привык пользоваться мобильными девайсами, подключёнными к облачным сервисам, это будет ещё сложнее.

Ну и что с этим можно сделать? Есть несколько вариантов:

  1. Назад в будущее: во-первых, можно создавать устройства вроде Commodore 64, где использовать компьютер и программировать — одно и то же. Так, одним из стимулов к созданию Raspberry Pi, по словам Эбена Аптона, было построение среды, которая превращала бы пользователей в программистов.
  2. Превозмочь трудности: второй путь — учиться устанавливать и использовать среды разработки перед обучением программированию или одновременно с ним.
  3. Временно обойти трудности: третий вариант — использовать облачные технологии. Это позволит сразу начать программировать и отложить создание собственной среды разработки.

На одном из занятий мы со студентами идём вторым путём. Они учатся работать с текстовым интерфейсом UNIX параллельно с изучением языка С. Но для начинающих, особенно тех, кто учится самостоятельно, я бы посоветовал выбрать третий путь. Вот какие инструменты можно использовать:

  1. интерактивные учебники, где код можно запустить в браузере. Например, одной из адаптаций книги How To Think Like a Computer Scientist;
  2. среды разработки в браузере — например, PythonAnywhere;
  3. полностью готовые виртуальные машины, которые можно загрузить и запустить (если, конечно, у вас есть нужный софт или вы способны установить его);
  4. сервисы вроде Binder, в котором среда программирования размещена на удалённом сервере и доступна для пользователей через браузер;

В разных своих проектах я использовал все эти инструменты. Помимо интерактивной версии How To Think Like a Computer Scientist, есть ещё интерактивная версия Think Java от Trinket.

В Think Python я рекомендую использовать PythonAnywhere по крайней мере в первых четырёх уроках, а затем даю пошаговые инструкции по локальной установке.

Раньше в некоторых занятиях я применял виртуальные машины, но в последнее время больше использую онлайн-сервисы, например, Think DSP от O'Reilly Media. А репозитории всех моих книг готовы для работы в Binder. 

Есть ещё одна опция, которую я бы назвал «принять будущее»: возможно, новички не только начнут, но и продолжат программировать на облачных платформах.

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

16 лет dev.by — «дефолтный» источник информации о беларусском ИТ

Вы можете...

Читайте также
10 курсов по C++ (июнь 2023)
10 курсов по C++ (июнь 2023)
10 курсов по C++ (июнь 2023)
С++, несмотря на свой солидный возраст, остается одним из основных языков программирования, который применется очень широко: от разработки ПО до создания игр. В сети много ресурсов, которые помогут освоить этот язык. Советуем обратить внимаение на подборку команды Digitaldefynd, котрую мы дополнили. В ней как платные, так и бесплатные ресурсы для людей с разным уровнем подготовки и знаний С++.
1 комментарий
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Хотите научиться кодить и освоить алгоритмы? Собрали десять советов с чего начать изучение программирования для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов.
13 онлайн-платформ для обучения программированию
13 онлайн-платформ для обучения программированию
13 онлайн-платформ для обучения программированию
DataCamp открывает безлимитный доступ к курсам за €69 в год
DataCamp открывает безлимитный доступ к курсам за €69 в год
DataCamp открывает безлимитный доступ к курсам за €69 в год

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.