Learning to code in first year: a semester-by-semester plan that fits around lectures
Split the year into two semesters. Semester one: learn one language (Python or JavaScript), finish one structured course, and build one tiny project. Semester two: build a real project for someone else, learn Git, and start a portfolio. Three sessions per week, ninety minutes each, is enough. Consistency across months beats intensity in one week.
Semester one: foundations and your first project
Weeks 1 to 4: Learn the basics of one language.
Pick Python or JavaScript. Not both. Use a free resource: freeCodeCamp (browser-based, works on a phone), The Odin Project (JavaScript-focused), or CS50 on YouTube (covers C and Python).
Aim to cover variables, data types, conditionals, loops, and functions. These five concepts are the foundation of every programming language. If your CS course already teaches a language, do the exercises in that language instead of adding a second one.
Weeks 5 to 8: Deepen with practice problems.
Do not move to a new topic until you can solve problems with what you already know. Use Exercism (free, with mentor feedback) or HackerRank (easy section). Solve two to three small problems per week. Each one should take 15 to 30 minutes. If it takes longer, it is teaching you something.
Weeks 9 to 13: Build one tiny project.
Pick something small and finish it. A GPA calculator, a budget tracker, a quiz game based on your course material, or a simple web page. The guide on coding for non-CS students has more project ideas.
The project does not need to be impressive. It needs to be complete. Finishing one small project teaches more about real coding than completing ten tutorial chapters.
Semester two: build for someone else
Weeks 1 to 4: Learn Git and set up your portfolio.
Create a GitHub account. Learn three commands: git add, git commit, git push. Push your semester one project to GitHub. From now on, push everything you build. By graduation, your GitHub profile is a living CV.
Weeks 5 to 10: Build a real project for someone else.
Find a person with a problem: a campus club that needs a simple website, a friend running a small business who needs a form, a lecturer who wants a tool for collecting student feedback. Build it for them. This project teaches you things no tutorial covers: understanding what someone else needs, delivering on time, and handling feedback.
If you are learning web development, a simple portfolio site for a friend or a landing page for a campus event is a good starting point. If you are learning Python, a script that automates a real task (organising files, sending WhatsApp reminders, cleaning data) is more valuable than a tutorial clone.
Weeks 11 to 13: Reflect, document, plan second year.
Write a short description of each project you built. Add it to your GitHub README. Decide what you want to learn in second year: web frameworks, mobile development, data science, or something else. Browse the full coding cluster for direction.
A weekly schedule that does not compete with lectures
You need three sessions per week, each about ninety minutes. Here is one pattern that works:
- Monday evening (6:00 to 7:30 PM): Learn new material. Follow your course or tutorial.
- Wednesday evening (6:00 to 7:30 PM): Practice. Solve problems using what you learned on Monday.
- Saturday morning (9:00 to 10:30 AM): Project time. Work on your current project.
Adjust the days and times to fit your timetable. The pattern matters more than the specific slots: learn, practise, build. In that order. Every week.
If a week gets disrupted by exams or CATs, skip it without guilt. But come back the following week. The guide on balancing coding and classes covers how to protect this time when coursework gets heavy.
Where students stall and how to avoid it
Tutorial hell. Watching tutorials feels like learning. It is not. You learn by writing code, breaking it, and fixing it. After every tutorial section, close the tutorial and try to rebuild what you just watched from memory. If you cannot, you did not learn it yet.
Perfectionism. Your first projects will be ugly and buggy. Ship them anyway. The goal is "it works," not "it is beautiful." Beauty comes with experience. Shipping comes from discipline.
Isolation. Coding alone is harder than coding with a group. Find a study partner or join a campus coding group. If none exists, start one. Even two people meeting once a week to work side by side makes a difference.
Switching languages too early. Stick with one language for the full year. The urge to try something new is strong. Resist it. Depth in one language transfers to every other language you learn later. Shallow knowledge of three languages is worth less than real competence in one.
What to do this week
- Pick Python or JavaScript. Open freeCodeCamp or The Odin Project and complete the first lesson today.
- Block three 90-minute sessions in your calendar this week (learn, practise, build).
- Find one person on campus who is also learning to code and agree to check in weekly.
- Write down one small project idea that connects to your daily life or coursework.
Frequently Asked Questions
- What if I fall behind the plan?
- Skip weeks without guilt, but do not quit. A semester plan completed in seven months still puts you ahead of someone who never started. Adjust the timeline, not the habit. Three sessions a week is ideal, but even one session per week, sustained over a year, produces real skill.
- Should I learn coding on my phone or wait until I have a laptop?
- Start on your phone. Apps like SoloLearn and Grasshopper teach basics, and freeCodeCamp works in a mobile browser. A phone limits what you can build, but it does not limit what you can learn. Get past the fundamentals now. The laptop can come later.
- Is this plan enough to get a tech job?
- Not on its own, but it is the foundation everything else builds on. After two semesters of consistent practice and two projects, you are ready for more advanced learning: frameworks, databases, APIs. By third year, with continued effort, you will have a portfolio that demonstrates real ability.
- What if my CS course already teaches programming?
- Use the plan to go beyond what your course covers. Do the course assignments in class, then use your self-study time for projects and tools the syllabus skips (Git, frameworks, real-world projects). The plan and the degree reinforce each other.
Related articles
Should you learn to code in first year if your course is not computer science?
Whether to learn coding in first year if you are studying a non-CS course at a Kenyan university. A clear verdict with a practical starting point.
How to balance coding and classes without failing either
How to learn coding alongside university classes in Kenya without your grades or your code suffering. A time management system that actually works.
How to build your first real project in first year, and why tutorial clones do not count
How to build your first real coding project as a Kenyan university student. Why tutorials are not enough, what counts as a real project, and how to finish one.
