Twenty-five functions. That's what this track added to your toolkit — format_kpi_line, is_over_budget, group_by_channel, load_campaigns_from_csv, campaigns_to_json, and twenty more. Which one from this week surprised you most?
The try/except realisation on Day 27. I'd been writing if "spend" in campaign and campaign["spend"] != 0 before every division — this defensive if-chain that grew longer with every new failure mode I'd seen in production. The tuple catch was one line: except (KeyError, ValueError, ZeroDivisionError). Same coverage, no ceremony.
That's the pattern click. You stopped guarding the inputs and started handling the failures. And the list comprehension on Day 24?
That one landed differently. I knew what it did — I'd used them in snippets before — but writing [{**c, "cpl": round(c["spend"] / c["leads"], 2)} for c in valid] myself, after having done it the long way in Week 2, made the trade-off concrete. Four lines of loop-and-append collapsed into one. I actually went back and rewrote my own spreadsheet script that evening.
The capstone on Day 28 was designed for exactly that moment — all five concepts in a single function call chain. extract_campaign_names feeds rank_channels_by_cpl which feeds the quarterly report. You wrote it in one sitting.
I did. And I understood every line. Six questions — let's close it out.
Four from this week, two from earlier to keep those patterns sharp. The track is behind you now.
Twenty-five functions. That's what this track added to your toolkit — format_kpi_line, is_over_budget, group_by_channel, load_campaigns_from_csv, campaigns_to_json, and twenty more. Which one from this week surprised you most?
The try/except realisation on Day 27. I'd been writing if "spend" in campaign and campaign["spend"] != 0 before every division — this defensive if-chain that grew longer with every new failure mode I'd seen in production. The tuple catch was one line: except (KeyError, ValueError, ZeroDivisionError). Same coverage, no ceremony.
That's the pattern click. You stopped guarding the inputs and started handling the failures. And the list comprehension on Day 24?
That one landed differently. I knew what it did — I'd used them in snippets before — but writing [{**c, "cpl": round(c["spend"] / c["leads"], 2)} for c in valid] myself, after having done it the long way in Week 2, made the trade-off concrete. Four lines of loop-and-append collapsed into one. I actually went back and rewrote my own spreadsheet script that evening.
The capstone on Day 28 was designed for exactly that moment — all five concepts in a single function call chain. extract_campaign_names feeds rank_channels_by_cpl which feeds the quarterly report. You wrote it in one sitting.
I did. And I understood every line. Six questions — let's close it out.
Four from this week, two from earlier to keep those patterns sharp. The track is behind you now.