С чего начать изучение python: 3 первых шага

Содержание:

Введение в написание программ

Последнее обновление: 23.04.2017

Программа на языке Python состоит из набора инструкций. Каждая инструкция помещается на новую строку. Например:

print(2 + 3) 
print("Hello")

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

print(2 + 3) 
	print("Hello")

Поэтому стоит помещать новые инструкции сначала строки. В этом одно из важных отличий пайтона от других языков программирования, как C# или Java.

Однако стоит учитывать, что некоторые конструкции языка могут состоять из нескольких строк. Например, условная конструкция if:

if 1 < 2:
    print("Hello")

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

Регистрозависимость

Python — регистрозависимый язык, поэтому выражения и или представляют разные выражения.
И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:

Print("Hello World")

то у нас ничего не получится.

Комментарии

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

Комментарии в Python бывают блочные и строчные. Все они предваряются знаком решетки (#).

Блочные комментарии ставятся в начале строки:

# Вывод сообщения на консоль
print("Hello World")

Строчные комментарии располагаются на той же строке, что и инструкции языка:

print("Hello World")  # Вывод сообщения на консоль

Основные функции

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

Основной функцией для вывода информации на консоль является функция print(). В качестве аргумента в эту функцию передается строка, которую мы хотим вывести:

print("Hello Python")

Если же нам необходимо вывести несколько значений на консоль, то мы можем передать их в функцию print через запятую:

print("Full name:", "Tom", "Smith")

В итоге все переданные значения склеятся через пробелы в одну строку:

Full name: Tom Smith

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

name = input("Введите имя: ")
print("Привет", name)

Консольный вывод:

Введите имя: Евгений
Привет Евгений

НазадВперед

Читайте также

Итерации: циклы для структур данных

Как описывалось выше — итерации в списках довольно просты. Обычно Python-разработчики используют цикл for. Давайте посмотрим как это выглядит:

bookshelf = 

for book in bookshelf:
  print(book)

Таким образом, за каждую книгу на книжной полке(bookshelf) мы вызываем функцию print. Достаточно просто и интуитивно. Это Python.

Для хэш-структуры данных мы используем тот же цикл for, но в качестве счётчика выступает key:

dictionary = { "some_key": "some_value" }

for key in dictionary:
  print("%s --> %s" %(key, dictionary))

# some_key --> some_value

Это пример того как мы используем этот цикл. За каждый ключ в словаре, мы используем print для вывода ключа и его значения.

Также есть другой способ сделать это используя функцию iteritems.

dictionary = { "some_key": "some_value" }

for key, value in dictionary.items():
  print("%s --> %s" %(key, value))

# some_key --> some_value

Мы назвали наши параметры как key и value, но в этом нет необходимости. Мы можем назвать их как угодно. Давайте проверим это:

dictionary_tk = {
"name": "Leandro",
"nickname": "Tk",
"nationality": "Brazilian",
"age": 24
}

for attribute, value in dictionary_tk.items():
  print("My %s is %s" %(attribute, value))

# My name is Leandro
# My nickname is Tk
# My nationality is Brazilian
# My age is 24

В данном примере мы использовали attribute, как параметр для ключей словаря. Как видим, всё работает корректно. Отлично!

Причина №1: хорошие программисты, плохие учителя

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

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

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

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

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

Советы для начинающих

  1. Заранее подумайте, где вы хотите работать. Например, в области веб-разработки или анализа данных. От этого зависит, какие библиотеки и дополнительные технологии потребуется учить. Их в ИТ много, поэтому объять все не получится.
  2. Начните с изучения синтаксиса и решения простых задач. Чем больше практики, тем лучше.
  3. Чтобы добиться прогресса, рекомендуем выделять на обучение минимум 4 часа в неделю. Например, два раза заниматься по два часа. Больше тоже можно.
  4. Посмотрите вакансии на сайтах, где ищут программистов. Как правило, в них указывают, что необходимо знать и уметь для получения работы. Составьте список того, что вам потребуется для успешного прохождения собеседований.
  5. Не расстраивайтесь, если что-то на старте не получается. Это нормально. Начинать любое дело тяжело, но потом вы втянетесь, и все пойдет быстрее.
  6. Старайтесь писать простой и понятный код. Посмотрите, что такое ООП и как его использовать.

Программа

Мир программирования

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

1

Начинаем программировать

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

2

Ветвления и циклы

Изучаем ветвления и учим программу принимать решения в зависимости от действий пользователя. Погружаемся в циклы. Знакомимся с принципом DRY (Don’t repeat you) и заменяем однотипные действия циклами (арифметическим, циклом с предусловием и циклом с постусловием).

Массивы. Функции

Что делать, если данных слишком много? Сочинять новые имена переменным? Ни в коем случае. Знакомимся с массивами и их разновидностями в Python. Учимся хранить большой объем данных в одной переменной-массиве.

Закрепляем DRY и знакомимся с функциями. Немного магии или как функции обрабатывают данные внутри себя и даже не догадываются о коде вокруг них.

4

Разработка веб-сайта

Знакомимся с версткой сайтов. Язык разметки HTML и его основные компоненты. Создаем свою первую интернет страничку и учимся различать теги, их назначение и место в файле.

5

3

Продолжаем разрабатывать сайт

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

6

Bootstrap

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

7

Фреймворк Flask

Второй, но не менее важный, фреймворк — Flask. Устанавливаем, настраиваем и создаём веб приложение за 5 строчек кода. Разбираемся в деталях и учимся генерировать HTML страницы силами фреймворка.

8

Введение в базы данных

Что такое базы данных и из чего они состоят. Изучаем технологию CRUD (создавать, читать, обновлять, удалять) для таблиц в базе и данных в таблице.

10

SQLite + Flask

Подружим базу данных и Flask. Переносим наши текстовые данные в базу и формируем динамические страницы как профессиональные fullstack программисты.

11

Попытка номер два: никогда не знаешь, где тебе повезет

Не знаю, во что вылились бы эти потуги. Но мне очень повезло.

Я простудился.

А потому две недели провалялся на диване в обнимку с книжкой «Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5»

Не могу сказать, что это идеальный учебник (мне не с чем сравнить). Но основы он дает хорошо. А главное — в начале объяснения идут буквально на пальцах и с картинками

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

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

Дополнительные материалы

Чтобы обучение языку Python с нуля было максимально эффективным, следует запастись полезными ресурсами.

Книги

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

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

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

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

В этой книге рассказывается о Python 3: функции, типы данных, операторы и принципы ООП. Также из неё вы узнаете о прикладных возможностях языка: регулярные выражения, популярные инструменты стандартной библиотеки и работа с файлами. Тут вы ознакомитесь с системой SQLite, узнаете о способах доступа к базам данных и методах получения информации из них.

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

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

Где брать информацию

Сайты

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

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

Хороший пример сайта для обучения: “all-python.ru”. Здесь можно найти всю необходимую теорию с примерами, а также реализацию простых программ, таких как калькулятор и календарь.

Видео-уроки на YouTube

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

Курсы

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

Курсы — отличная возможность выучить Python для новичков, однако они не станут самодостаточным источником информации, особенно при углублённом изучении.

Техническая литература

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

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

Зачем учить Python для Data Science?

Когда настает время изучать код для работы с данными, стоит сосредоточиться на этих 4 языках:

  • SQL
  • Python
  • R
  • Bash

Конечно, хорошо бы изучить все четыре. Но если вы только начинаете, то стоит начать с одного или двух. Чаще всего рекомендуют выбирать Python и SQL. С их помощью удастся охватить 99% процесса работы с данными и аналитических проблем.

Но почему стоит изучать Python для Data Science?

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

Наследование: поведение и характеристики

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

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

В объектно-ориентированном программировании классы могут наследовать простые характеристики(данные) и поведение(методы) от других классов.

Давайте посмотрим другой пример и реализуем его в Python.

Представьте машину. Количество колёс, сидячих мест и максимальная скорость — всё это атрибуты машины. Мы можем сказать, что класс электромашины наследует эти схожие характеристики от обычного класса машины.

class Car:    
  def __init__(self, number_of_wheels, seating_capacity, maximum_velocity):    
    self.number_of_wheels = number_of_wheels    
    self.seating_capacity = seating_capacity    
    self.maximum_velocity = maximum_velocity

Наш класс машины реализует:

my_car = Car(4, 5, 250)   
print(my_car.number_of_wheels)   
print(my_car.seating_capacity)   
print(my_car.maximum_velocity)

Один раз реализовав, мы можем использовать все созданные экземпляры переменных. Неплохо.

В Python, мы применяем класс-родитель к нашему классу-наследнику как параметр. Класс электромашины может наследоваться от класса машины.

class ElectricCar(Car):    
  def __init__(self, number_of_wheels, seating_capacity, maximum_velocity):    
    Car.__init__(self, number_of_wheels, seating_capacity, maximum_velocity)

Вот так просто. Нам не нужно реализовывать какой-либо другой метод, потому что этот класс уже имеет его(унаследовав от класса машины). Давайте докажем это:

my_electric_car = ElectricCar(4, 5, 250)   
print(my_electric_car.number_of_wheels) # => 4   
print(my_electric_car.seating_capacity) # => 5   
print(my_electric_car.maximum_velocity) # => 250

Прекрасно.

На этом всё!

Мы изучили множество вещей о базах Python:

  • Как работают переменные Python
  • Как работают блоки условий
  • Как работают циклы(while и for)
  • Как использовать списки: коллекции | массивы
  • Коллекция-словарь в виде ключ-значение
  • Как мы можем проводить итерации через эту структуры данных
  • Объекты и классы
  • Атрибуты как данные объектов
  • Методы как поведение объектов
  • Использование Python получателя и установщика, а также свойство @property
  • Инкапсуляция: сокрытие информации
  • Наследование: поведение и характеристики

Поздравляем! Вы освоили эту насыщенную и необходимую часть языка Python.

Перевод статьи TKLearning Python: From Zero to Hero

Зачем учить Python? Преимущества и недостатки языка

Плюсы

Минусы

  • Популярность и широкое применение. Изучив Питон, вы сможете создавать как простые приложения, так и программировать нейронные сети, анализировать данные и многое другое.
  • Востребованность программистов на рынке.
  • Высокий уровень зарплат. Новички могут получать от 60 тыс. рублей в месяц, специалисты с опытом – от 100 до 200 тыс. рублей в месяц.
  • Относительная простота и легкость обучения.
  • Множество готовых библиотек и фреймворков, которые упрощают жизнь.
  • Большое и активное сообщество, много информации на русском языке, в том числе самоучителей.
  • Подходит новичкам, кто ранее не был связан с программированием, но хочет начать карьеру в этой сфере.
  • Непривычный синтаксис. Если вы знаете другие языки программирования, учить Python будет необычно.
  • Многие работодатели ищут разработчиков, владеющих несколькими языками. Для получения работы выучить только Питон может быть не достаточно.
  • Разные версии языка не совместимы и существуют параллельно.
  • Больше всего вакансий открыто в Москве и Санкт-Петербурге. Соискателям из регионов может потребоваться работать удаленно или переезжать в более крупный город.

PHP: начало

Желание освоить PHP появилось, когда я начал заниматься собственными информационными сайтами. Лет пять назад, без кучи качественных современных плагинов для WordPress, работать всерьез, не имея навыков разработки было непросто. Постоянно возникали мелкие проблемы, для решения которых приходилось заказывать услуги на фрилансе или задавать вопросы на форумах.

Например:

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

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

Определитесь для чего изучать python

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

Например, если хотите стать веб-разработчиком, помимо Python изучите HTML, CSS и основы JavaScript. Это три разных языка, но они помогут вам стать Full-stack разработчиком.

Тем кто планирует заниматься анализом данных, могут потребоваться знания SQL, R и другие инструменты: например, Tableau или Elastic Search.

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

Где используется Python и для чего?

Основные сферы применения данного языка программирования:

Веб-разработка

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

Машинное обучение и искусственный интеллект

Создание поисковых систем и других программ, где применяется AI. Например, в Яндексе и Google активно используют данную технологию.

Big Data (анализ и обработка больших массивов данных)

Проведение научных исследований и вычислений, анализ финансовых рынков и составление прогнозов. Основные работодатели – научные центры, банки, инвестиционные фонды.

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

В числе ИТ-компаний, где востребована данная технология: Facebook, Microsoft, Dropbox, Intel, Cisco, HP, IBM, Qualcomm, Seagate и множество других.

Практика: мелкие скрипты just for fun и для облегчения работы

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

Проблем, впрочем, не возникло.  Свой первый простенький калькулятор на php я писал около 3 часов (сейчас справился бы за 15 минут). Потом пошло куда легче. Мне скучно было искать новые учебники и выполнять задания по порядку, я с первых дней работал над интересными задачами.

Так появились:

  • Инструмент для принятия рациональных решений.
  • Калькулятор расчета окупаемости бизнес-идеи (не дожил до наших дней).
  • сервис smmup.ru.

Чуть позже стал писать скрипты для SEO, использующие API различных сервисов  (Яндекс.Метрика, Search Console). Тогда я на потоке делал SEO-аудиты на заказ, так что экономия времени благодаря автоматизации оказалась очень существенной.

Еще один приятный бонус от новых навыков — стало гораздо легче общаться с программистами (этого SEO-шнику не избежать).

Решение: как выучить Python с нуля

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

Понять, зачем вы учите Python

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

Изучить основы синтаксиса языка. Именно основы! Не нужно учить все

Изучение синтаксиса — важная часть, но она может быть скучной, и желательно минимизировать потраченное на нее время. Главное — взять то, что понадобится для начала работы над собственными проектами. Этот этап будет еще проще, если удастся найти ресурсы или обучающие материалы, которые рассказывают основы, но с упором на ту сферу, которая интересует в первую очередь. Например, при изучении data science полезно использовать реальные данные в своих экспериментальных проектах.

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

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

Такой подход подойдет для проекта любого типа. Не обязательно знать все, прежде чем браться за работу. Разбейте ее на части, учитесь и совершенствуйтесь в процессе.
Много времени уйдет на поиск ответов в Google, StackOverflow и официальной документации Python, и это абсолютно нормально! Один из не-секретов индустрии в том, что даже профессионалы проводят большую часть времени в поисках ответов на свои вопросы.

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

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

Это слишком сложно. Но игра должна быть сложнее той же «Змейки».

Практика — главная составляющая обучения

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector