You think Bash is the easiest language? I have to Google the syntax every time i need to write and IF statement!
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
it's the second language that comes to mind when I think of the word "footgun", right after old c++
There's a few languages I come back to after a while to fix something and have to consult their reference manual / docs. But bash is the only one where that's necessary just to read back my own code. Like [[ -z ${ARG} ]]? Wtf is -z doing here. Wtf kind of syntax is that.
Next time I think oh this could be automated with a little bash scrip I'm going to investigate one of those compiles-to-bash languages.
Thisss, it's atrocious
one of the most popular languages, used in one of the most popular game engines, has no learning resources?
Press X to doubt
Yeah but then you have to learn MATH and I'm not doing that.
People seem to be misunderstanding your question. It doesn't sound like you are lacking educational resources to learn C# but a lack of reasons. It sounds like you have been learning by getting you're hands dirty with foss software.
C# is a sort of "enterprise-grade language" like Java. It's meant for large applications developed by one or more teams for almost exclusively commercial purposes. If you want to learn it, deeply, you'll have to come up with an excuse to write in it. A game is probably the best choice for this. Then learning c# is learning how to make your game.
If you're looking for open source C# software to hack on you can try anything from the *arr stack. (Sonarr, radarr, lidarr).
Don't learn a language unless you need to use it for something.
That's why you're finding it hard. If you needed to program a game, decided on Unity, and had a specific thing to do, it would be easy to figure out how to do that in C#.
- Start writing a small game in Godot using GDScript (basically Python)
- Use the Godot docs to read about C# alternatives to GDScript as you go, compare them and see how they differ
- Translate bit by bit of your game to C# using the docs
- Congrats, you have written a game in C#
Starting with Visual Studio (not code) helps a ton. Make a simple winforms application with a button and some labels and you will start to see how it 'starts up' from program.cs to your form.
I did it once but needed a lot of assistance and it was very confusing
Start with "absolute beginner" courses. Here's one from Bob Taylor. He puts out a lot of good stuff.
Sit your self down and study it for a good bit, then build some things. https://youtu.be/0QUgvfuKvWU
An IDE with auto-complete would help a lot.
I use visual studio
Start with the goal to create something, be it a console app, website, web api, or game. It's hard to just study a language abstractly and learn it. Use the Microsoft Learn documentation as reference, and look for open source .NET projects on GitHub to get different perspectives on how to build things with .NET. There is a free course on freecodecamp that will get you started by building an app, and I believe it was done in partnership with Microsoft
When I was learning c#, I found the .Net framework tutorials available on freecodecamp to be good.
Also, using the Jetbrains Rider IDE (assuming this is for private non-commercial purposes, as per the terms of their free license) rather than VSCode or Visual Studio. VSCode is still lacking in features when it comes to c#, and Visual Studio probably makes more sense if you're already accustomed to c# dev.
- Make a text adventure game that runs in the console.
- Tic tac toe in the console.
Then if you want to go for a GUI web app with react use "dotnet new react" and create a to-do list with a client/server setup.
If you want to learn to make games you could make a tic tac toe again but with a GUI in Godot.
Once that's done make tetris.
You research what you need right before you need it and use it immediately so it sticks better. You'll need to get comfy with typing systems and I recommend using an IDE like Rider or Visual Studio to program it since they help out a lot.
I learned it because I had to write a WPF desktop application, so you could start with WPF tutorials. I was already very familiar with Java, which is very similar, so it wasn't too hard. Last time I used it was in Unity. You might want to find a good free online course for C# to get a good grasp of C#/Java's style of OOP, design patterns, and all that kind of stuff.
I learned C# from the Aurora guide book I picked up with Neverwinter Nights back in the day.
What is aurora and what is this guide book?
Aurora is the engine Neverwinter Nights ran on. The scripting system was driven by C#. The guidebook was the official "strategy guide" but for the toolset, not the game itself.
I heard Watch Dogs uses C# too. Should i start modding these games, with mods that add additional logic? I only have experience with localization and texture mods
A lot of games use C#, actually. And, in my own personal experience, learning by doing is the best. It definitely would be widely transferrable if you wanted to mod games.
This is how I feel about music
Java and C# are very similar, worst case scenario learn Java, then C# will be easy.
That's a waste of effort IMO C# is a bit easier imo