Stage 1 of 8 · 7 lessons · ~3 months
Learn beyond the syllabus
Your courses teach enough to pass exams. Pick one language and learn it properly, and write code every week whether or not an assignment is due.
Start: One language, learnt properlyLessons· one lesson for each topic, in this order
Do this
- Block five hours a week in your timetable for coding no course asked for
- Pick one language and stay with it for at least six months
- Redo two lab assignments from an empty file, without looking at the solution
- Finish one small program every week and push it to GitHub
- Read one well-written open source file a week and note one thing worth copying
- Add the Programming foundations roadmap if you want the full depth on your language
Start with· follow one of these
- CoursePaidGrokking Python Fundamentals
Design Gurus · Beginner · $50
If Python is your language: short lessons with an in-browser exercise after each one
- CourseFreeCS50: Introduction to Computer Science
Harvard University · Beginner
The free course your first year should have been: C, memory, then Python, with hard problem sets
Practise
Keep handy
Before moving on: Write a 200-line program nobody assigned you, such as a hostel expense tracker or a quiz with saved scores, using functions, collections, files and error handling, without a tutorial open.

Stay with the language your first courses teach if it is Python, Java or C++, and do not switch for six months. Most students I talk to can pass a lab exam but cannot start a program from an empty file, and that gap closes only by writing code every week, not by watching more videos. Use AI to explain an error, never to write the logic for you.