I'm just getting started with programming and know a little Python. I'd like to reach an intermediate level where I can build useful projects instead of only following tutorials. What's the best way to practice and improve? I'm open to learning another language if there's a good reason. I'm also considering CS50 or a similar course and would appreciate recommendations for courses, websites, playlists, or apps that actually help beginners make progress.
4 Answers
CS50P is a solid starting point if you want a structured Python course. It covers the fundamentals, problem-solving, testing, and practical programming habits. After that, build a few small projects and gradually make them more complex rather than jumping from course to course.
AI tools can help explain errors, suggest practice questions, or outline concepts, but don’t let them write the whole project. First attempt the problem yourself, then use the tool to compare approaches and understand what went wrong. The important part is still typing, testing, and debugging your own code.
Use tutorials as a reference, not as your main activity. Try solving small exercises, read documentation, debug your own mistakes, and rebuild examples from memory. A simple progression might be command-line programs, file-processing scripts, APIs, and then a larger application with tests and version control.
Pick a project you genuinely want to build, then learn whatever you need as you go. It could be a game editor, a small web app, a automation tool, or something involving hardware. Projects force you to solve problems and are usually the fastest way to move beyond beginner tutorials.

A good pattern is to use the course for foundations, then pause after each major topic and create something without following a walkthrough. That makes it much easier to see what you actually understand.