I'm 17 and finishing grade 12, and I want to approach programming more seriously instead of jumping between tutorials and languages. There's a lot of conflicting advice online, so I'm trying to figure out what actually matters.
How do people move from following tutorials to starting with an idea and building a reasonably complex project from scratch? I'm currently interested in Python and C, but I'm also curious about Rust and other languages. Is it better to focus deeply on one language first, or learn several programming paradigms?
I'd also like to know which parts of computer science are useful to study alongside programming, what different areas of software work are actually like, and whether fields such as systems, security, machine learning, infrastructure, research, developer tools, and reinforcement learning are worth exploring early.
Finally, with AI becoming increasingly capable of writing and debugging code, is computer science still a good long-term direction for someone starting college next year? If you could go back to the beginning, what would you do differently, and what would you avoid wasting time on?
4 Answers
There isn’t one objectively best language. The language you keep using is more valuable than the theoretically optimal choice, because consistency is what leads to real skill. Python is a practical starting point, while C or Rust can teach you more about memory and lower-level systems. Strongly typed languages such as Java, C#, or Rust can also be useful when working on large codebases. Learn another language when you have a reason to use it, rather than trying to study several at once.
Study computer science topics as they become useful or interesting, rather than trying to master everything immediately. Data structures, algorithms, operating systems, networking, databases, and basic software design are valuable foundations. Testing should be part of programming from the beginning, not an optional extra. Reading real projects and their recent changes can teach you how production code is organized, but be aware that tutorials and examples can become outdated quickly.
The biggest change comes from building things, not collecting tutorials. Pick one language and make small projects that gradually become more complicated. Break each idea into manageable pieces, decide what each part is responsible for, test your assumptions, and expect to rewrite things. A complicated program is usually many simple parts working together. You don’t need the perfect design before starting; build, learn from what breaks, and improve it.
Computer science and software work cover a huge range, from infrastructure and security to research, data, games, embedded systems, and developer tools. You don’t need to choose a specialty at 17. Explore through projects and introductory courses, then notice which problems keep your attention.
AI will change how developers work, especially by reducing the amount of routine code they write. That makes understanding design, debugging, trade-offs, and system behavior more important, not less. AI-generated code still needs someone who can evaluate whether it is correct and appropriate. If you enjoy solving problems with code, it is still absolutely worth learning.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically