Что вам нужно знать о программировании, если вы только начинаете?

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

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

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

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

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

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

Чтобы программировать, вам не нужно быть компьютерщиком или компьютерщиком. На самом деле предметом информатики не является изучение программирования; это разные вещи, и это может запутать новичков. Информатика - это понимание того, что компьютеры могут делать. Напротив, программирование - это деятельность по указаниям компьютерам сделать что-то для нас.

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

Например, PHP хорош для веб-программирования, но не подходит для программирования устройств. C ++ определенно может помочь вам с последним, в то время как Python и R являются одними из любимых инструментов специалистов по данным и людей из финансовой индустрии. Когда вы встречаетесь с опытным программистом, не думайте, что он может программировать на всех существующих языках. Вместо этого он, скорее всего, может работать с одним или несколькими языками, но он хорошо их освоил.

Верно. Но как кому-то научиться программировать?

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

Например, начальник просит Джона сделать следующее: создать программу, которая добавляет 10 к любому числу, которое его начальник вводит с клавиатуры. Правильное рассуждение было бы таким: если x является неизвестным, нам нужен вывод x + 10.

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

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

В приведенном выше примере Джон должен подумать о следующих подзадачах: сначала он должен определить функцию, которая принимает x в качестве аргумента, а затем возвращает в качестве вывода новую переменную, равную x + 10. Вот как можно решить эту проблему. решить.

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

Задачи программирования великолепны, поскольку они развивают ваше механистическое мышление и способность решать проблемы. Это включает в себя формулирование проблем, их разбиение на значимые шаги и организованную передачу этих шагов компьютеру.

Почему Python

Хотя для некоторых из вас это может быть в новинку, Python находится на стадии программирования более двух десятилетий. Есть две основные причины, по которым вы должны изучать Python. Во-первых, он имеет ряд технических преимуществ по сравнению с другими языками программирования. Во-вторых, его практическое применение охватывает несколько отраслей. Это мощный вычислительный инструмент, когда нам нужно решать сложные задачи в области финансов, эконометрики, экономики, науки о данных и машинное обучение. Следовательно, это идеальная ступенька для того, кто учится программировать и полон решимости продолжить карьеру в качестве специалиста по данным.

Вот немного более техническое описание Python.

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

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

Программное обеспечение с открытым исходным кодом (OSS):

Открытый исходный код означает, что это бесплатно. Python имеет большое и активное научное сообщество с доступом к исходному коду программного обеспечения и способствует его постоянному развитию и обновлению в зависимости от потребностей пользователей. Это основная причина того, что Python является кроссплатформенным - он доступен для всех основных операционных систем: Windows, Mac и Linux. Преимущество этого в том, что Python можно быстро применить где угодно. Доменные языки, такие как MATLAB и SAS, также используемые для решения финансовых и эконометрических задач, являются платными. Это играет роль в популярности языка.

Общее назначение:

Да, мы углубимся в одно из конкретных приложений Python - анализ финансовых данных. Однако вы должны знать, что существует широкий набор полей, в которых его можно применить. Например, Python можно использовать для веб-программирования через фреймворк Django. Хотя это выходит за рамки этой публикации, вы должны знать, что широкая сфера применения и возможность взаимодействия с другими языками программирования могут быть объяснением того, почему некоторые крупные организации выбрали Python в качестве основного языка программирования.

Язык высокого уровня:

Это немного более технический.

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

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

Сложно кодировать и понимать языки программирования низкого уровня. Они слишком техничны. В языках высокого уровня синтаксис намного ближе к человеческой логике, что упрощает изучение и реализацию языка. Это позволяет программисту сосредоточиться на текущей задаче, вместо того, чтобы пытаться вычислить нечитаемые строки кода.

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

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

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

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

Понятно, что мы живем в эпоху больших данных. Люди из разных дисциплин - экономики, финансов, информатики, маркетинга и многих других могут извлекать огромные объемы данных. Мы можем говорить о больших данных, когда у нас есть миллионы наблюдений. В таких ситуациях вычислительные возможности традиционных приложений для обработки данных, таких как Microsoft Excel, становятся недостаточными. Нам нужен более мощный инструмент для более или менее одинакового решения проблем с большими данными, независимо от области применения. Python идеально подходит для этих ситуаций, поскольку дает нам гибкость.

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

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

Почему Юпитер

Итак, почему нет только одного программного приложения под названием «Python», которое вы можете установить на свой компьютер, которое автоматически обновляется и которое работает без сбоев?

Извините, но это не так. Мы должны иметь дело с реальностью. Во-первых, Python - это язык программирования. Это может позволить вам общаться с компьютером. Для этого вам понадобится помощь определенного программного обеспечения или приложения.

