Научиться Программировать Становится Все Сложнее

Привет, Хабр! Представляю вашему вниманию перевод статьи Аллена Б.

Дауни, автора таких книг, как ДумайPython , Подумайте о Java , Думайте по Байесу и другие, опубликованные в личный блог автора .

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

Некоторые люди пишут мне по электронной почте.

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

Я сочувствую их чувствам.

В некотором смысле их разочарование оправдано.

Загрузка и запуск кода не должны быть такими сложными.

Иногда в трудностях винят Python, а иногда — меня.

И я думаю, что это не совсем заслужено.

Позвольте мне объяснить мое понимание проблемы и предложить некоторые решения (или, по крайней мере, обходные пути).

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

Когда я приобрел Commodore 64 (кажется, 1982 года), этого барьера не было.

Когда вы включили компьютер, он запустил среду разработки.

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

С тех пор три вещи усложнили путь от пользователя к программисту.

  1. Компьютеры больше не продаются с предустановленной по умолчанию средой разработки.

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

    И это более серьезный барьер, чем может показаться.

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

    В наше время устанавливать программы стало намного проще, чем было раньше, но возможные ошибки при установке никуда не делись и это может доставить пользователям серьезные неудобства.

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

  2. Пользовательские интерфейсы значительно перешли от командной строки к графическим интерфейсам.

    Последние обычно проще в использовании, но они не отображают информацию о том, что на самом деле происходит в системе.

    Когда пользователю не нужно знать все эти детали, в таком поведении нет ничего плохого.

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

    Поэтому, когда пользователь начинает учиться программировать, он неожиданно сталкивается с вещами, которые обычно от него скрыты.

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

  3. Облачные технологии только усложняют ситуацию.

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

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

    Когда они загружают данные или отправляют их через Интернет, они часто не до конца понимают, откуда именно берутся данные и куда они идут. И когда что-то устанавливается, они часто не до конца понимают, что именно и куда устанавливается.

Для человека, выросшего на Commodore 64, научиться программировать было довольно сложной задачей.

Людям, окруженным мобильными устройствами, подключенными к облачным сервисам, все еще сложнее.

Хорошо, и что мы можем с этим поделать? Вот несколько вариантов:

  1. Назад в будущее.

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

    Одна из предпосылок для создания Raspberry Pi, по словам Бена Аптона , было желание создать среду, которая превращала бы пользователей в программистов.

  2. Столкнитесь с болью лицом к лицу.

    Другой подход — научить студентов настраивать и использовать среду разработки до того, как они начнут программировать (или одновременно с этим).

  3. Задержите боль.

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

На одном из моих курсов мы используем второй подход. Студенты учатся использовать командную строку UNIX во время изучения языка программирования C. Однако эти студенты уже умеют программировать и имеют возможность обращаться за помощью к инструкторам.

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

  1. Интерактивные руководства, которые позволяют запускать код прямо в браузере, например, адаптация этой книги.

    Как думать как ученый-компьютерщик

  2. Среды разработки на основе браузера, такие как PythonAnywhere
  3. Образы виртуальных машин с уже настроенными и готовыми к использованию средами разработки, которые пользователь может скачать и запустить (при условии, конечно, что он сможет установить программное обеспечение для запуска виртуальной машины).

  4. Такие услуги, как связующее , которые предоставляют облачную среду выполнения, позволяющую пользователям получать доступ к некоторым функциям через браузер.

В некоторых своих проектах я использовал все эти инструменты одновременно.

Помимо интерактивной версии Как думать как ученый-компьютерщик есть еще что-нибудь интерактивная версия Think Java , подготовил и поддержал Брелок .

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

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

Блокнот Jupyter для книги Think DSP. А репозитории всех моих книг подготовлены для работы с сервисом Binder. Описанные подходы помогают начать программирование, но у них есть и свои ограничения.

Когда-нибудь учащиеся сами захотят или должны будут установить и настроить рабочую среду на своем компьютере.

Но если мы отделим обучение программированию от обучения установке и настройке соответствующего программного обеспечения, шансы на успех возрастут. Ник Коглан предложил в Твиттере четвертый подход, который я бы назвал Загляни в будущее .

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



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

Теги: #обучение программированию #обучение программированию #python #обучение #Образовательный процесс в ИТ

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.