|
1 | | -# 01 — Roadmap: Zero → Python SME (Automation + Dashboards + Excel/SQL/SolarWinds) |
2 | | - |
3 | | -Generated: **Monday, February 16, 2026, 2:11 PM (America/Detroit)** |
4 | | - |
5 | | -## What “Python SME” means (concrete outcomes) |
6 | | -By the end, you can: |
7 | | -- Build **reliable automation tools** that run unattended (scheduled tasks) and are safe to rerun. |
8 | | -- Build **repeatable reporting pipelines**: Excel → transform → SQL → dashboard/report. |
9 | | -- Integrate with **SolarWinds Orion** via API (read metrics, alerts; write/ack where permitted). |
10 | | -- Ship **internal web GUIs / dashboards** for non-technical teammates. |
11 | | -- Use modern team standards: **virtual environments, dependency pinning, formatting, linting, tests, logging, packaging**. |
12 | | -- Teach others: docs, examples, code reviews, patterns, “pitfall” guidance. |
13 | | - |
14 | | -## The optimal learning order (why this order) |
15 | | -1. **Foundations**: logic + reading code + debugging (otherwise everything else is random memorization). |
16 | | -2. **Professional workflow**: venv/pip, git, lint/format, tests, logging (so you don’t build fragile scripts). |
17 | | -3. **Data + IO**: files + Excel (fastest path to real business value). |
18 | | -4. **SQL**: data persistence + reporting pipeline. |
19 | | -5. **SolarWinds**: apply APIs + query language + auth + data modeling. |
20 | | -6. **Dashboards**: UI + data access patterns + caching + security basics. |
21 | | -7. **CI/CD + packaging**: how you ship repeatably (even if corporate is locked down, you will understand it). |
22 | | - |
23 | | -## Time model (flexible) |
24 | | -- Baseline: **6–8 hours/week** |
25 | | -- Typical: **9–12 months** to “team-trusted SME” if you consistently ship small tools. |
26 | | -- Faster path: 10–12 hours/week + weekly capstone increments. |
27 | | - |
28 | | -You progress by **deliverables**, not by time spent. |
29 | | - |
30 | | ---- |
31 | | - |
32 | | -# Phase 0 — Setup (Week 1) |
33 | | -**Goal:** Your environment is predictable and professional. |
34 | | - |
35 | | -Do: **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)** (exact steps) |
36 | | - |
37 | | -Deliverables: |
38 | | -- A folder called `python_sme/` with: |
39 | | - - `templates/` (project template) |
40 | | - - `notes/` (your learning notes) |
41 | | - - `projects/` (each project gets its own folder) |
42 | | -- You can: |
43 | | - - create a venv |
44 | | - - install packages with pip |
45 | | - - run a script |
46 | | - - run tests |
47 | | - |
48 | | ---- |
49 | | - |
50 | | -# Phase 1 — Foundations (Weeks 2–6) |
51 | | -**Goal:** You can read and write basic programs without copying blindly. |
52 | | - |
53 | | -Study backbone: |
54 | | -- **Automate the Boring Stuff (3rd ed)** (Ch. 1–11) citeturn0search12turn0search19 |
55 | | -- Python tutorial for reinforcement (esp. functions, modules) citeturn0search1 |
56 | | - |
57 | | -What you must master: |
58 | | -- Types: int/float/str/bool/None |
59 | | -- Data structures: list/dict/set/tuple |
60 | | -- Control: if/elif/else, for/while, break/continue |
61 | | -- Functions: parameters, return values, “small composable functions” |
62 | | -- Debugging: reading tracebacks, printing, using VS Code debugger |
63 | | -- Files: read/write text safely (encoding), paths, directories |
64 | | - |
65 | | -Deliverables: |
66 | | -- 12–20 “micro scripts” (each 30–120 lines) that do one thing well |
67 | | -- A personal “pitfalls” note (truthiness, mutability, off-by-one) |
68 | | - |
69 | | -Guide: **[04_FOUNDATIONS.md](./04_FOUNDATIONS.md)** |
70 | | - |
71 | | ---- |
72 | | - |
73 | | -# Phase 2 — Professional workflow (Weeks 7–10) |
74 | | -**Goal:** Your code is usable by others (consistent, tested, logged). |
| 1 | +# 01 - Roadmap: Zero Experience -> Python SME (Enterprise Automation and Dashboards) |
| 2 | +Home: [README](./README.md) |
75 | 3 |
|
76 | | -Core: |
77 | | -- `venv` + `pip` + dependency pinning citeturn0search5turn0search9 |
78 | | -- `pyproject.toml` as the single config hub citeturn2search1 |
79 | | -- Lint/format: Ruff + Black citeturn0search2 |
80 | | -- Tests: pytest citeturn2search2 |
81 | | -- Logging: Python logging module |
| 4 | +## Who this is for |
| 5 | +- You have zero coding, scripting, or programming experience. |
| 6 | +- You need practical outcomes in an enterprise operations environment. |
| 7 | +- You learn best by doing real work, not passive studying. |
| 8 | + |
| 9 | +## What you will build |
| 10 | +- Reliable Python automations for files, Excel, SQL, and monitoring data. |
| 11 | +- Repeatable ETL workflows using MSSQL as a reporting backbone. |
| 12 | +- SolarWinds Orion and DPA data ingestion jobs. |
| 13 | +- Browser-based dashboards for non-technical stakeholders. |
82 | 14 |
|
83 | | -Deliverables: |
84 | | -- A reusable **tool template**: |
85 | | - - `src/` layout |
86 | | - - CLI entrypoint |
87 | | - - config loading |
88 | | - - structured logging |
89 | | - - tests |
90 | | - - lint/format scripts |
| 15 | +## Prerequisites |
| 16 | +- Windows 11 machine. |
| 17 | +- Permission to install Python and VS Code. |
| 18 | +- Access path for MSSQL credentials (non-SSO SQL auth is supported in this plan). |
| 19 | +- Read-only API access to Orion and DPA to start. |
91 | 20 |
|
92 | | -Guide: **[09_QUALITY_TOOLING.md](./09_QUALITY_TOOLING.md)** + **[02_GLOSSARY.md](./02_GLOSSARY.md)** |
| 21 | +## Program overview (8-10 hrs/week default) |
| 22 | +- Phase 0 (Week 1): environment setup and first script. |
| 23 | +- Phase 1 (Weeks 2-6): Python foundations. |
| 24 | +- Phase 2 (Weeks 7-10): quality tooling and team-ready workflow. |
| 25 | +- Phase 3 (Weeks 11-16): file and Excel automation. |
| 26 | +- Phase 4 (Weeks 17-22): SQL-first ETL pipelines. |
| 27 | +- Phase 5 (Weeks 23-28): Orion and DPA integration. |
| 28 | +- Phase 6 (Weeks 29-38): dashboard delivery for browser users. |
| 29 | +- Phase 7 (Weeks 39+): release process, governance, and handoff maturity. |
93 | 30 |
|
94 | | ---- |
| 31 | +## Step-by-step lab pack |
95 | 32 |
|
96 | | -# Phase 3 — Files + Excel reporting (Weeks 11–16) |
97 | | -**Goal:** Immediate business value: repeatable reporting from spreadsheets. |
98 | | - |
99 | | -Tools: |
100 | | -- `pathlib`, `csv`, `json` |
101 | | -- `openpyxl` (Excel) and optionally `pandas` (transformations) |
102 | | - |
103 | | -Capstone Project A: **Excel Merger + Validator + Report** |
104 | | -- Input: folder of Excel files |
105 | | -- Output: `Master_Report.xlsx` + `Master_Report.csv` |
106 | | -- Features: |
107 | | - - schema validation (required columns) |
108 | | - - normalization (header mismatches) |
109 | | - - highlight “Critical” rows |
110 | | - - separate “Critical” tab |
111 | | - - logs + error summary |
112 | | - - safe reruns (versioned output) |
| 33 | +### Phase 0 - Setup (Week 1) |
| 34 | +Weekly outcome: |
| 35 | +- Local Python environment works reliably. |
113 | 36 |
|
114 | | -Guide: **[05_AUTOMATION_FILES_EXCEL.md](./05_AUTOMATION_FILES_EXCEL.md)** |
115 | | - |
116 | | ---- |
| 37 | +Minimum deliverables: |
| 38 | +- `python --version` works. |
| 39 | +- `.venv` created and activated. |
| 40 | +- First script runs. |
| 41 | +- First test passes. |
117 | 42 |
|
118 | | -# Phase 4 — SQL integration (Weeks 17–22) |
119 | | -**Goal:** Build “data pipelines” rather than “one-off reports”. |
| 43 | +Done means done: |
| 44 | +- You can repeat setup in a fresh folder without guessing. |
120 | 45 |
|
121 | | -Tools: |
122 | | -- SQL basics: SELECT/JOIN/GROUP BY |
123 | | -- Python DB access (pyodbc and/or SQLAlchemy) |
124 | | -- Migrations concept (optional early, important later) |
| 46 | +Fail/recover guidance: |
| 47 | +- If activation fails, use the troubleshooting section in [03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md). |
125 | 48 |
|
126 | | -Capstone Project B: **Ingest + Transform + Load** |
127 | | -- Read Excel/CSV → validate → write to SQL staging → promote to reporting table |
128 | | -- Idempotency key (reruns don’t duplicate) |
129 | | -- Reject file output (bad rows) |
| 49 | +### Phase 1 - Foundations (Weeks 2-6) |
| 50 | +Weekly outcomes: |
| 51 | +- Week 2: variables, types, conditionals. |
| 52 | +- Week 3: loops and collections. |
| 53 | +- Week 4: functions and modular thinking. |
| 54 | +- Week 5: file IO and paths. |
| 55 | +- Week 6: debugging and code reading. |
130 | 56 |
|
131 | | -Guide: **[06_SQL.md](./06_SQL.md)** |
132 | | - |
133 | | ---- |
| 57 | +Minimum deliverables: |
| 58 | +- 15 micro-scripts. |
| 59 | +- One debugging diary file. |
134 | 60 |
|
135 | | -# Phase 5 — SolarWinds Orion integration (Weeks 23–28) |
136 | | -**Goal:** Automate monitoring/reporting workflows using Orion data. |
137 | | - |
138 | | -You will learn: |
139 | | -- Orion platform API basics (SWIS, SWQL concepts) |
140 | | -- Read nodes/interfaces/alerts/events |
141 | | -- Produce “daily health” reports |
142 | | -- (If allowed) acknowledge/annotate alerts |
| 61 | +Done means done: |
| 62 | +- You can explain each script out loud in plain language. |
143 | 63 |
|
144 | | -References: |
145 | | -- Orion SDK repo citeturn0search23 |
146 | | -- orionsdk-python client citeturn0search3 |
| 64 | +Fail/recover guidance: |
| 65 | +- If stuck, reduce problem size and rebuild with toy data. |
147 | 66 |
|
148 | | -Capstone Project C: **SolarWinds Daily Ops Report** |
149 | | -- Pull top alerts, down interfaces, capacity metrics |
150 | | -- Output: Excel + HTML dashboard page |
151 | | -- Optional: push summary to email/Teams webhook |
| 67 | +### Phase 2 - Quality and workflow (Weeks 7-10) |
| 68 | +Weekly outcomes: |
| 69 | +- toolchain setup, formatting, linting, tests, logging. |
152 | 70 |
|
153 | | -Guide: **[07_SOLARWINDS_ORION.md](./07_SOLARWINDS_ORION.md)** |
| 71 | +Minimum deliverables: |
| 72 | +- reusable project template with `pyproject.toml`, tests, logging, and README. |
154 | 73 |
|
155 | | ---- |
| 74 | +Done means done: |
| 75 | +- Any teammate can run your tool using documented steps. |
156 | 76 |
|
157 | | -# Phase 6 — Web GUIs / Dashboards (Weeks 29–38) |
158 | | -**Goal:** Put your reports behind a usable internal UI. |
| 77 | +Fail/recover guidance: |
| 78 | +- If tooling feels heavy, keep features tiny and run checks per feature. |
159 | 79 |
|
160 | | -Recommended order for beginners: |
161 | | -1. **Streamlit** (fastest to working dashboards) citeturn1search0turn1search14 |
162 | | -2. **Dash** (more “app-like” dashboards; strong data grids) citeturn1search1 |
163 | | -3. **FastAPI** (when you need a real backend API) citeturn1search2 |
| 80 | +### Phase 3 - Files and Excel automation (Weeks 11-16) |
| 81 | +Weekly outcomes: |
| 82 | +- robust ingestion of multiple spreadsheets with validation. |
164 | 83 |
|
165 | | -Capstone Project D: **Ops Dashboard** |
166 | | -- Tabs: Excel reports, SQL summaries, SolarWinds health |
167 | | -- Filters: customer/site, date range, severity |
168 | | -- Caching to avoid hammering SolarWinds/SQL |
169 | | -- Auth strategy appropriate for your environment (documented) |
| 84 | +Minimum deliverables: |
| 85 | +- Capstone A baseline complete. |
| 86 | + |
| 87 | +Done means done: |
| 88 | +- malformed inputs are rejected safely with clear logs. |
| 89 | + |
| 90 | +Fail/recover guidance: |
| 91 | +- Start with a 2-file sample dataset and scale gradually. |
| 92 | + |
| 93 | +### Phase 4 - SQL ETL (Weeks 17-22) |
| 94 | +Weekly outcomes: |
| 95 | +- clean table design and idempotent pipeline loads. |
| 96 | + |
| 97 | +Minimum deliverables: |
| 98 | +- staging and reporting tables + ETL job + daily summary query. |
| 99 | + |
| 100 | +Done means done: |
| 101 | +- rerunning ETL does not duplicate records. |
| 102 | + |
| 103 | +Fail/recover guidance: |
| 104 | +- freeze schema changes until test dataset passes end-to-end. |
| 105 | + |
| 106 | +### Phase 5 - Orion and DPA integration (Weeks 23-28) |
| 107 | +Weekly outcomes: |
| 108 | +- read-only ingestion from Orion and DPA into cache tables. |
| 109 | + |
| 110 | +Minimum deliverables: |
| 111 | +- one daily ingestion job from each source. |
170 | 112 |
|
171 | | -Guide: **[08_DASHBOARDS.md](./08_DASHBOARDS.md)** |
| 113 | +Done means done: |
| 114 | +- data contract documented, ingestion stable, errors logged. |
172 | 115 |
|
173 | | ---- |
| 116 | +Fail/recover guidance: |
| 117 | +- enforce read-only endpoints first and short polling windows. |
174 | 118 |
|
175 | | -# Phase 7 — Shipping: CI/CD + Packaging + Governance (Weeks 39+) |
176 | | -**Goal:** Make your work easy to run, update, audit, and hand off. |
| 119 | +### Phase 6 - Dashboard delivery (Weeks 29-38) |
| 120 | +Weekly outcomes: |
| 121 | +- browser-consumable dashboard with filters and exports. |
177 | 122 |
|
178 | | -You will learn (plain-English definitions in glossary): |
179 | | -- CI/CD (automate test/build/release) citeturn1search3turn1search10 |
180 | | -- PyPI and “internal package indexes” citeturn2search0turn2search7 |
181 | | -- Packaging and distribution options citeturn2search3 |
| 123 | +Minimum deliverables: |
| 124 | +- working dashboard with data freshness indicator. |
182 | 125 |
|
183 | | -Deliverables: |
184 | | -- A “release checklist” |
185 | | -- A “deployment modes” guide: zip deploy vs wheel vs internal index |
186 | | -- A “security baseline”: secrets, least privilege, dependency hygiene |
| 126 | +Done means done: |
| 127 | +- non-technical user can answer core ops questions without SQL access. |
187 | 128 |
|
188 | | -Guide: **[11_CHECKLISTS.md](./11_CHECKLISTS.md)** + **[02_GLOSSARY.md](./02_GLOSSARY.md)** |
| 129 | +Fail/recover guidance: |
| 130 | +- fallback to SQL-only cache mode when source APIs are slow. |
189 | 131 |
|
190 | | ---- |
| 132 | +### Phase 7 - Shipping and governance (Weeks 39+) |
| 133 | +Weekly outcomes: |
| 134 | +- release process, support runbook, handoff standards. |
191 | 135 |
|
192 | | -# How you will be evaluated (by your team) |
193 | | -You become the SME when you can consistently: |
194 | | -- take ambiguous automation/reporting requests |
195 | | -- clarify requirements |
196 | | -- deliver tools with: |
197 | | - - good defaults |
198 | | - - safe behavior |
199 | | - - logs + tests |
200 | | - - docs |
201 | | - - predictable deploy/run steps |
| 136 | +Minimum deliverables: |
| 137 | +- release checklist and operational runbook. |
202 | 138 |
|
203 | | -Next: **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)** |
| 139 | +Done means done: |
| 140 | +- another engineer can operate and troubleshoot your tools. |
| 141 | + |
| 142 | +Fail/recover guidance: |
| 143 | +- capture every incident and convert it into checklist updates. |
| 144 | + |
| 145 | +## Milestone gates |
| 146 | +- Gate A: setup + first script + first passing test. |
| 147 | +- Gate B: Capstone A supports safe reruns and rejects. |
| 148 | +- Gate C: SQL ETL is idempotent and logged. |
| 149 | +- Gate D: Orion/DPA ingestion proof into MSSQL cache. |
| 150 | +- Gate E: browser dashboard available to stakeholders. |
| 151 | + |
| 152 | +## If you fall behind (catch-up plan) |
| 153 | +1. Keep only one active project at a time. |
| 154 | +2. Finish minimum deliverables before adding features. |
| 155 | +3. Switch to 45-minute sessions with explicit goals. |
| 156 | +4. Use Hybrid mode until momentum returns. |
| 157 | + |
| 158 | +## Learning-style options (Play/Build/Dissect/Teach-back) |
| 159 | +- Play: tweak example scripts and observe behavior changes. |
| 160 | +- Build: implement full milestone checklists exactly. |
| 161 | +- Dissect: read unfamiliar scripts and annotate line-by-line intent. |
| 162 | +- Teach-back: explain one concept weekly to another person or a written journal. |
| 163 | + |
| 164 | +## Expected output |
| 165 | +- A complete progression from beginner to enterprise-capable Python practitioner. |
| 166 | +- A portfolio of capstones tied to your real data systems. |
| 167 | + |
| 168 | +## Break/fix drills |
| 169 | +- Break path assumptions by renaming input folders. |
| 170 | +- Break schema assumptions by removing required columns. |
| 171 | +- Break API assumptions by forcing timeout values. |
| 172 | + |
| 173 | +## Troubleshooting |
| 174 | +- If learning stalls: reduce scope, keep daily continuity, and ship smaller increments. |
| 175 | +- If project complexity spikes: return to the previous gate and stabilize. |
| 176 | + |
| 177 | +## Mastery check |
| 178 | +You are ready to advance when you can: |
| 179 | +- describe your current phase deliverable in one sentence, |
| 180 | +- run it end-to-end, |
| 181 | +- explain where it fails and how to recover. |
| 182 | + |
| 183 | +## Primary Sources |
| 184 | +- [Python Tutorial](https://docs.python.org/3/tutorial/) |
| 185 | +- [Automate the Boring Stuff](https://automatetheboringstuff.com/3e/) |
| 186 | +- [pytest getting started](https://docs.pytest.org/en/stable/getting-started.html) |
| 187 | + |
| 188 | +## Optional Resources |
| 189 | +- [Exercism Python](https://exercism.org/tracks/python) |
| 190 | +- [Real Python](https://realpython.com/tutorials/python/) |
| 191 | + |
| 192 | +## Next |
| 193 | +Go to [03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md). |
0 commit comments