DevDocs

What We Recommend

A practical guide on how to learn programming properly — the tools, habits, and mindset that actually work for beginners.

There is no shortage of tutorials online. The problem isn't access to learning material — it's knowing what to follow, in what order, and how to stay consistent. This page cuts through the noise and tells you exactly what we recommend for a complete beginner starting from zero.

How to actually learn a language
The right way to approach learning

Most beginners make the same mistake — they watch tutorial after tutorial, take notes, and feel productive, but never actually build anything. This is called tutorial hell and it's the biggest trap in self-learning.

The only way to truly learn programming is to write code yourself, make mistakes, and fix them. Reading about swimming doesn't teach you to swim.

Step 1 — Watch once, then close the video

Watch a tutorial once to understand the concept. Then close it and try to build the same thing from memory. You will struggle — that's exactly the point. The struggle is where learning happens. Only reopen the video if you are completely stuck after trying for at least 20 minutes.

Step 2 — Modify what you just built

Once it works, break it on purpose. Change colors, add a new button, remove a section and add something different. Modifying working code teaches you far more than copying it. Every modification forces you to understand why something works, not just that it works.

Step 3 — Build something new without a tutorial

After completing a few guided projects, pick a small idea entirely your own and build it with no tutorial. It will be messy. Google will be your best friend. That's normal — professional developers Google things every single day. The ability to search for answers and piece them together is a core developer skill.

Tools we recommend
Code Editors

Your code editor is where you'll spend most of your time. Pick one and stick with it — don't jump between editors in your first few months.

VS Code
Free, lightweight, massive extension library. The industry standard for web development.
✓ Recommended
Sublime Text
Fast and minimal. Great if you want something lighter with no distractions.
Alternative
Notepad++
Ultra lightweight. Windows only. Good for quick edits but limited for full projects.
Alternative
Browsers for Development

Not all browsers have the same developer tools. Use one of these two for all your development work — they have the best built-in DevTools for inspecting, debugging, and testing your code.

Google Chrome
The most widely used dev browser. Excellent DevTools, great performance profiling, and the largest community support.
✓ Recommended
Mozilla Firefox
Outstanding CSS grid and flexbox inspector. Great privacy defaults. A strong second choice for web development.
✓ Recommended
Version Control

Start using Git and GitHub from your very first project — even if it feels unnecessary at the start. Version control is non-negotiable in any professional environment and the earlier you build the habit, the easier it becomes.

Git
The tool that tracks every change you make to your code. Installed locally on your machine.
✓ Essential
GitHub
Where your code lives online. Your GitHub profile is your developer portfolio — start building it now.
✓ Essential
Consistency tips that actually work
Building a learning habit

The biggest difference between students who succeed and those who don't isn't talent — it's consistency. Here's what actually helps.

Code for 30 minutes every day — not 4 hours once a week
Daily practice builds memory and muscle. Irregular long sessions feel productive but most of what you learned fades quickly. 30 focused minutes daily beats a weekend marathon every time.
Keep a learning journal
After each coding session, write 2–3 sentences about what you learned and what confused you. This forces you to process what you studied and builds a personal reference you can look back on. It doesn't need to be neat — just honest.
Learn with someone else
Find a classmate at the same level and work through problems together. Teaching someone else a concept is the fastest way to solidify your own understanding. Even just explaining your code out loud to another person will reveal gaps you didn't know you had.
Set a tiny daily goal, not a big weekly one
Instead of "finish the CSS section this week", try "style the navbar today". Small, completable goals give you a sense of progress that keeps momentum going. Big goals feel overwhelming and are easy to push to tomorrow.
Track what you've built, not what you've watched
Measure your progress by finished projects and pushed commits — not by hours of tutorials watched. A list of 10 small projects you built is worth far more than 100 hours of videos you passively consumed.
Where to learn
Recommended learning platforms

These are free or low-cost resources used by millions of developers. Don't jump between all of them — pick one primary resource and use the others as supplements.

MDN Web Docs — your primary reference

mdn.mozilla.org — The official documentation for HTML, CSS, and JavaScript. Bookmark it. Every time you encounter a tag, property, or method you don't understand, look it up here first. It's comprehensive, accurate, and always up to date.

freeCodeCamp — structured curriculum

freecodecamp.org — A completely free, structured curriculum that takes you from zero to building projects. The HTML/CSS and JavaScript sections are excellent for beginners. You get certifications on completion which you can add to your GitHub and LinkedIn.

The Odin Project — project-based learning

theodinproject.com — A free, open-source full-stack curriculum entirely focused on building real projects. It's more challenging than freeCodeCamp but produces stronger developers. Highly recommended once you've covered the basics.

CS50 by Harvard — for deeper understanding

cs50.harvard.edu — A free online course from Harvard covering the fundamentals of computer science. Harder than most beginner resources, but it builds a genuine understanding of how computers and programming actually work — not just how to copy syntax.

Previous: Things You Need To Know Next: Your First Project