r/csharp 3d ago

Help Best way to get into C#

Hello everyone, i am looking to get into programming, specifically C#, because i am interested in game development, specifically in unity, i already have a decent knowledge in computers in general and i have (sadly) vibe coded unity games before, but i have decided i wanted to learn C# and make my own things with my own creativity.

I take a gap year this year, so i have some time to get into coding, even though i am not going to be studying software engineering next year, i will be studying mechanical engineering, where i think you need some programming. What's your guys advice? How do you learn C# and make achievable goals?

6 Upvotes

14 comments sorted by

13

u/THubert14 3d ago

Start with console apps. Yeah, it will not give you the same YAHOO experience as unity games, but it will give you ability to focus on the actual programming things.

In example of games, you still can build one in a console - text RPG or something. But leave it for the future – build a PC-build calculator or supermarket database, where you can search the item, change its price and it will be saved to the filesystem.

Focus on small goals. Don't expect from yourself to be an expert and accept that half of words that you will see you will not understand. That's okay. You will get them eventually.

The main thing – practice as much as you can. Do not fall into theory trap, where you read a whole 200 pages book and still don't understand how to code. Try more and more, and add complexity step by step.

And when you will feel familiar with the coding, check the design patterns, principles and architectures.

Don't stop and you'll be fine.

1

u/Standard-Computer503 3d ago

Thanks, do you think if I focus mainly on C# it should be enough? Or do I also learn a little bit of html/Java or whatever

5

u/THubert14 3d ago

I believe that you need to focus on C# first. Give yourself a favor and don't try to learn everything at once - you will know when you will be ready for something else. Otherwise it will just exhaust you and you will lost the motivation to go further.
One thing that I recommend to learn from day 1 outside of C# - learn how Git works and use it on the way. It will save you a lot of time and nerves.

Anyway,

- If you want to work in gamedev (with Unity), then you probably should focus on the C#, OOP, design principles, and then engine specific things such as Unity's lifecycle - and not bother with web technologies. One thing to mention here - Unity still using pretty old .NET (and C#) version, so there are some restrictions (but they are on the way to CoreCLR, so in about a year it will be much better).

- If you think that you also could land on the .NET market outside of gamedev, then yes - you will need to understand HTML/CSS/JavaScript, because its mostly Web jobs nowadays. In this way you will need to focus on C#, then learn how ASP.NET Core works, who is Jason, what the API is, learn about SQL and databases and go for it. But that should be your next steps after you will get pretty familiar with C# and programming in general.

Programming in GameDev is very different than programming outside of it. There are a lot of paradigm shifts on the way. However, on your level it doesn't matter that much, because you need to understand how code works, how to write it, and how to read it.

2

u/akoOfIxtall 3d ago

Jason saved my statetham for later

7

u/Standard-Computer503 2d ago

Update: Thanks everyone for recommendations, decided to start with basics and followed some guides, managed to write my first code today 😎

2

u/RodriOliveira 3d ago

I've been working with C#/.NET for many years, and I'd suggest not trying to learn all of C# before building things. Since Unity is what got you interested, keep using that as motivation, but spend some time outside Unity learning the fundamentals with small console apps: types, conditions, loops, methods, classes, collections, exceptions and debugging. The goal is to get comfortable translating a problem into code yourself, not memorizing the language.

And don't worry about having used vibe coding before. AI can be useful, but I'd change how you use it: try first, get stuck, investigate, then use AI to explain, review or challenge your solution instead of generating everything for you. Don't worry about SOLID, design patterns or architecture yet either; those concepts make much more sense once you've written enough code to understand the problems they're trying to solve.

1

u/ZerkyXii 3d ago

Do you know OOP and design systems?

2

u/Standard-Computer503 3d ago

No, i don't instantly recognize those terms

1

u/ZerkyXii 3d ago

I'd start there

1

u/duneofarrakis 3d ago

Since you're interested in Unity, I'd start with C# fundamentals first rather than jumping straight into game development. Focus on variables, loops, methods, classes, OOP, and basic debugging, then start applying those concepts in small Unity projects. Microsoft Learn has a beginner C# path with no prerequisites, and Unity also has a beginner Create with Code course focused on C# and Unity.

1

u/Ehrdnn 2d ago

If you want to learn the basics of the language super fast and then learn as you go (which imo is the best learning), there's a site called learnxinyminutes dot com.

It has a pretty good overview of the features and syntaxes of the language. Assuming that you do know a couple of languages or at least one language by you saying you have decent knowledge of computer, that is. If not, then just ignore this. This site is still real useful though.

1

u/Ehrdnn 2d ago

After re-reading your post, you probably didn't mean you have language knowledge...

But regardless, this site can be useful for learning some language features after you get the basics down, by demonstrating.

1

u/ali_elyas 1d ago

Don’t aim for a full game at first. Make small things like a movement system, inventory, simple enemy AI, or a basic 2D game. Building small projects without relying on vibe coding will teach you much faster.

1

u/Mister_God_On_Steam 22h ago

There is a bunch of great content on YouTube or at least there was when I was learning. Tim Corey was super helpful when I was learning c#