Академический Документы
Профессиональный Документы
Культура Документы
club/
ЕВГЕНИЙ ПАВЛОВ
ЗНАКОМЬТЕСЬ, PYTHON
СЕКРЕТЫ ПРОФЕССИИ
Издательство АСТ
Москва
2023
https://liveinternet.club/
УДК 004.43
ББК 32.973
П 12
Павлов, Евгений.
П 12 Знакомьтесь, Python. Секреты профессии / Е. Павлов. —
Москва: Издательство АСТ, 2023. — 224 с. — (Программиро-
вание для всех)
ISBN 978-5-17-156999-0
Очень хочется стать программистом и войти в IT, но не
знаете с чего начать? Поздравляю, в ваших руках учебник
нового поколения — без кучи непонятных слов и кодов
расскажем про инструменты и библиотеки для програм-
мирования на Python. И все это заправлено лайфхаками,
вдохновляющими историями из мира настоящих хакеров
и игрофикацией — потому что обучение не должно быть
скучным.
«Знакомьтесь, Python» — уверенный первый шаг в мир
программирования. Получите базовые знания о сфере IT,
а также найдете ответы на вопросы по типу: с чего начать,
как выбрать профессию, где прокачать скиллы и как подго-
товиться к собеседованию так, чтобы работодатель предло-
жил оффер.
УДК 004.43
ББК 32.973
https://liveinternet.club/
Посвящается моим Учителям:
Иван Владимирович Павлов (мой отец)
Виктор Григорьевич Струц (советский инженер)
Михаил Алексеевич Могилевский (первоый директор
ФизМатШколы)
Дмитрий Юрьевич Пучков (ст. о/у Goblin)
Отдаю свой Долг перед Вами:
Сначала вы учили меня.
Теперь я учу других.
Такая вот связь поколений.
Низкий Вам поклон!
https://liveinternet.club/
https://liveinternet.club/
CONCEPT: ДЛЯ КОГО ЭТА КНИГА?
И ДЛЯ ЧЕГО?
Вступление
Э
та книга ответит на самый главный вопрос: как
стать программистом Питона? Я расскажу про
язык Python, про его библиотеки, и про софт, кото-
рым нужно пользоваться. Кроме того, я буду рассказывать
про людей в компьютерной сфере. Каково это — быть про-
граммистом: чем занимаются, чем живут и что умеют. Более
того, в книге-учебнике будут лайфхаки о том, как сохра-
нить мотивацию, распределить силу и расставить приори-
теты.
Язык Python признан самым популярным и эффек-
тивным языком программирования в 2021 году. Он сумел
обойти Java и С — очень серьезных соперников, годами
не пускавших никого на первое место во всевозмож-
ных рейтингах. В чем его преимущество: огромный спрос
на программистов в целом, он очень распространен и, на-
конец, легок в изучении.
Это неприятно, но, чтобы стать программистом — надо
иметь мозоль на заднице. Высиживать перед компьюте-
ром по 12 часов буквально на чистом энтузиазме. Про то,
https://liveinternet.club/
8 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Concept: Для кого эта книга? И для чего? 9
https://liveinternet.club/
10 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Concept: Для кого эта книга? И для чего? 11
Другие источники
https://liveinternet.club/
12 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Concept: Для кого эта книга? И для чего? 13
Контрольные вопросы:
1. Чем занимаются программисты?
2. Чему можно научиться у программистов?
3. Хочешь ли ты стать программистом на Питоне?
4. Как лучше всего читать эту книгу?
5. Где спросить, если что-то не понятно?
В сухом остатке:
1. прочитай книгу несколько раз;
2. выполняй задания в конце каждой главы;
3. работай над мотивацией, чтобы достичь своей цели;
4. изучай английский и Linux;
5. пользуйся разными источниками.
https://liveinternet.club/
https://liveinternet.club/
AGILE: КАК ПЕРЕСТАТЬ ЧИТАТЬ
И НАЧАТЬ ПРОГРАММИРОВАТЬ...
КАК ПОБОРОТЬ ЛЕНЬ. ДОФАМИН.
К
акие сложности могут быть при восхождении
на самую обычную гору? Или при прочтении учеб-
ника? Обычное дело, за которое со временем бе-
рется все меньше и меньше людей. Там же вроде все про-
сто, не так ли?
Я не говорю, что чтение учебника — это подвиг. Но и лег-
ким времяпрепровождением я это не назову. Это работа,
требующая усилий. Учись уважать свой (и чужой) труд,
нельзя обесценивать свои усилия. Если ты не признаешь,
что тратишь силы, то и восстанавливать их не будешь. От-
куда тогда брать энергию для свершений?
Бери и делай! Примерно у 95% процентов на этом этапе
начинаются проблемы. Проблемы, о которых как-то не-
ловко говорить, ведь окружающие поднимут на смех.
Ты и сам наверняка посмеивался над этими неудачниками.
Бывает очень тяжело признаться, что столкнулся с трудно-
стями. Нежелание делать — еще один способ избежать ра-
боты.
https://liveinternet.club/
16 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Agile: Как перестать читать и начать программировать... 17
1
Полозкова Вера. «Стихи из онлайн», 2013–2017.
2
Владимир Высоцкий. Из фильма «Вертикаль». 1966.
https://liveinternet.club/
18 Евгений Павлов. Знакомьтесь, Python
Первый шаг
https://liveinternet.club/
Agile: Как перестать читать и начать программировать... 19
Делай перерывы
Уперся в проблему? Зафиксируй ее, чтобы описать под-
робности другому. Сохрани свою работу. Сделай копию
и сохрани ее в надежное место. Например, в Git, про него
расскажу позднее. Сделай перерыв. Утро вечера мудре-
нее. Попей какао, посмотри в окно, разомнись, походи
по дому. Главное — не переключаться на посторонние
вещи. Сидеть в интернете или слушать радио — запрещено!
https://liveinternet.club/
20 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Agile: Как перестать читать и начать программировать... 21
https://liveinternet.club/
22 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Agile: Как перестать читать и начать программировать... 23
https://liveinternet.club/
24 Евгений Павлов. Знакомьтесь, Python
5
«Большой Лебовски», 1998. Джоэл Коэн, Итан Коэн.
https://liveinternet.club/
Agile: Как перестать читать и начать программировать... 25
В сухом остатке:
1. MVP — Minimal Value Product;
2. Time Management — умение планировать свой отдых;
3. Цель, План, Прогресс, Результат;
4. Print, Format, Output, Loop, If;
5. список книг для чтения на будущее.
https://liveinternet.club/
https://liveinternet.club/
IDE: СРЕДА РАЗРАБОТКИ.
HELLO WORLD. КУЛЬТУРА ТРУДА
I
DE · Интегрированная среда разработки (англ. Integrated
Development Environment). Это все программы, ко-
торые помогут вам разрабатывать программу. Не только
писать, но и отлаживать, хранить, проверять, выкладывать,
администрировать. Одним написанием кода дело не огра-
ничится. Нужно заставить код работать (и зарабатывать)!
По сути, IDE — это твое рабочее место. Твои инстру-
менты, с которыми ты должен уметь работать. Вот список
программ на рабочем компьютере под Windows, которыми
я пользуюсь:
1. FAR — менеджер файлов;
2. Notepad++ — текстовый редактор для просмотра фай-
лов;
3. Chrome — браузер для просмотра web;
4. 7zip — архиватор;
5. Telegram — мессенджер для связи с коллегами;
6. GIT — система хранения кода;
7. SourceTree — клиент для git;
https://liveinternet.club/
28 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 29
https://liveinternet.club/
30 Евгений Павлов. Знакомьтесь, Python
cd C:\Python311\
.\python.exe
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 31
exit
https://liveinternet.club/
32 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 33
[Win] py [Enter]
[Continue]
https://liveinternet.club/
34 Евгений Павлов. Знакомьтесь, Python
[Create]
[Ctrl] + [Alt] + S
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 35
[OK]
https://liveinternet.club/
36 Евгений Павлов. Знакомьтесь, Python
Ано работаит!!!
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 37
cd C:\Projects\FirstPython
.\venv\Scripts\activate
6
«Бегущий по лезвию», 1982. Ридли Скотт.
https://liveinternet.club/
38 Евгений Павлов. Знакомьтесь, Python
(venv) PS C:\Projects\FirstPython>
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 39
numpy==1.24.2
Proceed (Y/n)? y
https://liveinternet.club/
40 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 41
8
«Монти Пайтон и Священный Грааль», 1975. Терри Гиллиам, Терри
Джонс.
https://liveinternet.club/
42 Евгений Павлов. Знакомьтесь, Python
Стримы программистов
https://liveinternet.club/
IDE: Среда разработки. Hello World. Культура труда 43
В сухом остатке:
1. Integrated Development Environment;
2. Python.org;
3. Anaconda & Jupyter Notebook;
4. PyCharm Community Edition;
5. С 2020 поддерживается только Python 3.
https://liveinternet.club/
https://liveinternet.club/
ROOT: КРАТКАЯ ИСТОРИЯ
ПРОГРАММИРОВАНИЯ...
ВЕХИ РАЗВИТИЯ. ТРЕНДЫ
Особенности IT индустрии
E
xponencial Growth для финансов — это одна из не-
многих индустрий, которая все еще растет экспонен-
циально. Вот почему вокруг IT так много хайпа. Эта
индустрия все еще в начальной стадии бурного роста, в от-
личие от нефтяной индустрии, например, где бурный рост
уже давно закончился. Вместо этого идет укрупнение про-
изводства, чтобы уменьшить издержки производства.
Agile. Разработка информационного продукта стоит до-
рого, а производство копий — почти нулевое. Это фунда-
ментальное свойство IT индустрии, позволило совсем
иначе строить производственные циклы. Мы можем очень
быстро выпустить продукт, а затем очень часто обновлять
его, заменяя старые версии продукта новыми. Такой подход
«на максималках» — это и есть принципы Agile.
https://liveinternet.club/
46 Евгений Павлов. Знакомьтесь, Python
Структурное программирование
В 1970 году вышел язык СИ. Язык, ставший промыш-
ленным стандартом на многие десятилетия. Почти все
современные языки включают в себя его синтаксис.
В те легендарные времена многие современные риски
еще не существовали. Компилятор был однопроходным,
программы маленькими, а ресурсы ограниченными.
https://liveinternet.club/
Root: Краткая история программирования... 47
9
Научно-технический рэп — «Папа может в Си», 2020.
https://liveinternet.club/
48 Евгений Павлов. Знакомьтесь, Python
10
Гимн хакеров, Сергей Лукьяненко «Лабиринт отражений». АСТ, 2017.
https://liveinternet.club/
Root: Краткая история программирования... 49
Объектно Ориентированное
Программирование
Золотая эра программирования — время, когда вычис-
лительные мощности удваиваются каждые два года.
Легендарный закон Мура. Гордон Мур — основатель Intel.
Чего бы ты не создавал, достаточно подождать пару лет
и производительность железа превысит вычислительные
требования твоей задачи.
Кстати, основные отличия C++ от С — это вовсе не ООП,
как ответят тебе 95% программистов. Вот остальные
ключевые отличия, из-за которых в названии появилось аж
два плюса:
1. пространство имен (namespace);
2. виртуальные функции (virtual function);
3. перегрузка операторов (overloading);
4. исключения (exception handling);
5. шаблоны (pattern).
https://liveinternet.club/
50 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Root: Краткая история программирования... 51
https://liveinternet.club/
52 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Root: Краткая история программирования... 53
https://liveinternet.club/
54 Евгений Павлов. Знакомьтесь, Python
Программирование 2.0
Вот появились нейронные сети — одно из направлений
машинного обучения. Одна из веток искусственного ин-
теллекта, а веток развития было очень много. Самая успеш-
ная на сегодня — искусственные нейронные сети. Среди
нейронных, самые популярные — это GPT: генеративные
(generative — создающий контент) предварительно обу-
ченные (pre-trained) трансформеры (transformer — тип
архитектуры нейронной сети, позволяет использовать для
обучения неразмеченные данные).
Время от времени случаются прорывы — вспыхивает эн-
тузиазм, выделяется финансирование на дальнейшую раз-
работку, затем снова все затихает и наступает зима. Прямо
сейчас происходит прорыв. Давай попробуем разобраться,
что нам сегодня известно про эту тему.
Еще один шаг к тому, чтобы машина сама разбиралась
в задаче и решала ее. Размечаем данные, вопрос и ответ,
а затем прогреваем нейронку этими данными. Нуж-
ные зависимости между параметрами — усиливаются. Не-
нужное — ослабляется. Потребуется очень много данных,
чтобы обучить робота, а стоит это все как чугунный мост.
Зато уже обученная (застывшая) нейронка требует
на удивление мало ресурсов, чтобы выдать результат. Для
https://liveinternet.club/
Root: Краткая история программирования... 55
https://liveinternet.club/
56 Евгений Павлов. Знакомьтесь, Python
Знаковые книги
Брайан Керниган и Деннис Ритчи
«Язык программирования Си»
Эта книга написана создателями языка. Книга написана
не для новичков, несмотря на простые примеры в начале
https://liveinternet.club/
Root: Краткая история программирования... 57
Гради Буч
«Объектно-ориентированный анализ и проекти-
рование с примерами приложений»
Книга содержит объектные методы решения сложных
проблем, связанные с разработкой сложных программ.
На примерах показаны основные концепции объектно-
ориентированного подхода. Книга содержит практические
советы по вопросам анализа, проектирования, реализации
и управления программными проектами. Полезна, прежде
всего, системным аналитикам и архитекторам.
https://liveinternet.club/
58 Евгений Павлов. Знакомьтесь, Python
Контрольные вопросы:
1. Назови трех известных программистов.
2. Кто создал язык Python?
3. Чем отличается аргумент от параметра функции?
4. Что такое Third party software?
5. Почему SOLID используется чаще чем OOP?
6. Чем асинхронность отличается от многопоточности?
7. Чем чистый код отличается от спагетти кода?
8. Как расшифровывается GPT?
9. Что такое переобучение?
https://liveinternet.club/
Root: Краткая история программирования... 59
В сухом остатке:
1. функциональное программирование — до 100 стро-
чек.
2. объектно-ориентированное — выше 1000 строк;
3. SOLID актуальнее чем OOP;
4. нейронная сеть не может объяснить выбор ответа.
https://liveinternet.club/
https://liveinternet.club/
INDUSTRIAL: СОРТА ПИТОНА,
И КАК ИХ ГОТОВИТЬ...
ОБЛАСТИ ПРИМЕНЕНИЯ. КУДА КОПАТЬ
К
уча специалистов с навыками программирова-
ния пользуются именно Питоном, поэтому у Пи-
тона большое сообщество, которое поможет ответить
на любой вопрос. Ты никогда не останешься один на один
со своей проблемой.
Программист Питона — это сферический конь в ва-
кууме. Умеет писать на Питоне, но не разбирается ни в ка-
кой предметной области. Короче, бесполезен.
https://liveinternet.club/
62 Евгений Павлов. Знакомьтесь, Python
12
Анекдот.
13
«ДМБ», 2000. Режиссер Роман Качанов.
https://liveinternet.club/
Industrial: Сорта питона, и как их готовить... 63
Прикладные вычисления
Обычные люди используют калькулятор, чтобы свести
расходы и доходы. Бухгалтеры используют электронные та-
блицы, чтобы посчитать сумму в отчетах. Профессионалы
используют Jupiter Notebook, чтобы забирать любые данные
и сразу выдавать по ним результаты. С пылу, с жару!
14
«Карты, деньги, два ствола», 1998. Режиссер Гай Ричи.
15
Коммерческая система отслеживания ошибок.
16
Программная библиотека на языке Python для обработки и анализа
данных.
17
Свободная программная система визуализации данных, ориентиро-
ванная на данные системы ИТ-мониторинга.
18
Библиотека с открытым исходным кодом для Python и R, которая от-
лично подходит для создания красивых и интерактивных визуализаций.
https://liveinternet.club/
64 Евгений Павлов. Знакомьтесь, Python
Серверные скрипты
https://liveinternet.club/
Industrial: Сорта питона, и как их готовить... 65
https://liveinternet.club/
66 Евгений Павлов. Знакомьтесь, Python
Нейронные сети
Основные стадии:
1. исследование бизнес-процессов;
2. разработка/модификация нейронных сетей;
3. подготовка данных и их разметка;
4. обучение/дообучение нашей нейронной сети;
5. внедрение в производство.
https://liveinternet.club/
Industrial: Сорта питона, и как их готовить... 67
https://liveinternet.club/
68 Евгений Павлов. Знакомьтесь, Python
19
Научно-тенический рэп — «Джанго это я», 2021.
https://liveinternet.club/
Industrial: Сорта питона, и как их готовить... 69
https://liveinternet.club/
70 Евгений Павлов. Знакомьтесь, Python
Контрольные вопросы:
1. Какие профессии предпочитают использовать Jupiter
Notebook?
2. Зачем нужен API?
3. Чем отличаются REST API от API?
4. Какие библиотеки для нейронных сетей — полезные?
5. Зачем нужен Google Colaboratory?
https://liveinternet.club/
Industrial: Сорта питона, и как их готовить... 71
В сухом остатке:
1. Data Analyst — аналитик по анализу и презентации
данных;
2. Data Scientist — программист по сбору и обработке
данных;
3. Data Engineer — инженер работает с инфраструкту-
рой для хранения данных;
4. DevOps — системный администратор, управляет IT
инфраструктурой;
5. Product Manager — отвечает за продукт, общается
с заказчиком и командой разработки;
6. Разметка данных — специалисты из предметной
области проекта.
https://liveinternet.club/
https://liveinternet.club/
DATA WAREHOUSE:
КАК ХРАНИТЬ ДАННЫЕ?
ИСТОЧНИКИ И ПОТОКИ ДАННЫХ.
НОВАЯ НЕФТЬ
П
рограмма на Питоне — это хранение и обработка
данных.
Построение инфраструктуры для аналитики
подразумевает сбор данных из разных источников и сохра-
нение их в единое хранилище (ClickHouse от Яндекса).
Работа с финансами сводится к регистрации и хране-
нию транзакций, расчету балансов на счетах клиентов.
Все это хранится в базе данных (PostgreSQL).
Для пользователей нам нужно выгружать выписки
в табличные документы (Excel), рисовать графики (Grafana,
Plotly) и показывать html страницы (Django)
Программисту на Питоне не избежать SQL (Structured
Query Language) для работы с базами данных.
Пригодится и HTML стек: HTML (HyperText Markup
Language) + CSS (Cascading Style Sheets) + JS (JavaScript).
И обязательно знать: JSON (JavaScript Object Notation) — пе-
ресылка данных между скриптами.
https://liveinternet.club/
74 Евгений Павлов. Знакомьтесь, Python
Файловая система
FirstPython
Shift+F10
https://liveinternet.club/
Data WareHouse: Как хранить данные? 75
file_text = file_descriptor.read ()
print (file_text)
https://liveinternet.club/
76 Евгений Павлов. Знакомьтесь, Python
numpy==1.24.2
import os.path
path_to_file = os.path.join (‘..’, ‘requirements.txt’)
https://liveinternet.club/
Data WareHouse: Как хранить данные? 77
https://liveinternet.club/
78 Евгений Павлов. Знакомьтесь, Python
JSON
{
«ключ1»:»значение 1»,
«ключ2»: {«ключ21»:»значение 21»,
«ключ22»:»значение 22»},
«ключ3»: [«значение 31», «значение 32»,
«значение 33»]
}
https://liveinternet.club/
Data WareHouse: Как хранить данные? 79
sample_dic = {}
sample_array = []
https://liveinternet.club/
80 Евгений Павлов. Знакомьтесь, Python
import json
{“\u043a\u043b\u044e\u04471”: “\u0437\u043d\
u0430\u0447\u0435\u043d\u0438\u04351”,
https://liveinternet.club/
Data WareHouse: Как хранить данные? 81
https://liveinternet.club/
82 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Data WareHouse: Как хранить данные? 83
json_str = file_descriptor.read ()
main2_dic = json.loads (json_str)
print (main2_dic)
print (main_dic)
https://liveinternet.club/
84 Евгений Павлов. Знакомьтесь, Python
SQL
Для работы с базой данных придется обзавестись всем
необходимым. Приступим:
1. создать базу mySQL;
2. с помощью DBeaver подключиться к созданной базе
firstpython;
3. создать таблицу first_table и пару записей в ней;
4. установить пакет mysql-connector-python;
5. создать новый скрипт lesson3 и подключиться к базе;
6. вывести на консоль данные из нашей таблицы first_
table.
https://liveinternet.club/
Data WareHouse: Как хранить данные? 85
Сервер: db4free.net
База данных: firstpython
Username: firstpython
Password: который я указал при регистрации (надеюсь ты
тоже придумал свой пароль)
https://liveinternet.club/
86 Евгений Павлов. Знакомьтесь, Python
select *
from first_table ft
name1 |number2|
———-+———-+
hi dude| 1|
https://liveinternet.club/
Data WareHouse: Как хранить данные? 87
cd C:\Projects\FirstPython\
.\venv\Scripts\activate
(venv) PS D:\Projects\FirstPython>
import mysql.connector
sql_connection = mysql.connector.connect (
user=’firstpython’, password=’xxx’,
host=’db4free.net’, database=’firstpython’)
sql_connection.close ()
https://liveinternet.club/
88 Евгений Павлов. Знакомьтесь, Python
import mysql.connector
try:
sql_connection = mysql.connector.connect (
user=’firstpython1’, password=’xxx’,
host=’db4free.net’, database=’firstpython’)
except Exception as err:
print (err)
https://liveinternet.club/
Data WareHouse: Как хранить данные? 89
import mysql.connector
try:
sql_connection = mysql.connector.connect (
user=’firstpython’, password=’xxx’,
host=’db4free.net’, database=’firstpython’)
except Exception as err:
print (err)
try:
query_str = ‘select name1, number2 from first_
table’
sql_cursor = sql_connection.cursor ()
sql_cursor.execute (query_str)
https://liveinternet.club/
90 Евгений Павлов. Знакомьтесь, Python
Что почитать
https://liveinternet.club/
Data WareHouse: Как хранить данные? 91
Задания и примеры:
1. открой (создай) файл на запись и напечатай туда
7 строк с номерами;
2. создай массив из семи чисел, преврати его в json и со-
храни в файл;
3. напиши скрипт, который заполняет таблицу first_
table данными: название дней недели и числа 1—7.
В сухом остатке.
1. Строки: f — Formatting, r — Raw;
2. File Descriptor — ключ для доступа к файлу в операци-
онной системе;
3. JSON — JavaScript Object Notation;
4. SQL — Structured Query Language;
5. Connection — подключение к удаленному серверу;
6. Cursor — запрос для выполнения в базе данных и его
результаты.
https://liveinternet.club/
https://liveinternet.club/
RELEASE: ГЛАВНЫЕ
БИБЛИОТЕКИ ПИТОНА.
УЧЕБНАЯ ПРАКТИКА
П
ожалуй, самая сильная сторона Питона — это
библиотеки. Десятки библиотек, для работы над
разными задачами, от нейросетей до аналитики,
от графики до сайтов.
Расскажу про парочку важных библиотек, с которыми
полезно научиться работать, чтобы устроиться на работу
программистом Python.
Pandas
https://liveinternet.club/
94 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 95
import pandas as pd
https://liveinternet.club/
96 Евгений Павлов. Знакомьтесь, Python
# Вывод результатов
print (monthly_revenue)
import plotly.graph_objects as go
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 97
iframe.document.open ();
iframe.document.write (data);
https://liveinternet.club/
98 Евгений Павлов. Знакомьтесь, Python
iframe.document.close ();
}
});
});
</script>
Django
Django создали разработчики издания Lawrence-Journal
World. Этой газете понадобился сайт, чтобы публиковать
новости в интернете. Программисты Эдриан Головатый
и Саймон Виллисон создали веб-приложение и сделали его
публичным.
Вокруг Django быстро сформировалось активное сооб-
щество. Фреймворк стал стремительно развиваться усили-
ями волонтёров. Значительную роль в успехе Django сы-
грали несколько известных сайтов, которые использовали
этот фреймворк. В их число входят Pinterest, Dropbox,
Spotify, сайт The Washington Post. В настоящее время со-
общество Django включает десятки тысяч программистов
и сотни стран мира.
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 99
1. установи Django
https://liveinternet.club/
100 Евгений Павлов. Знакомьтесь, Python
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘fisrtpython’,
‘USER’: ‘firstpython’,
‘PASSWORD’: ‘пароль из предыдущей главы’,
‘HOST’: ‘db4free.net’,
‘PORT’: ‘3306’,
}
}
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 101
https://liveinternet.club/
102 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 103
RabbitMQ
В 2007 разработан Rabbit Technologies Ltd.
В 2010 продан в SpringSource, подразделение VMware.
В 2013 стал частью Pivotal Software.
В 2019 выкуплен обратно в VMware.
https://liveinternet.club/
104 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 105
@cerely_app.task
def add_two_numbers (x, y):
return x + y
https://liveinternet.club/
106 Евгений Павлов. Знакомьтесь, Python
>8
Google и NASA
В начале двухтысячных годов появился Python 2.0 и его
начали использовать такие гиганты как Google и NASA.
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 107
https://liveinternet.club/
108 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Release: Главные Библиотеки Питона. Учебная практика 109
https://liveinternet.club/
110 Евгений Павлов. Знакомьтесь, Python
Контрольные вопросы:
1. Расширением какой библиотеки является Pandas?
2. Какую архитектуру использует Django?
3. Что делает команда makemigrations?
4. Как связаны между собою RabbitMQ и Cerely?
5. Расширение какой библиотеки является Cerely?
В сухом остатке:
1. Anaconda, Jupiter Notebook, NumPy, Pandas
2. Grafana, Plotly, Confluence, Jira
3. Django — Model View Template, makemigrations
4. RabbitMQ, Pika, Cerely, Decorator, Task
https://liveinternet.club/
https://liveinternet.club/
GIT: СИСТЕМА КОНТРОЛЯ ВЕРСИЙ.
ГДЕ ХРАНИТЬ ИСХОДНИКИ
О
ктокот — это помесь осьминога и кота. Черный
с пятью щупальцами. Кстати, это не кот, а кошка.
Маскот (талисман) GitHub — крупнейшего сер-
виса для хранения открытого программного кода. Ее зовут
Мона Лиза, или просто Мона. Есть множество картинок
Моны в разных стилях: от звездных войн до Санта-Кла-
уса. Особое развлечение — разглядывать ее многочислен-
ные образы.
Git (Global Information Tracker) — система контроля вер-
сий, созданная Линусом Торвальдсом. Для управления
разработкой ядра Linux (Линукс), создателем которой он
является. Очень быстрая система для хранения истории из-
менений документов, слияния разных версий и выпуска
патчей.
https://liveinternet.club/
114 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 115
Ludum Dare
https://liveinternet.club/
116 Евгений Павлов. Знакомьтесь, Python
Создаем репозиторий
Давай создадим репозиторий для нашего проекта
на github. Открывай сайт github.com
Нажимай кнопку [Sign Up] чтобы зарегистрироваться
на этом сайте как новый пользователь.
Укажи свою почту, придумай пароль для github. Обрати
внимание, что в пароле нужны заглавные буквы и цифры,
всего не меньше 8 символов.
Придумай себе имя пользователя. В конце концов
github — это социальная сеть для программистов. Один
нюанс: это имя увидят твои работодатели, когда ты будешь
присылать им свое тестовое задание, например. Придумай
что-то более официальное, не повторяй мою ошибку!
Согласись получать новости и реши капчу. После чего
нажимай [Create Account].
Проверь почту, тебе должно прийти письмо из GitHub
с заголовком “Your GitHub launch code” прочитай код
и введи его на сайте.
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 117
https://liveinternet.club/
118 Евгений Павлов. Знакомьтесь, Python
Registration — [skip]
[Next]
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 119
https://liveinternet.club/
120 Евгений Павлов. Знакомьтесь, Python
Сохраняем изменения
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 121
Нажимай [Commit]
https://liveinternet.club/
122 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 123
https://liveinternet.club/
124 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
GIT: Система контроля версий. Где хранить исходники 125
https://liveinternet.club/
126
https://liveinternet.club/
верхний
бьеф
закрыто
открыто
нижний ВХОД В ШЛЮЗ
бьеф
верхний
бьеф
закрыто
закрыто
нижний ПОДЪЕМ
бьеф
верхний
бьеф
открыто
закрыто
нижний
бьеф ВЫХОД ИЗ ШЛЮЗА
Евгений Павлов. Знакомьтесь, Python
GIT: Система контроля версий. Где хранить исходники 127
Контрольные вопросы:
1. Как расшифровывается Git?
2. Что такое репозиторий?
22
Оригинал Jennifer Cloer, Lunix.com. Перевод @piva (habr.com)
https://liveinternet.club/
128 Евгений Павлов. Знакомьтесь, Python
В сухом остатке:
1. Git, GitHub, OctoCat, Mona Lisa
2. Git, SourceTree
3. Repository, Branch, Commit
4. gitignore
5. GitFlic.ru
https://liveinternet.club/
https://liveinternet.club/
FAQ: ГЛАВНЫЙ СЕКРЕТ
ПРОГРАММИРОВАНИЯ...
ФОРМУЛИРОВАТЬ МЫСЛИ.
ДЕКОМПОЗИЦИЯ.
СВЕРХУ ВНИЗ
Г
лавный секрет мастерства — это умение быть скром-
ным. Мастер не переоценивает свои силы и не пы-
тается удержать в голове все аспекты кода. Всегда
найдется такая сложная программа, которую ты не смо-
жешь удержать в голове полностью. Всегда найдется та-
кая ошибка, которую ты не предусмотрел. Черный пояс
по программированию — это умение использовать при-
емы и хитрости, помогающие облегчить задачу програм-
мирования. Не будь самонадеянным, бережно расходуй
свое мыслетопливо.
23
Индейская поговорка.
https://liveinternet.club/
132 Евгений Павлов. Знакомьтесь, Python
Декомпозиция
Физика — это первый предмет, который поможет в под-
готовке ума для программирования. Как и программисту,
физику нужно изучить явление, разложить его на законы
и посчитать. Именно физика развивает навык декомпо-
зиции (когда сложное явление раскладывается на более
простые части). До тех пор, пока каждая из частей не будет
достаточно простой для моделирования и расчетов, чтобы
объяснить ее и воспроизвести. Или предсказать.
https://liveinternet.club/
FAQ: Главный секрет программирования... 133
Как декомпозировать?
Попробую показать на примере создания приложения
для управления задачами (Task Manager). Задача по управ-
лению задачами?! Попахивает рекурсией.
Рамки применения? Сначала выясни контекст. Какие
у тебя входные данные могут быть? Что нужно получить
в итоге? Не ленись и выясняй на берегу как можно больше.
Для начала, определимся с общей целью такого прило-
жения: я хочу создать приложение, которое позволит поль-
зователям:
1. создавать новую задачу;
2. смотреть список созданных задач;
https://liveinternet.club/
134 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
FAQ: Главный секрет программирования... 135
Название Name
Подробное описание Description
Статус (нужен, и как я сразу не догадался?) Status
Дата создания (или дата начала выполнения?) Created
(StartDate)
Дата выполнения (смогу посчитать время выполне-
ния) CompletionDate
https://liveinternet.club/
136 Евгений Павлов. Знакомьтесь, Python
3. Редактирование задачи:
— Пользователь открывает приложение Task Manager.
— Пользователь выбирает задачу, которую он хочет от-
редактировать.
— Пользователь открывает задачу для редактирования.
— Пользователь изменяет название, описание или дату
выполнения задачи.
— Пользователь нажимает кнопку «Сохранить».
— Измененная задача сохраняется в базе данных прило-
жения.
4. Удаление задачи:
— Пользователь открывает приложение Task Manager.
— Пользователь выбирает задачу, которую он хочет уда-
лить.
— Пользователь нажимает кнопку «Удалить».
— Приложение запрашивает подтверждение удаления
задачи.
— Пользователь подтверждает удаление задачи.
— Задача удаляется из базы данных приложения.
Имена переменных
https://liveinternet.club/
FAQ: Главный секрет программирования... 137
https://liveinternet.club/
138 Евгений Павлов. Знакомьтесь, Python
4. Иерархия абстракций:
a. Вещь (шахта игрока) — Item
24
«Дар Орла. Огонь изнутри» Кастанеда Карлос Сезар Арана, 1993. Из-
дательство «София».
https://liveinternet.club/
FAQ: Главный секрет программирования... 139
6. Иерархия ссылочности:
a. Дом — House
b. Свойство Дома — HouseAttribute
c. Тип свойства Дома — HouseAttributeType
d. Свойство Типа дома — HouseTypeAttribute
e. Тип свойства для Типа дома — HouseTypeAttributeType
(для полноты всех комбинаций)
8. Имена объектов:
a. Имена классов — существительные с большой
буквы: House
b. Имена переменных — существительные с малень-
кой буквы: currentHouse
c. Свойства (property get/set) — существительные
с большой буквы: currentHouse.Name
d. Имена функций — глагол с большой буквы:
BuildHouse ()
https://liveinternet.club/
140 Евгений Павлов. Знакомьтесь, Python
Комментарии в коде
https://liveinternet.club/
FAQ: Главный секрет программирования... 141
Как комментировать?
Свободное письмо. Избавься от паралича и страха на-
писать что-то не то. Открою тайну: комментарии кроме
тебя никто не читает. Все, что ты написал в коде, скорее
всего никто и никогда не прочтет. Это останется между то-
бою и компилятором. И октокошкой. Лиза умеет хранить
тайны.
Напиши пару матерных комментариев (это весело!),
практикуй свободное письмо. В психологии есть такая тех-
ника: просто механически записывай все приходящие в го-
лову мысли. Помогает найти неординарные решения.
https://liveinternet.club/
142 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
FAQ: Главный секрет программирования... 143
Quick Sort
Quick Sort:
1. выбираем посередине массива опорный элемент;
2. перебираем все элементы из массива;
3. если элемент меньше опорного — отправляем налево,
если больше — направо;
https://liveinternet.club/
144 Евгений Павлов. Знакомьтесь, Python
25
Сериал «Касл», 2009-2016, Эндрю В. Марлоу.
https://liveinternet.club/
FAQ: Главный секрет программирования... 145
Упражнение по декомпозиции:
1. выбери проект для декомпозиции: супермаркет или
пиццерию;
2. выдели уровни абстракции для своего проекта;
3. распиши полный список объектов (классов) для каж-
дого уровня;
4. придумай английские названия для каждого объекта,
по вышесказанным правилам;
5. напиши техническое задание для программиста, ко-
торый будет реализовывать твой проект;
6. опиши тесты, с помощью которых ты будешь прове-
рять, что проект правильно работает.
В сухом остатке:
1. Декомпозиция: Рамки, Аналоги, Иерархия, Тесты
2. Name Convention, иерархия имен
3. Комментарии и документация
4. todo заметки и рефакторинг
https://liveinternet.club/
https://liveinternet.club/
LINUX: КОНСОЛЬ, КОМАНДЫ,
ЗАДАЧИ...
УГОЛОК АДМИНА
Пингвин Такс
T
ux (Такс, сокращ. от английского tuxedo — смокинг,
Torvalds UniX — Юникс Линуса Торвальдса) — офи-
циальный талисман (или маскот) Linux, созданный
в 1996 году Ларри Юингом. Это пухлый пингвин, выгля-
дящий сытым и довольным. Идею использовать пингвина
в качестве талисмана Linux выдвинул создатель этого ядра
Линус Торвальдс.
На рабочих машинах стоит Windows, на телефонах
Android, на серверах Linux.
Расскажу, как быстро создать Linux сервер для экспе-
риментов. Вместе с тем, мы немного поэкспериментируем
с удаленным терминалом (поиграем с пингвином Таксом).
В половине вакансий пишут о необходимости работы
с Linux. От тебя не требуется быть крутым администрато-
ром Линукса, но пару команд знать нужно, чтобы не бо-
яться консоли. И, когда потребуется, разобраться в ней.
Дружить с пингвином Таксом — полезно!
https://liveinternet.club/
148 Евгений Павлов. Знакомьтесь, Python
VPS на Linux
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 149
# adduser firstpython
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for secondpython
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
# exit
https://liveinternet.club/
150 Евгений Павлов. Знакомьтесь, Python
Работа с файлами
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
New release ‘22.04.2 LTS’ available.
Run ‘do-release-upgrade’ to upgrade to it.
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 151
$ pwd
/home/firstpython
$ cd..
firstpython@firstpython:/home$
$ ls
firstpython sammy
firstpython@firstpython:/home$
https://liveinternet.club/
152 Евгений Павлов. Знакомьтесь, Python
$ ls -l
total 8
drwxr-xr-x 4 firstpython firstpython 4096 Apr 9 20:55 firstpython
drwxr-xr-x 2 sammy sammy 4096 Mar 26 19:46 sammy
$ cd. / firstpython/
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 153
$ cat list.txt
total 40
drwxr-xr-x 4 firstpython firstpython 4096 Apr 10 19:20.
drwxr-xr-x 4 root root 4096 Apr 6 17:34..
-rw———- 1 firstpython firstpython 877 Apr 9 21:35.bash_
history
-rw-r — r— 1 firstpython firstpython 220 Mar 26 19:47.bash_
logout
-rw-r — r— 1 firstpython firstpython 3771 Mar 26 19:47.
bashrc
drwx——— 2 firstpython firstpython 4096 Apr 6 17:29.cache
-rw-rw-r— 1 firstpython firstpython 32 Apr 9 21:23 date.log
drwxrwxr-x 3 firstpython firstpython 4096 Apr 9 20:45.local
-rw-rw-r— 1 firstpython firstpython 0 Apr 10 19:20 ls.txt
-rw-r — r— 1 firstpython firstpython 807 Mar 26 19:47.profile
-rw-rw-r— 1 firstpython firstpython 66 Apr 9 20:45.selected_
editor
-rw-r — r— 1 firstpython firstpython 0 Apr 9 20:18.sudo_as_
admin_successful
$ head -n 3 list.txt
https://liveinternet.club/
154 Евгений Павлов. Знакомьтесь, Python
total 40
drwxr-xr-x 4 firstpython firstpython 4096 Apr 10 19:21.
drwxr-xr-x 4 root root 4096 Apr 6 17:34..
$ tail -n 3 list.txt
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 155
$ mkdir my_new_dir
$ mv list.txt./my_new_dir/list2.txt
$ ls./my_new_dir
list2.txt
$ ls
$ cp./my_new_dir/list2.txt list.txt
$ ls
https://liveinternet.club/
156 Евгений Павлов. Знакомьтесь, Python
$ rm -r./my_new_dir/
$ ls
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 157
$ cron
https://liveinternet.club/
158 Евгений Павлов. Знакомьтесь, Python
$ sudo cron
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 159
$ date
$ sudo crontab -e
https://liveinternet.club/
160 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 161
Ctrl + S
Выходи из редактора:
Ctrl + X
$ cat /home/firstpython/date.log
https://liveinternet.club/
162 Евгений Павлов. Знакомьтесь, Python
$ sudo crontab -e
Ctrl+S
Ctrl+X
$ cat /home/firstpython/date.log
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 163
Полезные лайфхаки.
https://liveinternet.club/
164 Евгений Павлов. Знакомьтесь, Python
$ mkdir my_new_dir
$ cd!$
Создаем директорию, а потом переходим в неё, исполь-
зуя!$ — последний параметр предыдущей команды. Дирек-
торию может проще будет подобрать, используя tab, а вот
какой-нибудь хитрый параметр или длинный ключ будет
https://liveinternet.club/
Linux: Консоль, Команды, Задачи... 165
Линус Торвальдс
Один из самых крутых программистов нашего вре-
мени — финский швед Линус Торвальдс из города Хель-
синки. Создатель Linux — операционной системы с от-
крытым исходным кодом. Под Linux работает треть всех
серверов в мире. Остальные две трети — это Unix и что-то
неизвестное.
https://liveinternet.club/
166 Евгений Павлов. Знакомьтесь, Python
Задания и Примеры:
1. создай папку в своей домашней директории;
2. создай файл в своей домашней директории;
3. открой файл в редакторе, напиши пару слов и со-
храни его;
4. распечатай список процессов на экране консоли.
В сухом остатке:
1. VPS — Virtual Private Server
2. SSH — Secure Shell
3. drwx — Directory, Read, Write, eXecute
4. stdin — Standard Input
5. stdout — Standard Output
6. sudo — Substitute User and DO
7. cron — планировщик запуска задач для Linux
https://liveinternet.club/
https://liveinternet.club/
DEBUG: ТЕМНАЯ СТОРОНА.
В ЛЮБОЙ НЕПОНЯТНОЙ СИТУАЦИИ
Н
е если, а когда твоя программа сломается, тебе при-
дется ее исправлять. Даже сейчас, когда я пишу эти
строки, мне не по себе. Сама мысль о том, что мой
“безупречный” код сломается — вызывает стресс. Не-
смотря на весь мой опыт, не взирая на все мои старания —
это все равно происходит! Исключительные ситуации —
это рутина нашей профессии.
27
«Звёздные войны: Эпизод 5 — Империя наносит ответный удар», 1980.
Ирвин Кершнер.
https://liveinternet.club/
170 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 171
Пошаговая отладка
https://liveinternet.club/
172 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 173
https://liveinternet.club/
174 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 175
Логирование
https://liveinternet.club/
176 Евгений Павлов. Знакомьтесь, Python
import os
import logging.config
LOGGING_CFG = {
“version”: 1,
‘formatters’: {
‘lesson4_format’: {
‘format’: ‘% (asctime) s [% (levelname) s]%
(filename) s:% (lineno) i% (message) s’
},
},
“handlers”: {
“lesson4_handle”: {
“level”: “INFO”,
“class”: “logging.FileHandler”,
‘formatter’: ‘lesson4_format’,
“filename”: os.path.join (os.getcwd (), “../
lesson4.log”),
},
},
“loggers”: {
“lesson4_log”: {
“handlers”: [“lesson4_handle”],
“level”: “INFO”,
},
},
}
Тут у нас есть:
1. formatter — формат строчки в файле логов, со всякой
дополнительной информацией;
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 177
logging.config.dictConfig (LOGGING_CFG)
logger = logging.getLogger (lesson4_log)
logger.info (‘test’)
logger.info (‘test’)
https://liveinternet.club/
178 Евгений Павлов. Знакомьтесь, Python
Слабое звено
Когда программа вообще перестала запускаться, вы-
давая ошибку, которую непонятно как исправить — попро-
буй откатиться назад. Открой Git и вернись к предыдущей
версии скрипта, когда он еще работал.
Давай вернемся к FirstPython:
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 179
https://liveinternet.club/
180 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 181
Держи удар
Хочу добавить еще пару слов про ментальное состояние.
Что делать, если застрял на ошибке в коде.
28
Майк Тайсон. Фильм «Tyson», 2008, режиссер Джеймс Тобэк.
https://liveinternet.club/
182 Евгений Павлов. Знакомьтесь, Python
Контрольные вопросы:
1. Как обрабатывать багрепорт?
2. Чем отличается Inline Watch от Watch для Debug?
3. Какими бывают уровни логов?
4. Как Git помогает локализовать критические ошибки?
5. Что такое Duck Debugging?
В сухом остатке:
1. доброжелательность и деликатность;
2. возьми паузу, чтобы воспроизвести ошибку;
3. debug для пошаговой отладки;
https://liveinternet.club/
Debug: Темная сторона. В любой непонятной ситуации 183
https://liveinternet.club/
https://liveinternet.club/
CLEAN CODE: ПРАВИЛА
ЧИСТОГО КОДА.
УГОЛОК АРХИТЕКТОРА. SOLID
П
рограммист ВСЕГДА работает с программным ко-
дом. В самом начале кода мало и его легко читать,
но со временем он обрастает костылями и заплат-
ками, превращаясь в говнокод.
29
«Матрица: Перезагрузка», 2003, братья Вачовски.
https://liveinternet.club/
186 Евгений Павлов. Знакомьтесь, Python
Форматирование —
новая Каллиграфия
Форматирование кода полезно даже для маленьких про-
грамм в 10 строчек.
Чем легче читать код, тем красивее он выглядит. Чем
легче понять код, тем проще находить в нем ошибки. Вот
почему так важно делать код красивым.
https://liveinternet.club/
Clean Code: Правила чистого кода... 187
https://liveinternet.club/
188 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Clean Code: Правила чистого кода... 189
Refactoring —
как шатать программу
Рефакторинг становится актуальным для большой про-
граммы от 1000 строк и выше. Если ты пишешь скрипты
меньше чем 1000 строк — тебе не надо разбираться в архи-
тектуре и рефакторинге.
https://liveinternet.club/
190 Евгений Павлов. Знакомьтесь, Python
Я меняю ее чтобы:
1. улучшить читабельность кода;
2. избавиться от запаха ошибок (самих ошибок я не вижу,
но по опыту чувствую, что они могут тут возникнуть);
3. добавить возможность расширения функционала;
4. упростить алгоритм.
https://liveinternet.club/
Clean Code: Правила чистого кода... 191
Макконнелл Стив
«Совершенный код»
Дьявол кроется в мелочах, с которыми приходится стал-
киваться ежедневно. Книга отвечает на вопросы, кото-
рые не принято спрашивать: где поставить пробел, как
назвать переменную, как и почему лучше обработать ис-
ключительную ситуацию, как проектировать классы и т. д.
Книга все раскладывает по полочкам, рассказывая, как соз-
давать совершенный код.
Мартин Фаулер
«Рефакторинг. Улучшение существующего кода»
Каждый шаг рефакторинга прост, но совокупный эффект
таких малых изменений в состоянии радикально улуч-
шить проект или даже предотвратить распад плохо спро-
ектированной программы.
https://liveinternet.club/
192 Евгений Павлов. Знакомьтесь, Python
Контрольные вопросы:
1. Чем хороший программист отличается от плохого?
2. Как улучшить даже небольшую программу?
3. До какого размера программы классы являются бес-
полезными?
4. Чем SOLID отличается от ООП?
5. Когда можно начинать рефакторинг?
В сухом остатке:
1. Форматирование — чтобы улучшить читаемость кода;
2. SOLID — чтобы обеспечить расширяемость и автома-
тическое тестирование;
3. рефакторинг — для устранения временных решений.
https://liveinternet.club/
https://liveinternet.club/
HUMAN RESOURCE:
КАК ПРОЙТИ СОБЕСЕДОВАНИЕ
Как попасть в IT
Е
сли ты никогда не работал программистом, никогда
не проходил собеседование на программиста — чего
вообще ожидать и как правильно себя вести?
Что за коллектив? Как складываются отношения? Что це-
нят в работе? Как начальник подбирает себе подчиненных?
Как пройти через фильтр кадрового отдела?
Пожалуй, главная ошибка новичка — это отсутствие
своих целей. Звучит странно, но умение внятно расска-
зать про свои цели и мотивацию все упрощает. Если ты
не знаешь, чего хочешь, то работодатель не понимает, чего
от тебя ждать.
Помни, не нужно нравиться всем подряд. Тебе нужно
найти свою работу и объяснить, что им нужен именно ты.
Для остальных — чем быстрее поймете, что не подходите
друг другу, тем лучше для всех.
Навык самопрезентации сложно переоценить. Elevator
Pitch — минутная презентация, будто ты оказался в лифте
с работодателем и тебе надо за минуту рассказать о себе.
Только самое важное! Не надо перечислять свои достиже-
https://liveinternet.club/
196 Евгений Павлов. Знакомьтесь, Python
Понабрали по объявлениям
Внимательно изучай объявления по вакансиям и при-
смотрись к формулировкам. Твоя цель — написать свое ре-
зюме так, чтобы в нем было как можно больше совпадений
с вакансией по словам и названиям. Кадровики ищут и от-
бирают соискателей по ключевым словам.
Поскольку ты новичок, обязательно ищи слово Junior
в объявлении. Это значит, что тебя будут терпеть и тра-
тить время на твое обучение. Для тебя — фронт работ
https://liveinternet.club/
Human Resource: Как пройти собеседование 197
https://liveinternet.club/
198 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Human Resource: Как пройти собеседование 199
https://liveinternet.club/
200 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Human Resource: Как пройти собеседование 201
https://liveinternet.club/
202 Евгений Павлов. Знакомьтесь, Python
Джим Кэмп
«Сначала скажите «нет». Секреты профессио-
нальных переговорщиков»
Эта книга изменит твою жизнь. Новый способ решать
сложнейшие личные и рабочие вопросы, оставаться спо-
койным и уверенным на собеседованиях, эффективно
отстаивать свои настоящие интересы.
Неважно, что думает твой собеседник, хочет тебя про-
вести или найти компромисс. Если ты не можешь добиться
желаемого от собеседника — откажись от переговоров и сэ-
кономь свое время.
Подход «выиграл-выиграл» плох в переговорах, потому
что он ведет к уступкам в ущерб себе. Ты уступаешь и на-
деешься, что оппонент уступит в ответ. А он не будет усту-
пать.
В ходе коммуникации сразу определись, переговоры это
или нет. Переговоры — соглашение между двумя или
большим количеством сторон, где каждая из сторон имеет
право вето. Каждый имеет право сказать нет.
Не надейся, что собеседник заинтересован в долгосроч-
ных результатах и готов пожертвовать выигрышем
ради того, чтобы в будущем получить гораздо больше.
https://liveinternet.club/
Human Resource: Как пройти собеседование 203
Питер Тиль
«От нуля к единице. Как создать стартап, кото-
рый изменит будущее»
Ты — это стартап. Продукт — это твой опыт и рабочее
время. Твои заказчики — это работодатели. Правильно вы-
брать профессию — найти свою нишу на рынке.
Самое провокационное утверждение Тиля: «конкурен-
ция — для неудачников»; монополия — вот, что нужно
предпринимателю. «Идеальный целевой рынок для стар-
тапа — небольшая группа вполне определенных людей, ко-
торую обслуживает небольшое число конкурентов или во-
обще никто».
1. Лучше рискнуть и быть чересчур смелым, чем ока-
заться банальным.
https://liveinternet.club/
204 Евгений Павлов. Знакомьтесь, Python
Подготовка к собеседованию.
1. изучи вакансии на HeadHunter для junior и выпиши
требования к вакансиям;
2. найди список вопросов на собеседовании для каждого
из таких требований;
3. составь учебный план, чтобы постепенно изучить все,
что требуется;
4. разберись, как надо отвечать на вопросы по теме. Сде-
лай практические задачи;
5. сохрани код своих учебных примеров на gitflic.
Оформи комментарии и документацию для своего
кода;
6. найди отзывы сотрудников для понравившихся орга-
низаций из объявлений;
7. составь свое резюме и сопроводительные письма. На-
пиши несколько писем для выбранных тобой объяв-
лений;
8. подготовь самопрезентацию.
В сухом остатке:
1. изучай требования к вакансиям на рынке;
2. определись с запросами: заплата, удаленность, экс-
пертиза, перспективы;
3. изучи отзывы о работодателе;
4. подготовь вопросы к работодателю;
https://liveinternet.club/
Human Resource: Как пройти собеседование 205
https://liveinternet.club/
https://liveinternet.club/
BONUS: КАРЬЕРА И ЗДОРОВЬЕ.
КАК ВКАЛЫВАТЬ И НЕ СГОРЕТЬ
Воля к жизни
Э
то учебник по программированию, а не книга про
успешный успех и саморазвитие. Так уж вышло,
что для своих целей надо не забывать про себя, иначе
сгоришь, пытаясь забраться по отвесной стене.
32
Анекдот.
https://liveinternet.club/
208 Евгений Павлов. Знакомьтесь, Python
Концентрация внимания
https://liveinternet.club/
Bonus: Карьера и здоровье. Как вкалывать и не сгореть 209
Планирование и отдых
Это не про марафоны желаний. Только бездуховность,
Scrum и циничный расчет.
Прежде всего, я хочу разделить два этапа: постановка
целей и планирование. Многие смешивают свои жела-
ния цели и планы в одну кучу. Но я делаю иначе.
Цель — это то, чего ты хочешь достичь. Настолько
сильно, что готов от чего-то отказаться, чтобы получить же-
лаемое взамен. Это вопрос приоритета: пойти на утрен-
нюю пробежку или сладко поспать еще часок. Семья или
карьера. Деньги или счастье. Образование или развлечения.
Здесь нет хорошего и плохого. Есть важное и то, от чего
можно отказаться.
Раз в год надо потратить день на размышления. Спо-
койно обдумай, выпиши все свои хотелки и все, что при-
https://liveinternet.club/
210 Евгений Павлов. Знакомьтесь, Python
33
Дуайт Эйзенхауэр, Sid Meier’s Civilization V, Firaxis Games, 2010.
https://liveinternet.club/
Bonus: Карьера и здоровье. Как вкалывать и не сгореть 211
Я молодец.
Сделал небольшой шаг.
Завтра попробую ещё.
https://liveinternet.club/
212 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Bonus: Карьера и здоровье. Как вкалывать и не сгореть 213
Друзья и Коллеги
https://liveinternet.club/
214 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Bonus: Карьера и здоровье. Как вкалывать и не сгореть 215
Полезные книги
Осторожно! Эти книги действительно тяжелые для изуче-
ния. Если получится читать по странице в день и конспек-
тировать прочитанное — уже хлеб.
Андрей Беловешкин
«Воля к жизни. Как использовать ресурсы здоро-
вья по максимуму»
Это учебник кандидата медицинских наук Андрея Бело-
вешкина. Он рассказывает с позиции науки и доказатель-
ной медицины. Андрей нравится мне своим системным
подходом, основанным на многочисленных научных ис-
следованиях. Вот 7 вредных привычек, убивающих твое
здоровье:
1. гиподинамия, cидячий образ жизни;
2. плохое питание;
3. дефицит солнечного света;
4. недосып;
5. хронический стресс и трудоголизм;
6. вынужденное одиночество;
7. бедность.
https://liveinternet.club/
216 Евгений Павлов. Знакомьтесь, Python
Александр Кравцов
«Найди ментора. Как перейти на следующий уро-
вень»
Книга про знакомства с теми, кто намного выше тебя.
Как выстраивать отношения со старшими товарищами.
Считаю, полезно почитать вокруг темы про менторов. За-
бавно, что никто из окружающих толком не знает, что такое
ментор и чем он отличается от тьютора, коуча, наставника,
преподавателя или тренера. Это все разные роли с разными
целями и задачами. Книга прежде всего про стратегию раз-
вития личностных ресурсов:
1. таланты — личные качества и способности;
2. компетенции — твои знания и умения;
3. связи — твое окружение;
4. репутация — твоя известность за пределами ближнего
круга.
https://liveinternet.club/
Bonus: Карьера и здоровье. Как вкалывать и не сгореть 217
Контрольные вопросы:
1. Зачем нужна медитация?
2. Чем планы отличаются от целей?
3. Зачем нужна поддержка?
4. Зачем нужен ментор?
В сухом остатке:
1. делай перерывы;
2. пиши планы;
3. планируй отдых;
4. помогай другим.
https://liveinternet.club/
https://liveinternet.club/
ACHIEVEMENTS:
ТАБЛИЦА ДОСТИЖЕНИЙ.
МЕТА-ИГРА В КНИЖКЕ
Н
апоследок, немножко игрофикации. Это поможет
тебе оценить, как много полезного усвоил из этой
книги (а что оказалось за бортом). Еще немного мо-
тивации для освоения новой профессии.
Хорошей идеей будет похвастаться в соц.сетях, что ты
прочитал эту книжку, и добавить теги достижений, кото-
рые сумел получить за время чтения. Заодно посмотришь,
как много народу сумело сделать точно так же. Эдакий за-
крытый клуб, для тех, кто сумел.
https://liveinternet.club/
220 Евгений Павлов. Знакомьтесь, Python
https://liveinternet.club/
Achievements: Таблица достижений. Мета-игра в книжке 221
https://liveinternet.club/
СОДЕРЖАНИЕ
Concept:
Для кого эта книга? И для чего?........................................... 7
Agile:
Как перестать читать и начать программировать.
Как побороть лень. Дофамин. .............................................. 15
IDE:
Среда разработки. Hello World. Культура труда................. 27
Root:
Краткая история программирования...
Вехи развития. Тренды ......................................................... 45
Industrial:
Сорта питона, и как их готовить.
Области применения. Куда копать ..................................... 61
Data WareHouse:
Как хранить данные?
Источники и потоки данных. Новая нефть ........................ 73
Release:
Главные Библиотеки Питона. Учебная практика .............. 93
https://liveinternet.club/
223
GIT:
Система контроля версий. Где хранить исходники ........ 113
FAQ:
Главный секрет программирования.
Формулировать мысли. Декомпозиция.
Сверху вниз.......................................................................... 131
Linux:
Консоль, Команды, Задачи. (Уголок админа) ................... 147
Debug:
Темная сторона. В любой непонятной ситуации ............ 169
Clean Code:
Правила чистого кода. Уголок архитектора.
SOLID .................................................................................... 185
Human Resource:
Как пройти собеседование. Как заходить в хату .............. 195
Bonus:
Карьера и здоровье. Как вкалывать и не сгореть .............. 207
Achievements:
Таблица достижений. Мета-игра в книжке ..................... 219
https://liveinternet.club/
Научно-популярное издание
ԑɵɥɵɦɢɛԝԕɚɪɚɥɵԕɛɚɫɩɚ
Серия «Программирование для всех»
Евгений Павлов
ЗНАКОМЬТЕСЬ, PYTHON
Секреты профессии
https://liveinternet.club/
https://liveinternet.club/