Back

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.