How I Write Tutorials
This is my personal guide for writing technical tutorials. I use it as a reference when documenting new topics.
Principles
Section titled “Principles”- Don’t skip steps — even if they seem obvious
- The reader doesn’t know what you know — explain context
- Show, don’t just tell — code examples > abstract explanations
- Test your tutorials — follow your own steps before publishing
Tutorial Structure
Section titled “Tutorial Structure”Introduction
Section titled “Introduction”The first paragraph explains:
- What the reader will achieve
- Why it’s useful
- What prerequisites they need
Example:
This tutorial guides you through installing Docker on a Debian server. By the end, you’ll have a working Docker environment ready to deploy containers.
Prerequisites
Section titled “Prerequisites”Clearly state what the reader must have BEFORE starting:
**Prerequisites**
- Server with Debian/Ubuntu- Root or sudo access- Basic Linux command line knowledgeIf there are other tutorials for prerequisites, link to them.
Each step:
- Has a clear title (“Step 1 - Install Docker”)
- Builds on the previous step
- Includes commands the reader can copy
- Explains what the command does when needed
Example structure:
## Step 1 - Install Docker
First, update the package list:
```bashsudo apt update```
Then install Docker:
```bashsudo apt install docker.io```
Verify Docker is working:
```bashsudo docker --version```Sub-steps
Section titled “Sub-steps”For complex steps, use sub-steps:
## Step 2 - Configuration
### Step 2.1 - Create configuration...
### Step 2.2 - Set permissions...Optional Steps
Section titled “Optional Steps”Mark steps that aren’t required but are helpful:
## Step 5 - Set up logging (optional)
This step isn't necessary, but helps with debugging...Conclusion
Section titled “Conclusion”At the end:
- Summarize what the reader achieved
- Suggest next steps
- Link to additional resources
## Conclusion
You now have a working Docker environment with automatic startup on reboot.
**Next steps:**- [Docker Compose tutorial](/guides/docker-compose/)- [Official Docker documentation](https://docs.docker.com/)Terminology
Section titled “Terminology”I use these placeholders in tutorials:
| Placeholder | Meaning |
|---|---|
<your_domain> | Reader’s domain (e.g., example.com) |
<your_server_ip> | Server IP address |
<your_username> | Username |
<your_email> | Email address |
Never use real IP addresses or passwords in tutorials.
Code Examples
Section titled “Code Examples”Always specify the language for syntax highlighting:
```bashsudo systemctl start docker```
```pythonprint("Hello, World!")```
```yamlservices: web: image: nginx```Screenshots
Section titled “Screenshots”If needed, save them in an images/ folder next to the tutorial.
Use screenshots only when text isn’t enough — e.g., for GUI steps.
I update this guide as I discover better practices.