Build the core skills · 05 / 15
The smallest useful engineering foundation
Use this checklist to find gaps. Experienced engineers can demonstrate the tasks and move on. Beginners should learn them in order. The aim is competence with one modest application, not mastery of every language or cloud.
| Skill | Practice task | Proof |
|---|---|---|
| Python | Read JSON, validate rows, call functions, handle errors | A working script plus edge-case tests |
| Git | Branch, inspect a diff, commit, resolve a small conflict, revert | A readable change history |
| HTTP / APIs | Accept a request body, validate it, return JSON and useful errors | Tests for valid and invalid requests |
| SQL | Create two related tables; insert, join and aggregate | A reproducible schema and queries |
| Testing | Separate your logic from network calls; use a fake response | A test that fails before your fix |
| Operations | Run from a fresh environment; read logs; stop and restart | A README another person can follow |
Default stack
Choose Python, Git, pytest, FastAPI, SQLite for local practice and PostgreSQL when a deployed multi-user app needs it. Use one model provider and its maintained SDK. A simple HTML form or familiar frontend is enough. Add Docker after the app runs locally. This is a learning choice, not a requirement of every employer.
Study only what you need next
- CS50: Introduction to Programming with Python ↗ for programming practice.
- CS50: Introduction to Databases with SQL ↗ for querying, relating and designing tables first.
- GitHub: Hello World ↗ for the collaboration workflow.
- FastAPI: Tutorial ↗ for First Steps, Request Body, Handling Errors and Testing. Add authentication before handling private user data.
Foundation mini-project: support-ticket intake
Create an endpoint accepting a ticket title, message and product. Reject empty or oversized input. Store a ticket and return its identifier. Query counts by product. Write tests for normal input, invalid data and database failure. Keep this deterministic; the next lesson adds an optional AI suggestion.
Someone else can run your intake service from the README. You can reproduce a failure, locate the relevant code and fix it without replacing the whole project.
Complete the diagnostic honestly. Pick your weakest two rows for the next study session.
Your lesson resources
Download these files to follow along and put the lesson into practice.