Programming
Programming tutorials for people who want code that actually runs, not code that only looks right. Pick a language, start at the beginning, and don't skip the basics. They are where most problems come from.
Find every any, then replace each one with a named type, a function type or unknown with a check. After this, a typo like prise is a compile error instead of NaN.
Count what each strict flag costs, turn them on one at a time, park one stubborn error with ts-expect-error, and finish with strict true. After this, an old project can move to strict in steps.
Write an object shape once with type, derive one from an existing object with typeof, and share it between files with import type. After this, a renamed property shows you every place to fix.
Flatten nested ifs with early returns, let a switch tell you when you forgot a case, and use a lookup object for word-to-text mappings. After this, a new status cannot slip through.
Connect to a database with psql and use the backslash commands to list tables and columns. After this, you can see what is inside any database you can reach.
Count rows per category with GROUP BY, sort the biggest group first and keep only large groups with HAVING. After this, one query answers a how-many-for-each question.
Find repeated values with GROUP BY and HAVING, list the full rows and catch duplicates that differ by capital letters. After this, you know what is duplicated before you delete anything.
Find the cause of the column does not exist error from the five usual ones: a typo, double quotes, an alias in WHERE, a quoted name and a missing table. After this, you can fix it in a minute instead of changing the table.
Load a CSV file into a table with the psql command copy, and read the two errors you will meet first. After this, you can import a file without writing INSERT statements.
Identify an isolated practice database, record its cluster and marker, and verify persistence through restart and container replacement before exact cleanup.
Keep customers who have no orders with LEFT JOIN, find them with IS NULL and avoid the WHERE that turns the join back into an inner join. After this, a missing match no longer removes a row from your result.
Replace SELECT * with the columns you need and see what a new column does to a query that uses the star. After this, your saved queries stop changing when the table does.