I want to learn programming because it seems like a useful skill, especially as technology becomes more important. I'm interested in eventually creating games, websites, and larger software systems of my own. I've started using freeCodeCamp and another beginner-focused site with coding exercises, but I'm unsure how to plan my learning. What free or paid resources would you recommend? Which programming language is best for a beginner? How long does it usually take to become comfortable building useful projects or professional-quality software? Do I need a powerful computer, and what has been the most enjoyable or rewarding thing you've made with code?
4 Answers
Don’t spend months only watching lessons. Learn a basic concept, then use it in a small project that interests you—a calculator, simple website, text adventure, automation script, or tiny game. Getting stuck and researching your way out is a major part of programming. You don’t need to master every language either; learning one well gives you concepts that transfer to others. Python is a solid general starting point, while JavaScript makes sense if websites are your main goal.
You’re already using a good resource, so I’d stick with freeCodeCamp for a while instead of constantly switching tutorials. Python is a friendly first language because the syntax is readable and it’s useful for scripts, automation, web apps, data work, and more. Once you understand the basics, try small exercises or projects through sites such as Exercism. A free introductory computer science course can also help you learn how to think through problems, not just memorize commands.
The most rewarding part is making something that seemed impossible at first actually work. Computers are incredibly fast and can repeat a task thousands of times without getting tired, so even a short program can do something surprisingly useful. Start with problems you personally want to solve, keep the scope small, and gradually make each project more ambitious.
There’s no single moment when you’ve completely learned programming. With consistent practice, you can make small useful programs within weeks or months. Building larger, polished applications usually takes a couple of years because you also need to learn debugging, design, databases, testing, and how to work with other tools. A normal laptop that can run a browser, text editor, and development tools is enough for starting out. You usually don’t need expensive hardware until you work on things like modern 3D games or intensive machine-learning projects.

That helps a lot. I think I was worrying too much about choosing the perfect language and timeline instead of just building something small.