Programming & Web Development · Guide
Learn to code: where to start when you know nothing
Pick one language, build small things, and stop switching. Here is how to choose the language for your goal, what the first three months look like, and where people quit.
The Nextversity teamProgramming & Web Development schoolUpdated August 10, 20266 min read

On this page
The short answer
Pick one language, build small things constantly, and do not switch for at least three months.
That is the whole method, and it is unsatisfying because the hard part is not choosing well. It is that most people who fail to learn programming did not pick badly, they picked five times.
If you want a default: Python for general programming, automation and data, or HTML, CSS and JavaScript if you specifically want to build websites.
Choose by goal, not by popularity
- Automate boring work, analyze data, general programming: Python.
- Build websites and web apps: HTML and CSS first, then JavaScript.
- Make games: the Game Design school path, with Godot or Unreal.
- Mobile apps: Swift for iOS, Kotlin for Android, or a cross-platform framework.
- Work with databases and reporting: SQL, which is smaller than a full programming language and immediately useful.
- Corporate or Android development: Java is still everywhere in large organizations.
Every one of these teaches you programming. Concepts transfer: once you understand variables, loops, conditions and functions, a second language takes weeks rather than months.
What the first three months look like
Weeks 1 to 2: the basics feel like nothing. Variables, printing, conditions. It seems trivial and disconnected from anything you want to build. This is normal and it is where most people quietly stop.
Weeks 3 to 6: loops, lists and functions. Things start to connect. You write your first program that does something you actually wanted done, and it is a genuinely good day.
Weeks 7 to 12: real projects, real frustration. You spend two hours on an error message. You fix it. That fix teaches you more than the previous ten lessons, because debugging is most of the job.
By the end of three months of consistent practice you should be able to build something small and complete. Not employable yet. Competent, which is the milestone that matters first.
The hardest part of learning to code is not the syntax. It is the stretch between "I can follow a tutorial" and "I can start from an empty file", and the only way through it is to start from empty files.
The habits that decide the outcome
Code most days. Thirty minutes daily beats four hours on Sunday, because programming is a language and languages need repetition.
Type it out. Do not copy and paste tutorial code. Typing it forces you to notice the syntax, and the typos you make are where the learning is.
Build things you want. A tutorial to-do app teaches you less than a scruffy script that renames your photos, because you care whether the second one works.
Read error messages. Properly, not in a panic. The last line names the problem and the line above names the location. This one skill separates people who progress from people who feel permanently stuck.
Get stuck for twenty minutes, then ask. Both halves matter. Struggling builds the skill; struggling for three days builds resentment.
Using AI while learning
Assistants are genuinely useful and genuinely dangerous at this stage.
Good uses: explaining an error message, explaining what a line of unfamiliar code does, suggesting what to learn next, reviewing code you have already written.
Bad use: having it write code you cannot read. You will end up with a working program and no ability to change it, which is the worst position to be in.
A reasonable rule while learning: never paste in code you could not have written slowly yourself.
Free resources worth your time
The MDN web docs are the reference for anything web, and they are excellent. The official Python tutorial is free and accurate. The Stack Overflow developer survey is a useful annual check on what the industry actually uses, as opposed to what social media says it uses.
A paid course is worth it when free resources have not stuck, because what you are buying is order and a finish line, not secret material.
When not to start
If your goal is a development job and you cannot commit several hours a week for the better part of a year, be honest about that before you begin rather than at month four. Part-time is fine. Occasional is not.
If you have a course open that you abandoned, restart that one. A different course is rarely the missing piece.
Where to start here
The Programming & Web Development school covers Python, SQL, HTML and CSS and Java, each self-paced with a certificate at the end. One subscription opens all of them, so if the first language turns out not to suit you, switching costs nothing.
Pick one. Give it twelve weeks. Then decide anything else.
Questions people ask
Which programming language should I learn first?
Python if you want general programming, automation or data. HTML, CSS and JavaScript if you want to build websites. Both are good first languages, and the choice matters far less than sticking with one.
How long does it take to learn to code?
A few weeks to write useful small programs. Six to twelve months of consistent practice to be job-ready as a junior, if that is the goal. Anyone promising employment in 30 days is describing a marketing calendar.
Do I need to be good at maths?
For most programming, no. You need logic and patience more than algebra. Specific fields like graphics, machine learning and cryptography do need real maths, and you can add it when you get there.
Do I need a computer science degree?
No, and plenty of working developers do not have one. A degree helps at some employers and is irrelevant at others. What is not optional is code somebody can look at.
Is it too late to start?
No. People move into development from teaching, nursing, retail and the trades every year. What matters is consistent hours over months, which is a scheduling question rather than an age one.