Backend Dev
Tracking my progress through boot.dev — Python, Go, and the fundamentals of backend development.
Lessons That Stuck
The concepts that kicked my ass until I cracked them — with a bit of help from AI.
Comparison Operator Evaluations
Concept: Booleans, comparison operators (==, >), storing comparison results
Key takeaway: Always attempt first — a failed attempt teaches more than a correct answer you didn't earn. Run your code early and often.
If Statements
Concept: if/else structure, == comparison, exact string matching
Key takeaway: Punctuation matters in Python strings — copy exact strings including spaces, capitalisation, and punctuation.
Should Serve Drinks (Bartender)
Concept: Inverted logic, elif, or operator, not operator, boolean simplification
Key takeaway: Chained comparisons like `time < 5 > 10` don't work — write them explicitly: `time < 5 or time > 10`.
Mount Rental
Concept: >= comparison, indentation as scope, fallback return without else
Key takeaway: Indentation is structure, not style. Ask: what lines should only run if this condition is true? Those get indented.
Combat Advantage
Concept: if/elif/else blocks, setting variables inside conditionals
Key takeaway: Watch `>` vs `>=` carefully — at boundary values they produce different results.
For Loops
Concept: for loop syntax, range(), indentation as loop body
Key takeaway: range(0, 200) gives you 0 to 199 — end is exclusive. Always double-check range boundaries.
Range Continued
Concept: Step parameter, counting up/down with custom increments
Key takeaway: range(0, 10, 2) = 0,2,4,6,8. When counting down, step must be negative: range(10, 0, -1).
While Loops
Concept: while vs for, combining conditions with and, += and -= inside loops
Key takeaway: Calculating vs assigning: `x - 2` throws the result away. Use `x -= 2` to actually change the variable. return goes outside the loop.
List Length
Concept: len() function, last index = len(list) - 1
Key takeaway: Simple one-liner patterns often work — read the problem twice before overcomplicating.
List Updates
Concept: Mutating a list by index: list[i] = new_value
Key takeaway: Assigning to list[i] changes the original — not a copy. Worth remembering when lists get passed between functions.
Find Max
Concept: Accumulator pattern, float('-inf') as sentinel value
Key takeaway: When finding the biggest thing in a set, start at float('-inf') so the first real value always wins.
Find an Item in a List
Concept: for item in list syntax, loop variable naming for readability
Key takeaway: Loop variable names can be meaningful: 'for leather in items' reads better than 'for x in items'.
Check Character Levels
Concept: Index-based list comparison, tracking changes between lists
Key takeaway: Pattern recognition matters — if two lists need comparing element-by-element, track the indices.