Table of Contents
Cover Page
Title Page
Copyright Page
Contents
Preface
It’s All Personal
Using the Included Videos
PART I Initial Knowledge
What If I Hate Your Stupid Personal Process Zed?
What If I Find Out I’m Terrible?
Exercise 0 The Setup
A Programmer’s Editor
Python 3.6
A Working Terminal
A Working pip+virtualenv Configuration
Lab Journal
A Github.com Account
git
Optional: Screen-Recording Software
Further Study
Exercise 1 On Process
Exercise Challenge
Study Drills
Further Study
Exercise 2 On Creativity
Exercise Challenge
Study Drill
Exercise 3 On Quality
Exercise Challenge
Study Drill
PART II Quick Hacks
How to Practice Creativity
A Process for Early Coders
An Early Coder’s Coding Process
Exercise 4 Dealing with Command Line Arguments
Exercise Challenge
Solution
Study Drills
Exercise 5 cat
Exercise Challenge
Solution
Study Drills
Further Study
Exercise 6 find
Exercise Challenge
Study Drills
Further Study
Exercise 7 grep
Exercise Challenge
Study Drills
Further Study
Exercise 8 cut
Exercise Challenge
Study Drill
Further Study
Exercise 9 sed
Exercise Challenge
Study Drills
Further Study
Exercise 10 sort
Exercise Challenge
Study Drills
Further Study
Exercise 11 uniq
Exercise Challenge
Study Drills
Further Study
Exercise 12 Review
Exercise Challenge
Study Drills
Further Study
PART III Data Structures
Learning Quality through Data Structures
How to Study Data Structures
Exercise 13 Single Linked Lists
Description
Controller
Test
Introductory Auditing
Exercise Challenge
Auditing
Study Drill
Exercise 14 Double Linked Lists
Introducing Invariant Conditions
Exercise Challenge
Study Drill
Exercise 15 Stacks and Queues
Exercise Challenge
Breaking It
Further Study
Exercise 16 Bubble, Quick, and Merge Sort
Exercise Challenge
Study Bubble Sort
Merge Sort
Merge Sort Cheat Mode
Quick Sort
Study Drills
Exercise 17 Dictionary
Exercise Challenge
Doing a “Code Master Copy”
Copy the Code
Annotate the Code
Summarize the Data Structure
Memorize the Summary
Implement from Memory
Repeat
Study Drills
Break It
Exercise 18 Measuring Performance
The Tools
timeit
cProfile and profile
Analyzing Performance
Exercise Challenge
Study Drills
Breaking It
Further Study
Exercise 19 Improving Performance
Exercise Challenge
Further Study
Exercise 20 Binary Search Trees
BSTree Requirements
Deleting
Exercise Challenge
Study Drills
Exercise 21 Binary Search
Exercise Challenge
Study Drills
Further Study
Exercise 22 Suffix Arrays
Exercise Challenge
Study Drills
Further Study
Exercise 23 Ternary Search Trees
Exercise Challenge
Study Drills
Exercise 24 Fast URL Search
Exercise Challenge
Study Drills
Further Study
PART IV Intermediate Projects
Tracking Your Defects
Exercise 25 xargs
Exercise Challenge
Study Drills
Exercise 26 hexdump
Exercise Challenge
Study Drill
Further Study
Exercise 27 tr
Exercise Challenge
A Criticism of 45-Minute Blocks
Study Drills
Exercise 28 sh
Exercise Challenge
Study Drill
Further Study
Exercise 29 diff and patch
Exercise Challenge
Study Drill
Further Study
PART V Parsing Text
Introducing Code Coverage
Exercise 30 Finite State Machines
Exercise Challenge
Study Drills
Further Study
Exercise 31 Regular Expressions
Exercise Challenge
Study Drills
Further Study
Exercise 32 Scanners
Puny Python Scanner
Exercise Challenge
Study Drills
Further Study
Exercise 33 Parsers
Recursive Descent Parsing
BNF Grammars
Quick Demo Hack Parser
Exercise Challenge
Study Drill
Further Study
Exercise 34 Analyzers
Visitor Pattern
A Short Puny Python Analyzer
Parser versus Analyzer
Exercise Challenge
Study Drills
Further Study
Exercise 35 Interpreters
Interpreters versus Compilers
Python Is Both
How to Write an Interpreter
Exercise Challenge
Study Drills
Further Study
Exercise 36 Simple Calculator
Exercise Challenge
Study Drills
Further Study
Exercise 37 Little BASIC
Exercise Challenge
Study Drills
PART VI SQL and Object Relational Mapping
Understanding SQL Is Understanding Tables
What You’ll Learn
Exercise 38 Introduction to SQL
What Is SQL?
The Setup
Learning SQL Vocabulary
SQL Grammar
Further Study
Exercise 39 Creating with SQL
Creating Tables
Creating a Multi-table Database
Inserting Data
Insert Referential Data
Exercise Challenge
Further Study
Exercise 40 Reading with SQL
Select across Many Tables
Exercise Challenge
Further Study
Exercise 41 Updating with SQL
Updating Complex Data
Replacing Data
Exercise Challenge
Further Study
Exercise 42 Deleting with SQL
Deleting Using Other Tables
Exercise Challenge
Further Study
Exercise 43 SQL Administration
Destroying and Altering Tables
Migrating and Evolving Data
Exercise Challenge
Further Study
Exercise 44 Using Python’s Database API
Learning an API
Exercise Challenge
Further Study
Exercise 45 Creating an ORM
Exercise Challenge
Further Study
PART VII Final Projects
What Is Your Process?
Exercise 46 blog
Exercise Challenge
Study Drills
Exercise 47 bc
Exercise Challenge
Study Drill
Exercise 48 ed
Exercise Challenge
Study Drills
Exercise 49 sed
Exercise Challenge
Study Drill
Exercise 50 vi
Exercise Challenge
Study Drills
Exercise 51 lessweb
Exercise Challenge
Breaking It
Study Drills
Exercise 52 moreweb
Exercise Challenge
Breaking It
Further Study
Index