Содержание....6
Предисловие автора....13
Все это персонально....14
Используйте приложенные видеоролики....15
Часть I. Начальные знания....17
Что, если я ненавижу твое дурацкое персональное движение, Зед?....19
Что, если окажется, что у меня все плохо?....19
Упражнение 0. Настройка....21
Редактор программиста....21
Python 3 6....22
Рабочий терминал....22
Рабочая конфигурация pip+virtualenv....22
Записная книжка....23
Учетная запись на Github.com....23
git....23
Дополнительно: программное обеспечение для записи с экрана....23
Дальнейшее обучение....24
Упражнение 1. Движение....25
Задача упражнения....27
Практические задания....28
Дальнейшее обучение....29
Упражнение 2. Креативность....30
Задача упражнения....31
Практическое задание....32
Упражнение 3. Качество....33
Задача упражнения....35
Практическое задание....36
Часть II. Быстрые задания....37
Как развивать креативность....38
Для начинающих программистов....40
Кодинг начинающего программиста....41
Упражнение 4. Аргументы командной строки....42
Задача упражнения....43
Решение....44
Практические задания....44
Упражнение 5. Команда cat....45
Задача упражнения....45
Решение....46
Практические задания....47
Дальнейшее обучение....47
Упражнение 6. Команда find....48
Задача упражнения....49
Практические задания....50
Дальнейшее обучение....51
Упражнение 7. Команда grep....52
Задача упражнения....53
Практические задания....53
Дальнейшее обучение....54
Упражнение 8. Команда cut....55
Задача упражнения....56
Практическое задание....57
Дальнейшее обучение....57
Упражнение 9. Команда sed....58
Задача упражнения....59
Практические задания....60
Дальнейшее обучение....60
Упражнение 10. Команда sort....61
Задача упражнения....62
Практические задания....63
Дальнейшее обучение....63
Упражнение 11. Команда uniq....64
Задача упражнения....65
Практические задания....65
Дальнейшее обучение....65
Упражнение 12. Обзор....66
Задача упражнения....67
Практические задания....68
Дальнейшее обучение....68
Часть III. Структуры данных....69
Обучение качеству с использованием структур данных....71
Как изучать структуры данных....72
Упражнение 13. Односвязные списки....75
Описание....75
Контроллер....77
Тест....79
Вводный аудит....81
Задача упражнения....83
Аудит....83
Практическое задание....83
Упражнение 14. Двусвязные списки....84
Введение в инвариантные условия....85
Задача упражнения....87
Практическое задание....88
Упражнение 15. Стеки и очереди....89
Задача упражнения....90
Ломаем это....91
Дальнейшее обучение....92
Упражнение 16. Пузырьковая и быстрая сортировка, сортировка слиянием....93
Задача упражнения....94
Изучаем пузырьковую сортировку....96
Сортировка слиянием....97
Плутовство при сортировке слиянием....98
Быстрая сортировка....100
Практические задания....101
Упражнение 17. Словарь....102
Задача упражнения....102
«Мастер-копия» кода....103
Скопируйте код....104
Добавьте аннотации....108
Подведите итоги структуры данных....108
Запомните итоги....109
Реализуйте по памяти....110
Повторение....111
Практические задания....111
Ломаем это....111
Упражнение 18. Измерение производительности....112
Инструменты....112
Анализируем производительность....116
Задача упражнения....118
Практические задания....119
Ломаем это....119
Дальнейшее обучение....119
Упражнение 19. Повышение производительности....120
Задача упражнения....122
Дальнейшее обучение....123
Упражнение 20. Двоичные деревья поиска....124
Особенности ДДП....124
Удаление....126
Задача упражнения....126
Практические задания....127
Упражнение 21. Двоичный поиск....128
Задача упражнения....128
Практические задания....129
Дальнейшее обучение....129
Упражнение 22. Суффиксные массивы....130
Задача упражнения....131
Практические задания....132
Дальнейшее обучение....132
Упражнение 23. Троичные деревья поиска....133
Задача упражнения....133
Практические задания....136
Упражнение 24. Быстрый поиск по URL....137
Задача упражнения....137
Практические задания....139
Дальнейшее обучение....139
Часть IV. Проекты следующего уровня....140
Отслеживание ошибок....141
Упражнение 25. Команда xargs....142
Задача упражнения....142
Практические задания....143
Упражнение 26. Команда hexdump....144
Задача упражнения....145
Практическое задание....147
Дальнейшее обучение....147
Упражнение 27. Команда tr....148
Задача упражнения....149
Критика 45-минутного подхода....149
Практические задания....150
Упражнение 28. Команда sh....151
Задача упражнения....151
Практическое задание....152
Дальнейшее обучение....152
Упражнение 29. Команды diff и patch....153
Задача упражнения....153
Практическое задание....155
Дальнейшее обучение....155
Часть V. Анализ текста....156
Введение в покрытие кода....157
Упражнение 30. Конечные автоматы....159
Задача упражнения....161
Практические задания....163
Дальнейшее обучение....164
Упражнение 31. Регулярные выражения....165
Задача упражнения....167
Практические задания....168
Дальнейшее обучение....168
Упражнение 32. Лексические анализаторы....169
Небольшой лексический анализатор Puny....171
Задача упражнения....173
Практические задания....174
Дальнейшее обучение....174
Упражнение 33. Синтаксические анализаторы....176
Синтаксический анализ методом рекурсивного спуска....178
Грамматика формы Бэкуса - Наура....180
Быстрый демонстрационный синтаксический анализатор....182
Задача упражнения....185
Практическое задание....186
Дальнейшее обучение....186
Упражнение 34. Семантические анализаторы....187
Шаблон Посетитель....188
Короткий семантический анализатор Puny Python....189
Синтаксический анализатор против семантического анализатора....193
Задача упражнения....193
Практические задания....194
Дальнейшее обучение....194
Упражнение 35. Интерпретаторы....195
Интерпретаторы против компиляторов....195
Python - это и то и другое....196
Как написать интерпретатор....197
Задача упражнения....198
Практические задания....198
Дальнейшее обучение....198
Упражнение 36. Простой калькулятор....199
Задача упражнения....199
Практические задания....201
Дальнейшее обучение....201
Упражнение 37. Немного Бейсика....202
Задача упражнения....203
Практические задания....203
Часть VI. SQL и объектно-реляционное отображение....204
Понимать SQL - это понимать таблицы....205
Что вы изучите....206
Упражнение 38. Введение в SQL....208
Что такое SQL?....209
Настройка....210
Изучаем словарь SQL....211
Грамматика SQL....213
Дальнейшее обучение....213
Упражнение 39. Создание в SQL....214
Создание таблиц....214
Создание многотабличной базы данных....215
Вставка данных....216
Вставка ссылочных данных....217
Задача упражнения....217
Дальнейшее обучение....219
Упражнение 40. Чтение в SQL....219
Выбор среди множества таблиц....220
Задача упражнения....221
Дальнейшее обучение....222
Упражнение 41. Обновление в SQL....223
Обновление комплексных данных....224
Замена данных....224
Задача упражнения....225
Дальнейшее обучение....226
Упражнение 42. Удаление в SQL....227
Удаленнее использованием других таблиц....228
Задача упражнения....229
Дальнейшее обучение....230
Упражнение 43. Администрирование SQL....231
Уничтожение и изменение таблиц....231
Миграция и развитие данных....233
Задача упражнения....234
Дальнейшее обучение....235
Упражнение 44. Использование API баз данных Python....236
Изучение API....236
Задача упражнения....237
Дальнейшее обучение....238
Упражнение 45. Создание объектно-реляционного менеджера....239
Задача упражнения....239
Дальнейшее обучение....240
Часть VII. Финальные проекты....241
Каково ваше движение?....242
Упражнение 46. Инструмент blog....244
Задача упражнения....244
Практические задания....246
Упражнение 47. Язык Ьс....247
Задача упражнения....247
Практическое задание....248
Упражнение 48. Команда ed....249
Задача упражнения....249
Практические задания....250
Упражнение 49. Команда sed....251
Задача упражнения....252
Практическое задание....253
Упражнение 50. Текстовый редактор vi....254
Задача упражнения....255
Практические задания....255
Упражнение 51. Создание веб-сервера (lessweb)....256
Задача упражнения....256
Ломаем это....257
Упражнение 52. Создание веб-сервера (moreweb)....259
Задача упражнения....259
Ломаем это....260
Дальнейшее обучение....261
Предметный указатель....262
Сначала будет трудно. Но затем все станет великолепно!
52 идеально продуманных упражнения, а также теорию и ответы на часто задаваемые вопросы. Выполняйте задания, исправляйте ошибки, запускайте программы и наслаждайтесь результатом!