Functions and Customising Behaviour in PHP
Writing PHP functions, default and named arguments, type declarations, and using callables so one function can behave differently for different callers.
Try: python lists, javascript functions, syntax error, first project
Learn · Build · Debug
Simple programming guides, practical projects, coding tips and learning paths for beginners and growing developers.
Choose your path
Pick one and stay with it for a few weeks. Jumping between languages is the slowest way to learn.
Start here
You do not need to finish step one perfectly before moving on. Keep going and come back when something stops making sense.
Variables, conditions and loops. These four ideas carry you through every language.
Programming BasicsPython if you want the gentlest start, JavaScript if you want things on a screen fast.
PythonA calculator, a quiz, a to-do list. Small and finished beats big and abandoned.
Programming ProjectsError messages are instructions, not insults. This is the skill that unblocks everything.
Debugging & ErrorsAn editor you like, Git for saving your work, and a folder you can find again.
Coding ToolsThree finished projects say more than a year of half-watched tutorials.
Career & LearningFresh from the blog
Writing PHP functions, default and named arguments, type declarations, and using callables so one function can behave differently for different callers.
Fetch live data and display it properly — including the loading and error states most tutorials skip. Built so it works with…
How PHP receives form data, why you must never trust it, and the validation, escaping and redirect pattern that makes a form…
A command-line expense tracker that saves to JSON, groups spending by category and prints a monthly report. Extends the to-do list with…
The array errors beginners hit most — IndexError, modifying while looping, the copy trap — plus the changes that actually make list…
A Python script that tidies a messy downloads folder by file type. Covers pathlib, dictionaries and — most importantly — how to…
Build something
Every project here is small enough to finish and useful enough to be worth finishing.
Fetch live data and display it properly — including the loading and error states most tutorials skip. Built so it works with…
A command-line expense tracker that saves to JSON, groups spending by category and prints a monthly report. Extends the to-do list with…
A Python script that tidies a messy downloads folder by file type. Covers pathlib, dictionaries and — most importantly — how to…
When it breaks
Everyone gets stuck — experienced developers just get unstuck faster. These guides show you how to read what went wrong and what to change.
Open the debugging checklistFree tools
Everything runs in your browser and stays on your device. Nothing is uploaded anywhere.
Learn with AI
AI tools are genuinely useful when you are learning — as long as you can still tell when the answer is wrong.
Chat assistants, inline autocomplete, agents and code review tools — what each category is for, where each helps a beginner, and where…
A practical seven-point checklist for reviewing generated code — from reading it line by line to testing the edge cases that generated…
The difference between a vague prompt and a useful one, with before-and-after examples, a reusable template, and what to include when you…
Developer setup
Comfort beats specs. Some links here are affiliate links, which support the site at no extra cost to you.
RAM, CPU, storage and screen explained in order of importance for coding — plus why the laptop you already own is probably…
Resolution, size, panel type and height explained for programming rather than gaming — including why the stand matters more than the specifications.
Switch types, layouts and sizes explained in plain English, so you can judge a keyboard yourself instead of relying on someone else’s…
The fastest way to improve is to read one guide, then build the thing it describes. Start with the basics, or jump straight to a project.