Most people who quit programming do not quit because it is too hard. They quit because they have no idea whether they are making progress.
This is a four-week plan with a specific target each week. It assumes about an hour a day, five days a week.
Before week one: two decisions#
Pick a language. Python if you want the gentlest start; JavaScript if you want things visible in a browser quickly. Either is fine. See choosing your first programming language.
Pick a time. A specific slot in your day, on your calendar. “When I have time” reliably becomes never. An hour five days a week beats six hours every other Sunday.
Week 1 — make the computer do something#
Goal: write a program that asks a question and reacts to the answer.
- Install your language — how to install Python
- Set up an editor — VS Code setup
- Learn print, variables, input and data types
- Learn if statements
Build: a program that asks your age and says whether you can vote. Small, and it proves the whole chain works.
Week 2 — repetition and collections#
Goal: handle many things instead of one.
- Loops
- Lists
- Reading error messages — start here
Build: the number guessing game. It uses everything from weeks one and two, and it is a real game you can show someone.
Week 3 — structure#
Goal: write code you can still read next week.
- Functions
- Dictionaries
- Reading and writing files
Build: the to-do list that saves to a file. This is the week it starts feeling like real programming, because your program remembers things.
Week 4 — finish something#
Goal: one complete project, start to finish, on GitHub.
- Pick a project from beginner programming projects
- Learn Git and GitHub
- Write a README explaining what it does and how to run it
Finishing is the skill. A small finished project teaches you more than three abandoned ambitious ones.
What to skip for now#
All of this can wait, and chasing it early is the most common way to stall:
- Frameworks (React, Django) — you need the language first
- Object-oriented programming — useful later, confusing now
- Algorithm puzzle sites — great for interviews, poor for learning
- Databases, Docker, cloud hosting
- A second language
- Choosing “the best” editor, theme or laptop
How to know you are progressing#
Not by hours or courses finished. By these:
- You can read an error message and guess the cause before searching
- You can write a small program without looking up basic syntax
- You can look at code you wrote last week and follow it
- You get stuck, and it feels routine rather than catastrophic
Week three is when motivation drops#
Everyone hits it. The novelty has gone and you are not good yet. Three things that help:
- Shrink the session. Fifteen minutes counts. Consistency matters more than intensity.
- Build something you actually want. Motivation from interest lasts longer than motivation from discipline.
- Look back at week one’s code. The progress is invisible day to day and obvious across three weeks.
Questions people ask#
How long until I am “good”?
You will write useful small programs within weeks. Feeling genuinely comfortable across a whole area takes many months of consistent practice. Anyone giving you a precise number is guessing.
Do I need a computer science degree?
No. It helps for some roles and is irrelevant for others. What consistently matters is whether you can build things and explain how they work.
How much maths do I need?
For most programming, arithmetic and logic. Specific fields — graphics, machine learning, cryptography — need more.
Should I pay for a course?
Free material is more than good enough at this stage. A paid course can add structure and accountability, which some people genuinely need. Neither will do the practice for you.
Where to go next#
- What is programming?
- How to practise programming
- Start here — the full ordered path
- How long does it take to learn programming? — realistic milestones