А именно, приложение Jupyter Notebook, которое чаще называют Jupyter, может нам в этом помочь. Это серверно-клиентское приложение, которое позволяет редактировать код через веб-браузер.

Рассмотрим следующий график. Все блоки представляют собой разное программное обеспечение. С одной стороны, у вас есть несколько ядер языка . Это программы, предназначенные для чтения и выполнения кода на определенном языке программирования, таком как Python, R или Julia. Установка Jupyter всегда идет с установленным ядром Python, а другие ядра могут быть установлены дополнительно.

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

Сервер Jupyter предоставляет среду, в которой клиент сопоставляется с ядром соответствующего языка. В нашем случае мы сосредоточимся на Python и веб-браузере в качестве клиента или интерактивной оболочки. Ваша работа будет храниться в документе записной книжки, и, поскольку мы будем строго использовать язык Python, он будет называться файлом «Блокнот IPython» с форматом файла «точка ipynb».

Сказав все это, мы можем объяснить, почему Jupyter используется во многих крупных корпорациях, таких как Google, Microsoft и IBM. По своему дизайну он хорошо подходит для демонстрации концепций программирования и обучения.

Во-первых, в крупных корпорациях для решения конкретной задачи может потребоваться кодирование на нескольких языках, например Python, R, Julia или PHP. Вместо того, чтобы устанавливать разные интерфейсы для каждого языкового ядра, которое вам нужно, Jupyter позволяет использовать ту же структуру типа файла notebook. Просто каждая созданная вами записная книжка будет подключаться к запрашиваемому вами языковому ядру. Учтите также, что этот файл можно легко сохранить локально или на удаленном сервере. Таким образом, Jupyter значительно облегчает общение между командами в корпорации.

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

Следующим шагом будет установка Anaconda - программного пакета, который содержит как язык программирования Python, так и приложение Jupyter Notebook.

Установка Python и Jupyter

Есть разные способы установить Python на ваш компьютер. Но особенно для новых пользователей настоятельно рекомендуется выбрать Anaconda. Он установит не только Python, но и приложение Jupyter Notebook, а также множество пакетов для научных вычислений и обработки данных.

Откройте www.coninuum.io и нажмите кнопку Загрузить Anaconda на главной странице.

Вы должны выбрать одну из трех операционных систем - Windows, Mac или Linux. Я покажу вам, как установить Anaconda в Windows, но процедура идентична, если вы собираетесь использовать версию для Mac или Linux.

Теперь вы должны выбрать лучший из четырех предложенных вариантов. Вам нужна версия 2.7 или 3.5? И есть 32-битная или 64-битная версия, в зависимости от установленной вами Windows.

Я знаю, звучит странно поддерживать не одну, а две версии одной программы. Для этого поста различия между Python 2.7 и 3.5 будут почти несущественными, но мы предлагаем вам установить 2.7. Подробнее о различиях между двумя версиями мы поговорим позже.

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

Затем выберите значок «Система» и проверьте информацию, относящуюся к «Типу системы».

В моем случае это 64-битная версия, поэтому, когда я вернусь на сайт Anaconda, я выберу 64-битную версию 2.7 Python.

Затем мы должны найти каталог, в который мы хотим установить дистрибутив, и нажать «Сохранить».

Ожидая завершения загрузки, вы можете решить, оставлять ли ваше электронное письмо в Continuum. Это необязательный шаг, поэтому вы также можете выбрать «Нет, спасибо», и все готово.

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

То, что следует ниже, ничем не отличается от стандартного установщика Windows. Согласитесь и нажимайте «Далее», пока у вас не появится возможность указать папку назначения.

Вы можете сделать это, нажав кнопку «Обзор». Когда вы будете удовлетворены указанным каталогом, нажмите «Далее» еще раз.

Наконец, нажмите «Установить» и продолжайте, пока не увидите окно, в котором можно завершить установку. Мы пока не будем использовать «Anaconda Cloud», поэтому я сниму флажок.

Вы только что установили весь дистрибутив Anaconda - язык Python, текстовый редактор, множество приложений и пакетов. У вас также есть приложение Jupyter Notebook. Вы можете открыть меню «Пуск» и выбрать оттуда соответствующий значок.

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

Интерфейс Jupyter - панель инструментов

Хорошо, мы сделаем краткий обзор панели инструментов Jupyter.

Как только вы загружаете записную книжку, открывается панель управления Jupyter. Рядом с каждым файлом и каталогом есть флажок. Установив и сняв отметку с элемента, вы можете манипулировать соответствующим объектом - это означает, что вы можете дублировать или закрыть запущенный файл. Кроме того, вы можете переименовывать и удалять папки.

