Skip to content

Commit a89f1aa

Browse files
travisjneumanclaude
andcommitted
feat: add absolute beginner entry point and restructure curriculum
Major curriculum overhaul to bridge the gap between "zero tech experience" and the existing Level 0 projects: - Add level-00-absolute-beginner with 15 exercises (no imports, no tests, heavy inline comments) progressing from print("hello") to a complete mini-program with functions, loops, and file reading - Add 00_COMPUTER_LITERACY_PRIMER.md explaining what terminals, files, and programs are for true beginners - Add START_HERE.md (20-line quick start) - Add PROGRESS.md learner tracking checklist - Add concepts/ directory with 7 standalone concept explainers - Add CLAUDE.md for AI-assisted learning sessions Restructure for reduced overwhelm: - Move docs 16-50 into curriculum/ subdirectory (advanced path) - Keep only docs 00-15 in root (foundation path) - Update all cross-references and Next/Prev links - Archive PythonBootcamp/ to _archive/ - Remove .ipynb_checkpoints, update .gitignore CI fixes: - Update check_root_doc_contract.sh for new directory structure - Re-enable root doc contract check in CI workflow Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent de24dc0 commit a89f1aa

515 files changed

Lines changed: 2567 additions & 226 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/curriculum-checks.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ jobs:
3838
- name: Markdown link checks
3939
run: ./tools/check_markdown_links.sh
4040

41-
- name: Root doc contract checks (temporarily disabled)
42-
if: ${{ false }}
41+
- name: Root doc contract checks
4342
run: ./tools/check_root_doc_contract.sh
4443

4544
- name: Level index contract checks

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ __pycache__/
33
.venv/
44
venv/
55
.env
6+
.ipynb_checkpoints/
7+
*.ipynb_checkpoints/

.ipynb_checkpoints/Default-checkpoint.py

Whitespace-only changes.

.ipynb_checkpoints/myfirstnotebook-checkpoint.ipynb

Lines changed: 0 additions & 6 deletions
This file was deleted.

