I've been interested in computer science and programming since I was about 12, and I recently decided to start learning seriously. I chose C# as my first language, but I've heard that Python might be easier or that C would provide a better foundation. Should I switch, or is C# a reasonable place to begin? I'd also appreciate recommendations for good ways to learn C#.
4 Answers
Focus less on finding the perfect language and more on making things. Work through a structured C# course or textbook, then build small programs, even if they're messy. Try a calculator, a text adventure, a simple file organizer, or a small game. Breaking projects and fixing them will teach you more than endlessly comparing languages.
Official C# and .NET learning materials are a strong starting point, and there are plenty of beginner tutorials available. Once you understand the basics, try learning a second language such as Python or C. Comparing another language later will make the similarities and differences clearer without interrupting your progress now.
Python is usually easier to read and lets beginners build small projects quickly, while C teaches lower-level ideas such as pointers and manual memory management. C# sits somewhere in the middle: it has more syntax than Python, but it gives you useful structure and supports many types of projects, including desktop applications and games. None of those differences mean you need to switch if C# is working for you.
C# is a perfectly reasonable first language. The choice matters much less than actually practicing and learning the core ideas: variables, control flow, functions, data structures, debugging, and problem-solving. Those concepts transfer well to other languages, so you won't be stuck with C# forever.

That makes sense. I'm not struggling with C# so much as trying to make the perfect choice, but I'll keep going and start building small projects.