Меню выбора позволяет выбрать в консоли все файлы одного типа.

Например, вы можете отметить все папки или все запущенные файлы.

Логика управления каталогами такая же, как и в операционной системе - файлы могут быть сгруппированы в папки, а папки могут содержать другие папки.

С помощью кнопки «Загрузить» в правом верхнем углу вы можете загрузить записную книжку в каталог, в котором вы находитесь. Открывается стандартное окно проводника, и когда вы выбираете файл, вы можете нажать «Открыть», и он сразу же появится. в вашем каталоге.

Наконец, вы можете развернуть кнопку «Новый». Из выпадающего списка вам, скорее всего, потребуется создать новый текстовый файл, новую папку или новый файл записной книжки . Файл записной книжки может содержать код на любом из языков в разделе «Блокноты».

Когда вы создаете новый файл записной книжки Python, он будет записан в формате IPython Notebook, для краткости .ipynb.

Не бойтесь этого другого нового имени, IPython - считайте его предшественником Jupyter. Считайте формат IPython Notebook устаревшим форматом файлов ...

Хорошо, проведем несколько операций. Папку «Папка 02.1» я переименую в «Упражнения».

Ok. Выполнено.

Теперь я создам новый файл IPython Notebook, развернув кнопку «Создать» и выбрав один из двух форматов Python, которые у меня есть.

Давайте использовать формат Python по умолчанию. Браузер сразу открывает для меня новую вкладку. Это интерактивная оболочка, о которой мы упоминали ранее. Здесь вы напишете свой код и увидите его результат.

Подробнее об этом в следующем разделе.

Интерфейс Jupyter - предварительные условия для программирования

Ok. Большой. Теперь, когда мы знаем больше о приборной панели, мы готовы изучить оболочку и посмотреть, как мы можем кодировать на Jupyter.

Поле, которое вы видите ниже, называется ячейкой.

Вы можете получить доступ к ячейке, нажав «Enter». Как только вы это сделаете, вы увидите курсор и сможете начать вводить код.

Серое поле называется полем ввода.

Я введу короткий код, который говорит, что x - это список, состоящий из четырех чисел: 1, 2, 3 и 4. После этого я могу попросить компьютер распечатать этот список, набрав «x».

Я могу выполнять эти команды двумя способами.

Первый - удерживать Ctrl, а затем нажать Enter. Таким образом, машина выполнит код в ячейке, и я «останусь» там, то есть я не буду создавать или выбирать другую ячейку.

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

Второй вариант позволяет более гибко писать код. Чтобы выполнить тот же код, удерживайте «Shift», а затем нажмите «Enter». Выполняются две предыдущие команды, а затем создается новая ячейка, в которую можно писать код. Если вы используете «Shift» и «Enter», вы можете легко продолжить вводить код.

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

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

Давайте посмотрим, как мы можем применить ярлыки на практике. Я вырежу ячейку ниже, выделив ее и нажав клавишу «X».

Помните, что вы всегда можете использовать клавиши со стрелками для навигации по файлу записной книжки. Итак, я перейду вверх, а затем сразу нажму клавишу «V», чтобы вставить его. Вуаля!

Моя ячейка была перемещена вверх, ниже ячейки, которую я выбрал до того, как нажал клавишу «V». Теперь я нажму «C», чтобы скопировать ту же ячейку.

На этот раз я снова воспользуюсь клавишами со стрелками, чтобы спуститься вниз, а в конце снова нажму «V». Судя по всему, эту ячейку скопировали и вставили ниже.

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

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

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

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

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

Если я выберу ту же ячейку и нажму «B», чуть ниже будет создана другая ячейка.

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

Все ячейки, которые мы видели до сих пор, были ячейками кода. Давайте посмотрим, что такое ячейка уценки. Это ячейка, которая содержит строго документацию - текст не выполняется как код. Он будет содержать сообщение, которое вы хотели бы оставить читателю файла.

Чтобы преобразовать выбранную ячейку в ячейку уценки, вы должны либо развернуть этот список и выбрать «уценку», либо просто нажать кнопку «M». Нажмите «Enter» для доступа к ячейке и введите текст.

Когда я запускаю эту ячейку, вывод будет простой инструкцией.

Теперь, если вы хотите превратить ячейку уценки обратно в ячейку кода, выберите ее и выберите «Код» в этом раскрывающемся меню или нажмите клавишу «Y».

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

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

Это был длинный, но незаменимый пост. Мы прошли все, что вам нужно знать, прежде чем вы начнете писать код.