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

Язык

Первый вопрос, конечно же, выбор языка программирования.

Существует множество языков программирования. Википедия перечисляет более 700 различных языков. Некоторые из них старые (C, lint), некоторые новые (Rust, Go). Некоторые из них разработаны с учетом конкретного варианта использования (C для приложений, критичных к памяти, Go для асинхронного программирования), некоторые являются языками общего пользования (Java, Python).

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

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

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

Окружающая обстановка

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

Я большой поклонник Jupyter Notebooks. Это пользовательский интерфейс на основе браузера, который позволяет выполнять операторы Python и просматривать результаты в режиме реального времени. Вы можете либо установить Jupyter Notebooks в составе Anaconda Suite локально (см. ссылки в конце статьи), либо подписаться на бесплатную учетную запись Google Colab в облаке. Я предпочитаю локальную версию, потому что нативный пользовательский интерфейс Jupyter проще в использовании, чем интерфейс Google.

Проекты

Фантастическое преимущество изучения Python — это огромное количество поддерживаемых библиотек, которые доступны всего одним щелчком мыши. Каждая библиотека охватывает некоторую область применения. Например, pandas великолепно подходит для анализа структурированных данных (например, анализа данных в файлах CSV или в базах данных SQL). Pandas широко используется учеными и аналитиками данных по всему миру.

Flask — это легкая библиотека для веб-программирования. С ним легко начать, и можно разрабатывать простые веб-приложения в течение нескольких часов. Flask по-прежнему является одним из самых мощных веб-фреймворков на Python и используется также для серьезных приложений.

Scikit — это семейство научных инструментов (отсюда и название!). Scikit-learn содержит солидную коллекцию алгоритмов обработки данных, от простых регрессий до алгоритмов машинного обучения. Это отличный способ увидеть сложные научные алгоритмы в действии всего за несколько кликов. Обязательно ознакомьтесь с их документацией для рабочих примеров!

Scikit-image — еще одна научная библиотека, разработанная для обработки изображений в Python. На мой взгляд, это один из самых доступных способов манипулирования данными изображения. На самом деле вы могли бы даже разработать простой прототип автономного транспортного средства, используя scikit-image для обработки данных камеры и scikit-learn для принятия решений на основе этих данных.

Когда начать

Лично я бы предложил следующую программу обучения.

  1. Установите Anaconda с Python 3. Нажмите здесь, чтобы получить инструкции.
  2. Запустите Jupyter Notebooks в вашем браузере. В Терминале введите jupyter-lab. Начните изучать Jupyter Notebooks с веселого урока.
  3. Начните изучать Python: например. проверьте этот видеоурок.
  4. Начать изучение панд для анализа данных. Это познакомит вас с методами обработки данных.
  5. Пусть вас направят ваши интересы: изучите веб-разработку с помощью Flask, машинное обучение с помощью этого руководства для начинающих по scikit-learn, обработку изображений с помощью scikit-image или что-то совершенно другое.

Резюме

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

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

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

Мир полон проблем, ожидающих своего решения: программирование откроет вам путь к их решению.

об авторе

Я технический руководитель проектов в компании Doctolib, где применяю свои знания в области компьютерных наук (15+ лет опыта работы с языками программирования на Python и не только) для решения одной из самых острых и сложных задач современности — цифровизации системы здравоохранения в Европе. . Больше обо мне можно узнать в LinkedIn и на GitHub.