How to Start Learning to Code in Sierra Leone (With Limited Data)
Ibrahim Foday

The biggest myth about learning to code is that you need expensive gear and fast internet. You do not. Plenty of working developers in Freetown, Bo, and Makeni started on a borrowed phone and a data bundle that ran out by Thursday. What you need is a plan that respects your constraints instead of pretending they do not exist. This guide is that plan, written for the connection you actually have, not the one you wish you had.
I learned this the hard way. My first three months were wasted watching long videos that ate my data and taught me almost nothing, because I never wrote a single line myself. The day I switched from watching to typing was the day I actually started learning. Everything below is built around that one shift.
Step 1: Pick one language and stay there
Beginners lose months jumping between tutorials. One day it is Python, the next it is app development, the next someone on YouTube says you must learn data science. Choose one path and ignore everything else for the first three months. For most people the fastest route to something visible is web development: HTML, then CSS, then JavaScript. You see results in your browser immediately, which keeps you going when motivation dips.
Why does seeing results matter so much? Because learning to code is mostly a fight against quitting. Every time you change a line and the page changes in front of you, your brain gets a small reward. Web development gives you that reward faster than almost any other path, which is exactly what a beginner needs.
Why web first
HTML and CSS run entirely in your browser. No installs, no setup, and you can practice in the Teki-SL Compilers page even on a phone.

Step 2: Build the habit before the skill
Thirty focused minutes a day beats a six-hour binge once a week. Your brain learns code through repetition and spacing, not marathons. The student who codes for half an hour every evening will pass the student who codes for a whole Saturday and then disappears for two weeks. Pick a fixed time, protect it, and treat it like a class you cannot skip.
The trick for limited data is to separate the two halves of learning. Watching and reading needs internet. Practising does not. So do all your downloading when you have wifi or a cheap night bundle, then do your actual practice offline the next day. You stop paying for the same lesson twice.
- Download tutorial videos when you have wifi, then watch them offline on the bus or at night.
- Type every example yourself. Never copy-paste while learning, even when it is slower.
- Keep a notebook of things that broke and how you fixed them. This becomes your personal manual.
- Save documentation pages for offline reading so you are not searching the same thing twice.
Step 3: Build tiny things, and actually finish them
A finished ugly project teaches more than a beautiful tutorial you only watched. Watching feels like progress but it is borrowed confidence. The moment you build something yourself, you discover the ten small things the tutorial quietly skipped, and fixing those ten things is where the real learning lives.
Your first five projects should each take a weekend, no more. Keep them small enough to finish, because finishing is the skill you are really training. A profile page, a simple calculator, a to-do list, a page that shows today’s date, and a small quiz. Each one teaches a new piece, and each one you complete makes the next feel possible.
<!-- Your first project: a profile card -->
<div class="card">
<h1>Aminata Kamara</h1>
<p>Future software engineer from Bo.</p>
<a href="mailto:aminata@example.com">Email me</a>
</div>Type that into the Teki-SL Compilers page, then make it yours. Change the name. Add a photo. Give it a background colour. Add a second paragraph about what you want to build one day. Every change you make without instructions is proof that you are no longer just copying, you are coding.

Step 4: Get unstuck without burning data
Every programmer gets stuck every single day. The difference between a beginner and a professional is not that the professional gets stuck less, it is that they get unstuck faster and cheaper. When you hit an error, read the message slowly before you do anything else. Most error messages tell you the exact file and the exact line, and beginners skip straight past that gift in a panic.
When you do need to search, copy the exact error text into the search box rather than describing it in your own words. The exact text usually lands you on a clear answer written by someone who hit the same wall. Save that answer offline so the next time it happens you are not paying for the lookup again.
Read before you search
Half of beginner errors are a missing bracket, a wrong file name, or a typo the message already pointed to. Thirty seconds of reading saves a megabyte of searching.
"The developers who make it are not the smartest. They are the ones who kept showing up after the code broke."
Every senior engineer, eventually
Step 5: Learn in public, even quietly
You do not need a huge following to benefit from learning in public. Showing your tiny project to one friend and asking what confuses them will teach you more than another hour of tutorials. Explaining your code out loud forces you to understand it, and the gaps in your explanation are exactly the gaps in your knowledge. If you can find even one other person learning at the same time, your odds of finishing go up sharply.
What to do this week
- Open the Teki-SL Compilers page and change the starter HTML until it feels like yours.
- Build a one-page profile about yourself and add one image and one colour.
- Show it to one friend and ask them what is confusing.
- Write down the first error you hit and how you fixed it.
- Start the next project on Saturday, and keep it small enough to finish.
That is the whole method. Pick one path, build the habit, finish small things, get unstuck cheaply, and do it where one other person can see. None of it needs a fast laptop or unlimited data. It needs you to show up tomorrow, and then the day after that.