00_COMPUTER_LITERACY_PRIMER.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# 00 - Computer Literacy Primer
2+
Home: [README](./README.md)
3+
4+
Read this before anything else if you have never programmed before. If you already know what a terminal is and have used a text editor, skip to [01_ROADMAP.md](./01_ROADMAP.md).
5+
6+
## What is programming?
7+
8+
Programming is writing instructions for a computer to follow. That is it.
9+
10+
A computer does not think. It does not guess. It reads your instructions one at a time, from top to bottom, and does exactly what you said. If you give it good instructions, it produces useful results. If you give it bad instructions, it tells you what went wrong (this is called an "error message" and they are helpful, not scary).
11+
12+
Python is one language you can use to write those instructions. It was designed to be readable and beginner-friendly. It is also used professionally by engineers at every major company.
13+
14+
## What is a file?
15+
16+
A file is a container for data stored on your computer. Every document, photo, song, and program is a file.
17+
18+
Files have names and extensions. The extension is the part after the dot:
19+
- `report.docx` — a Word document
20+
- `photo.jpg` — an image
21+
- `hello.py` — a Python script
22+
23+
The `.py` extension tells your computer "this is a Python file." When you write Python code, you will create `.py` files.
24+
25+
## What is a folder (directory)?
26+
27+
A folder is a container for files. Folders can contain other folders. This creates a tree structure:
28+
29+
```
30+
my_computer/
31+
Documents/
32+
report.docx
33+
budget.xlsx
34+
Projects/
35+
learn_python/
36+
hello.py
37+
exercise.py
38+
```
39+
40+
The "path" is the address of a file or folder. It tells the computer exactly where to find something:
41+
- Windows: `C:\Users\Travis\Projects\learn_python\hello.py`
42+
- Mac/Linux: `/Users/Travis/Projects/learn_python/hello.py`
43+
44+
## What is a text editor?
45+
46+
A text editor is a program for writing plain text files. It is different from Microsoft Word:
47+
- Word saves formatted text (bold, fonts, margins) — computers cannot run this as code
48+
- A text editor saves plain text — just characters, no formatting
49+
50+
**VS Code** (Visual Studio Code) is the text editor recommended in this course. It is free, made by Microsoft, and specifically designed for writing code. It highlights your code in different colors to make it easier to read, catches mistakes as you type, and has a built-in terminal.
51+
52+
Other text editors you may hear about: Sublime Text, Notepad++, Vim. They all work. VS Code is the easiest to start with.
53+
54+
## What is a terminal?
55+
56+
The terminal (also called "command line" or "command prompt") is a text-based way to talk to your computer. Instead of clicking icons and menus, you type commands.
57+
58+
It looks like this:
59+
```
60+
C:\Users\Travis> _
61+
```
62+
63+
The blinking cursor means the terminal is waiting for you to type a command.
64+
65+
### How to open the terminal
66+
67+
**Windows:**
68+
- Press the Windows key, type "PowerShell", click "Windows PowerShell"
69+
- Or: press the Windows key, type "cmd", click "Command Prompt"
70+
- Or: in VS Code, press Ctrl+` (backtick, the key above Tab)
71+
72+
**Mac:**
73+
- Press Cmd+Space, type "Terminal", press Enter
74+
- Or: in VS Code, press Ctrl+` (backtick)
75+
76+
**Linux:**
77+
- Press Ctrl+Alt+T (on most distributions)
78+
- Or: in VS Code, press Ctrl+`
79+
80+
### Basic terminal commands
81+
82+
You only need a few commands to start:
83+
84+
| Command | What it does | Example |
85+
|---------|-------------|---------|
86+
| `cd` | Change directory (go to a folder) | `cd Projects` |
87+
| `ls` (Mac/Linux) or `dir` (Windows) | List files in current folder | `ls` |
88+
| `python` | Start Python interactive mode | `python` |
89+
| `python file.py` | Run a Python file | `python hello.py` |
90+
| `exit()` | Leave Python interactive mode | `exit()` |
91+
92+
When you type `cd Projects`, you are telling the computer "move into the Projects folder." When you type `python hello.py`, you are saying "run the file hello.py using Python."
93+
94+
## What does "running code" mean?
95+
96+
When you "run" a Python file, this happens:
97+
98+
1. You type `python hello.py` in the terminal
99+
2. The Python program reads your file from top to bottom
100+
3. It executes each instruction one at a time
101+
4. If an instruction produces output (like `print("Hello")`), you see it in the terminal
102+
5. When it reaches the end of the file, it stops
103+
104+
That is it. Your file does not change. The computer just read it and followed the instructions.
105+
106+
## What is an error message?
107+
108+
When Python cannot understand or execute your instructions, it shows an error message. Error messages are not punishment — they are Python telling you exactly what went wrong and where.
109+
110+
Example:
111+
```
112+
File "hello.py", line 3
113+
print("Hello)
114+
^
115+
SyntaxError: unterminated string literal
116+
```
117+
118+
This tells you:
119+
- The problem is in `hello.py`, line 3
120+
- The `^` points to where Python got confused
121+
- `SyntaxError: unterminated string literal` means you forgot to close a quote
122+
123+
Read error messages carefully. They almost always tell you what to fix.
124+
125+
## What you need to remember
126+
127+
1. A program is a file full of instructions
128+
2. Python reads those instructions top to bottom
129+
3. The terminal is where you tell the computer to run your program
130+
4. Errors are helpful clues, not failures
131+
5. You do not need to memorize anything — understanding the pattern is enough
132+
133+
## Next
134+
Go to [01_ROADMAP.md](./01_ROADMAP.md).

01_ROADMAP.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -183,39 +183,39 @@ Fail/recover guidance:
183183
- A complete progression from beginner to enterprise-capable Python practitioner.
184184
- A portfolio of capstones tied to your real data systems.
185185
- A clear upgrade path to full-stack expert mastery:
186-
- [21_FULL_STACK_MASTERY_PATH.md](./21_FULL_STACK_MASTERY_PATH.md)
187-
- [22_SPECIALIZATION_TRACKS.md](./22_SPECIALIZATION_TRACKS.md)
188-
- [23_RESOURCE_AND_CURRICULUM_MAP.md](./23_RESOURCE_AND_CURRICULUM_MAP.md)
189-
- [24_MASTERY_SCORING_AND_GATES.md](./24_MASTERY_SCORING_AND_GATES.md)
190-
- [25_INFINITY_MASTERY_LOOP.md](./25_INFINITY_MASTERY_LOOP.md)
186+
- [21_FULL_STACK_MASTERY_PATH.md](./curriculum/21_FULL_STACK_MASTERY_PATH.md)
187+
- [22_SPECIALIZATION_TRACKS.md](./curriculum/22_SPECIALIZATION_TRACKS.md)
188+
- [23_RESOURCE_AND_CURRICULUM_MAP.md](./curriculum/23_RESOURCE_AND_CURRICULUM_MAP.md)
189+
- [24_MASTERY_SCORING_AND_GATES.md](./curriculum/24_MASTERY_SCORING_AND_GATES.md)
190+
- [25_INFINITY_MASTERY_LOOP.md](./curriculum/25_INFINITY_MASTERY_LOOP.md)
191191
- A literal, no-assumptions execution path for absolute beginners:
192-
- [26_ZERO_TO_MASTER_PLAYBOOK.md](./26_ZERO_TO_MASTER_PLAYBOOK.md)
193-
- [27_DAY_0_TO_DAY_30_BOOTSTRAP.md](./27_DAY_0_TO_DAY_30_BOOTSTRAP.md)
194-
- [28_LEVEL_0_TO_2_DEEP_GUIDE.md](./28_LEVEL_0_TO_2_DEEP_GUIDE.md)
195-
- [29_LEVEL_3_TO_5_DEEP_GUIDE.md](./29_LEVEL_3_TO_5_DEEP_GUIDE.md)
196-
- [30_LEVEL_6_TO_8_DEEP_GUIDE.md](./30_LEVEL_6_TO_8_DEEP_GUIDE.md)
197-
- [31_LEVEL_9_TO_10_AND_BEYOND.md](./31_LEVEL_9_TO_10_AND_BEYOND.md)
198-
- [32_DAILY_SESSION_SCRIPT.md](./32_DAILY_SESSION_SCRIPT.md)
199-
- [33_WEEKLY_REVIEW_TEMPLATE.md](./33_WEEKLY_REVIEW_TEMPLATE.md)
200-
- [34_FAILURE_RECOVERY_ATLAS.md](./34_FAILURE_RECOVERY_ATLAS.md)
201-
- [35_CAPSTONE_BLUEPRINTS.md](./35_CAPSTONE_BLUEPRINTS.md)
192+
- [26_ZERO_TO_MASTER_PLAYBOOK.md](./curriculum/26_ZERO_TO_MASTER_PLAYBOOK.md)
193+
- [27_DAY_0_TO_DAY_30_BOOTSTRAP.md](./curriculum/27_DAY_0_TO_DAY_30_BOOTSTRAP.md)
194+
- [28_LEVEL_0_TO_2_DEEP_GUIDE.md](./curriculum/28_LEVEL_0_TO_2_DEEP_GUIDE.md)
195+
- [29_LEVEL_3_TO_5_DEEP_GUIDE.md](./curriculum/29_LEVEL_3_TO_5_DEEP_GUIDE.md)
196+
- [30_LEVEL_6_TO_8_DEEP_GUIDE.md](./curriculum/30_LEVEL_6_TO_8_DEEP_GUIDE.md)
197+
- [31_LEVEL_9_TO_10_AND_BEYOND.md](./curriculum/31_LEVEL_9_TO_10_AND_BEYOND.md)
198+
- [32_DAILY_SESSION_SCRIPT.md](./curriculum/32_DAILY_SESSION_SCRIPT.md)
199+
- [33_WEEKLY_REVIEW_TEMPLATE.md](./curriculum/33_WEEKLY_REVIEW_TEMPLATE.md)
200+
- [34_FAILURE_RECOVERY_ATLAS.md](./curriculum/34_FAILURE_RECOVERY_ATLAS.md)
201+
- [35_CAPSTONE_BLUEPRINTS.md](./curriculum/35_CAPSTONE_BLUEPRINTS.md)
202202
- A world-class elite extension path:
203-
- [36_ELITE_ENGINEERING_TRACK.md](./36_ELITE_ENGINEERING_TRACK.md)
204-
- [37_QUARTERLY_EXAMS_AND_DEFENSES.md](./37_QUARTERLY_EXAMS_AND_DEFENSES.md)
205-
- [38_SYSTEM_DESIGN_AND_RFCS.md](./38_SYSTEM_DESIGN_AND_RFCS.md)
206-
- [39_PRODUCTION_PLATFORM_LAB.md](./39_PRODUCTION_PLATFORM_LAB.md)
207-
- [40_SECURITY_COMPLIANCE_HARDENING.md](./40_SECURITY_COMPLIANCE_HARDENING.md)
208-
- [41_PERFORMANCE_ENGINEERING_LAB.md](./41_PERFORMANCE_ENGINEERING_LAB.md)
209-
- [42_OPEN_SOURCE_CONTRIBUTION_LANE.md](./42_OPEN_SOURCE_CONTRIBUTION_LANE.md)
210-
- [43_PUBLIC_PROOF_OF_WORK_PORTFOLIO.md](./43_PUBLIC_PROOF_OF_WORK_PORTFOLIO.md)
211-
- [44_SME_INTERVIEW_AND_DEBATE_BANK.md](./44_SME_INTERVIEW_AND_DEBATE_BANK.md)
212-
- [45_MASTERY_TELEMETRY_AND_REMEDIATION.md](./45_MASTERY_TELEMETRY_AND_REMEDIATION.md)
203+
- [36_ELITE_ENGINEERING_TRACK.md](./curriculum/36_ELITE_ENGINEERING_TRACK.md)
204+
- [37_QUARTERLY_EXAMS_AND_DEFENSES.md](./curriculum/37_QUARTERLY_EXAMS_AND_DEFENSES.md)
205+
- [38_SYSTEM_DESIGN_AND_RFCS.md](./curriculum/38_SYSTEM_DESIGN_AND_RFCS.md)
206+
- [39_PRODUCTION_PLATFORM_LAB.md](./curriculum/39_PRODUCTION_PLATFORM_LAB.md)
207+
- [40_SECURITY_COMPLIANCE_HARDENING.md](./curriculum/40_SECURITY_COMPLIANCE_HARDENING.md)
208+
- [41_PERFORMANCE_ENGINEERING_LAB.md](./curriculum/41_PERFORMANCE_ENGINEERING_LAB.md)
209+
- [42_OPEN_SOURCE_CONTRIBUTION_LANE.md](./curriculum/42_OPEN_SOURCE_CONTRIBUTION_LANE.md)
210+
- [43_PUBLIC_PROOF_OF_WORK_PORTFOLIO.md](./curriculum/43_PUBLIC_PROOF_OF_WORK_PORTFOLIO.md)
211+
- [44_SME_INTERVIEW_AND_DEBATE_BANK.md](./curriculum/44_SME_INTERVIEW_AND_DEBATE_BANK.md)
212+
- [45_MASTERY_TELEMETRY_AND_REMEDIATION.md](./curriculum/45_MASTERY_TELEMETRY_AND_REMEDIATION.md)
213213
- A universal learner-adaptive completion path:
214-
- [46_ACCESSIBILITY_AND_LEARNING_PROFILE_PLAYBOOK.md](./46_ACCESSIBILITY_AND_LEARNING_PROFILE_PLAYBOOK.md)
215-
- [47_DIAGNOSTIC_AND_PERSONALIZED_STUDY_ENGINE.md](./47_DIAGNOSTIC_AND_PERSONALIZED_STUDY_ENGINE.md)
216-
- [48_MISCONCEPTION_AND_FAILURE_ATLAS_EXPANDED.md](./48_MISCONCEPTION_AND_FAILURE_ATLAS_EXPANDED.md)
217-
- [49_COMPETENCY_COVERAGE_AND_GAP_CLOSURE_MATRIX.md](./49_COMPETENCY_COVERAGE_AND_GAP_CLOSURE_MATRIX.md)
218-
- [50_CERTIFICATION_GRADE_COMPLETION_PROTOCOL.md](./50_CERTIFICATION_GRADE_COMPLETION_PROTOCOL.md)
214+
- [46_ACCESSIBILITY_AND_LEARNING_PROFILE_PLAYBOOK.md](./curriculum/46_ACCESSIBILITY_AND_LEARNING_PROFILE_PLAYBOOK.md)
215+
- [47_DIAGNOSTIC_AND_PERSONALIZED_STUDY_ENGINE.md](./curriculum/47_DIAGNOSTIC_AND_PERSONALIZED_STUDY_ENGINE.md)
216+
- [48_MISCONCEPTION_AND_FAILURE_ATLAS_EXPANDED.md](./curriculum/48_MISCONCEPTION_AND_FAILURE_ATLAS_EXPANDED.md)
217+
- [49_COMPETENCY_COVERAGE_AND_GAP_CLOSURE_MATRIX.md](./curriculum/49_COMPETENCY_COVERAGE_AND_GAP_CLOSURE_MATRIX.md)
218+
- [50_CERTIFICATION_GRADE_COMPLETION_PROTOCOL.md](./curriculum/50_CERTIFICATION_GRADE_COMPLETION_PROTOCOL.md)
219219
- Elite systems projects for advanced practice:
220220
- [projects/elite-track/README.md](./projects/elite-track/README.md)
221221

15_NEXT_LEVEL_EXPANSION_PLAN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,4 +164,4 @@ A learner is "SME-ready" when they can reliably:
164164
- [Pro Git Book](https://git-scm.com/book/en/v2.html)
165165

166166
## Next
167-
Go to [16_LEARNER_PROFILE_AND_PLACEMENT.md](./16_LEARNER_PROFILE_AND_PLACEMENT.md).
167+
Go to [16_LEARNER_PROFILE_AND_PLACEMENT.md](./curriculum/16_LEARNER_PROFILE_AND_PLACEMENT.md).

CLAUDE.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# learn.python — AI Tutor Configuration
2+
3+
> This file configures AI sessions for the Python learning curriculum.
4+
5+
## What This Repo Is
6+
7+
A comprehensive Python curriculum: zero tech experience to world-class full-stack mastery. Contains 50+ sequenced documents, 175+ hands-on projects across 12 levels, CI validation tooling, and a personalized study plan generator.
8+
9+
## Learner Context
10+
11+
- **Current level:** Absolute beginner (update this as you progress)
12+
- **Current position:** Starting at level-00-absolute-beginner
13+
- **Hours/week:** 8-10
14+
- **Learning mode:** Hybrid (structured weekdays, exploration weekends)
15+
16+
## AI Tutoring Rules
17+
18+
### DO
19+
- **Explain concepts** in plain language before showing code
20+
- **Ask the learner to predict** what code will do before running it
21+
- **Guide debugging** by asking "what does the error message say?" before giving the fix
22+
- **Celebrate progress** — learning to code is hard, especially from zero
23+
- **Connect new concepts** to things the learner already understands
24+
- **Use the Socratic method** — ask questions that lead to understanding
25+
26+
### DO NOT
27+
- **Write code for the learner** unless they are truly stuck after trying
28+
- **Skip ahead** in the curriculum — follow the level sequence
29+
- **Use jargon** without defining it first
30+
- **Give the answer** when the learner has not attempted the problem
31+
- **Overwhelm** with edge cases when the learner is learning fundamentals
32+
33+
### When the learner is stuck
34+
1. Ask them to read the error message out loud
35+
2. Ask what they think the error means
36+
3. Point them to the relevant line/concept
37+
4. If still stuck after 2-3 hints, show the fix WITH explanation
38+
39+
## Curriculum Structure
40+
41+
```
42+
Root docs (learning path):
43+
00_COMPUTER_LITERACY_PRIMER.md → What is a computer/terminal/file
44+
01_ROADMAP.md → Full program overview
45+
02_GLOSSARY.md → Key terms defined
46+
03_SETUP_ALL_PLATFORMS.md → Install Python
47+
04_FOUNDATIONS.md → Core Python concepts
48+
05-10: Domain skills → Excel, SQL, SolarWinds, Dashboards
49+
11-15: Support infrastructure → Checklists, checkpoints, schemas
50+
51+
curriculum/ (advanced path, docs 16-50):
52+
Docs 16-25: Assessment, mastery scoring, specialization
53+
Docs 26-35: Zero-to-master execution layer
54+
Docs 36-45: Elite engineering track
55+
Docs 46-50: Adaptive learning layer
56+
57+
projects/ (hands-on practice):
58+
level-00-absolute-beginner/ → 15 exercises (no imports, no tests)
59+
level-0/ through level-10/ → 15 projects each (full structure)
60+
elite-track/ → 10 advanced projects
61+
```
62+
63+
## Session Workflow
64+
65+
When starting a learning session:
66+
1. Check PROGRESS.md for current position
67+
2. Load the relevant exercise/project
68+
3. Follow the curriculum sequence — do not skip ahead
69+
4. Update PROGRESS.md when exercises/projects are completed
70+
71+
## Project Conventions
72+
73+
- **level-00:** Single `exercise.py` + `TRY_THIS.md`, no tests, no imports
74+
- **level-0 through level-10:** Full structure (README, project.py, tests/, data/, notes.md)
75+
- **Elite track:** Advanced structure with architecture docs
76+
77+
## Tech Stack
78+
79+
- Python 3.11+
80+
- pytest (testing, from Level 0 onward)
81+
- Ruff (linting, from Level 0 onward)
82+
- Black (formatting, from Level 0 onward)

0 commit comments

Comments
 (0)