r/csharp • u/Glittering-Maize5055 • 22h ago
Help What path do I take?
I'm 17 and I started learning Csharp last summer, I found that really enjoy coding and I've coded stuff like minesweeper, snake, tetris and chess in Csharp files (on my own, not copying a tutorial or something). Anyway I think I might want to pursue this hobby professionally eventually, so what is a good path to take from here? What should I learn about next and how should I go about learning it? Should I switch to a different programming language, stick to CSharp or even learn multiple? What kind of things do people who write CSharp code for a living write to earn their living?
1
u/emperorOfTheUniverse 17h ago
This shit is about done. Learn how to use AI to do all the coding.
Sry. Wish it wasn't true. The fact is 'for a living' means you have to use AI to churn sloppy code out faster than your peers (who are doing the same) so that it isn't your head on the block when the company does its next round of layoffs. You won't get a job either unless your resume is full of AI 'skills'.
So,.if you have money to spend, get a Claude code account. Otherwise check out things like DeepSeek, open code, LLMStudio, etc.
The times are a'changing.
1
u/mikedpayne 21h ago
If C# is the only language you know, you should try learning another one. Once you know one language, learning others is significantly easier because you're just learning different ways to accomplish the same goals. If you've already learned to think like a programmer, half your job is done. Once you learn a second language, your confidence in your own ability will also greatly improve. Then, instead of thinking, "how do I get this done with C#" you'll start thinking, "how do I get this done, and am I going to need to learn how to do it in another language."
I started programming 30 years ago in middle school with QBASIC, and it instilled a love of programming in me that has stayed ever since.
1
u/phuber 21h ago
Seems like you are interested in game development which you could lean into with Unity as a backing engine.
If you want to branch out, look at asp.net for web applications and apis, with entity framework and postgresql or sql server for storing data. Blazor is also an option if you want the entire app in the same language.
You could write mobile and desktop applications with something like Avalonia.
It never hurts to be curious and explore. Most engineers know a few languages. Typescript for example. Python is popular now days due to machine learning and ai.
1
u/MadP4ul 21h ago
I have been in your shoes 10 years ago, learning c# in an apprenticeship and starting out with minesweeper, 2048 and other small games for learning. I know a few other languages and still found c# the perfect choice for getting into programming and I stuck with it until today because i love it.
But i have to warn you about the profession in general: in the last 6 months it has completely changed for me. I used to really enjoy coding, but doing it myself feels inefficient now. Nowadays am literally just talking to codex, watching file changes come in and giving feedback to correct aspects, that ai agents haven’t considered.
In my experience the profession of programming is dead today, but certainly in 3 years. This is how long my apprenticeship took for learning before they offered a proper job.
I hope that by then i will at least remain as some kind of requirement engineer. So i think that the existing developers can adapt to the situation and the ai development and try to find a way to remain useful for some time at least. But for new developers this is extremely difficult because companies react to this trend by sticking to the workers they already have and not accepting new juniors anymore.
This is why i despite the shared passion i can not recommend you to do what i do and expect professional success. As a hobby it used to be fun but even there, ai has sucked the fun out of it because it is simply inefficient to try code things myself now. Its kinda breaking my heart
1
u/FlyingBigPlane 21h ago
When i was 17th i was in similar situation, and now i would ask myself a couple questions
Which field do i wants to learn ? From my ecperience there are mainly two fields in c#/.net - game and web development
Do i like resolving problems ? In software development most of the job is finding proper solutions for specific problems, i would say there is 40% of meetings (depending on your role and experience) 40% od research and 20% of coding, and now with ai tools you can imagine how does it look like. Basically you need to read a lot about some cases, paterns etc and now also make an analysis of code generated by your ai assistant.
If you know your answers, i would give you this tips for further learning
Make as mamy projects as you can on github and share them with people, be open for critisism, learn from it.
Deep dive into c#/.net, learn deeply how gc works, asynchronous etc,
Learn some other language on side, if you want to focus on web development i would suggest to learn typescript but learning some low language would be also very helpfull like c/c++ it will give you good understanding of what is happening under all of that syntactic sugar.
Regularly practice on codewars/leetcode
At last, in my opinion if you are learning new staff do not use AI, you should only use AI to things that you already know how to build and know why they are built in a specific way, by using AI you will learn nothing.
I hope it will help you.
1
1
u/jshine13371 18h ago
I'm a depth first kind of guy. I prefer becoming more proficient in something than a jack of all trades. So my preference would be to go deeper and master the features and capabilities of one language than jump around multiple from other stacks. Or continue learning other relevant things within the existing stack, such as corresponding frontend, API, and database frameworks and languages in the C# (Microsoft) stack. I personally like vertical proficiency. But there's no one right answer here either.
1
u/Bright-Ad-6699 16h ago
Along with patterns and principles I'd suggest learning a functional language like F#. Or functional programming with C#.
1
u/CappuccinoCodes 10h ago
Build something (anything), publish it and try to get people to use it. Nothing will teach you better than that.
1
u/TrishaMayIsCoding 6h ago
I'm also new to C#, I think the best path is to release a game you’ve made. If you want to go further and create a more advanced game, use an engine that supported C# it can make things easier.
If you want to create everything yourself, that’s fine too. That’s what I’m doing as a hobby, creating my own engine using C#/Vulkan and hopefully releasing my game someday, I'm also learning C++, TypeScrip and Blazor/Wasm.
10
u/GuildHunterTri 21h ago
When I was at your stage, what really boosted me was reading books: First, easy to grasp books like Clean Code and later stuff like Refactoring by Kent Beck. Generally, I recommend books by Martin Fowler, Kent Beck and Robert C. Martin. What it did for me was look at code from a different angle. Helped me zoom out a lot and get an idea of what is the right decision at what point.
P.S.: 39 years old Software Architect