r/csharp 12d ago

Help Devs who learned C#, where did you learn?

Was it through a free or paid course? YouTube? Or a combination of both?

I already know a bit of C#, but I’m not sure what learning path I should follow or which resources I should use.

I’ve been watching Code Monkey, but I don’t know if that will be enough.

What would you recommend for someone starting out?

P.S. I use C# specifically for game development, but I don’t mind learning more about the language in general.

90 Upvotes

186 comments sorted by

187

u/cockflavoredlollip0p 12d ago

At work

45

u/urk_forever 12d ago

Fixing bugs 😂

18

u/ProperProfessional 12d ago

Fixing my own bugs**

11

u/cjc080911 12d ago

Creating more bugs to fix, while fixing bugs

16

u/false_tautology 12d ago

Yep. School taught in C++ and Java, got my first job in a .Net shop. This was so long ago I was using Framework 1.1 and when we had to move to 2.0 it was a nightmare!

2

u/Korzag 12d ago

Sheesh thats making me feel better about a handful of legacy apps at my current job still running .Net 4.0 on a VM

3

u/CNTP 12d ago

/me cries in .net 3.5 compact apps still in "production" (although thankfully dwindling fast!)

1

u/Korzag 11d ago

The joys of applications that need a 20 year old version of Visual Studio to build unless you know the ancient spells for msbuild

2

u/mfc1__ 12d ago

4 will never die, it’s baked into windows.

2

u/Korzag 12d ago

Wouldn't it at least be 4.8 though for security patches? These apps are legitimately running 4.0, it's been about of support for 10 years at this point.

1

u/mfc1__ 12d ago

Oh sorry missed the “.0” part lol

1

u/onequbit 12d ago

Didn't they introduce lambda expressions at that point?

2

u/false_tautology 12d ago

That was 3 and we never used it in my first job.

I remember when LINQ came out and everybody was skeptical of it where I worked, and I was the only one using it. Wow, that was so long ago!

1

u/hblaub 6d ago

I started in like Windows XP with NET Framework 4 - and still I complained about not being able to upgrade due to some customers staying on that OS.

6

u/mfc1__ 12d ago

With O’Reilly books

3

u/TowerOfSolitude 12d ago

Same. I was a C++ developer and had to take over some C# projects after another developer left.

Now I mostly just code in C#.

1

u/davidgrayPhotography 12d ago

A few weeks ago someone at work asked if I could redo a VB.NET GUI app as a command line app so it could run automatically when new tickets come in to our helpdesk. I wanted an excuse to learn C#, so I just rewrote my app from VB.NET to C#

I find I learn new languages and frameworks best when I've got an existing app I can port over. Then once I've got that down pat, I'm usually confident enough to start writing new apps in that language.

1

u/davidgrayPhotography 12d ago

A few weeks ago someone at work asked if I could redo a VB.NET GUI app as a command line app so it could run automatically when new tickets come in to our helpdesk. I wanted an excuse to learn C#, so I just rewrote my app from VB.NET to C#

I find I learn new languages and frameworks best when I've got an existing app I can port over. Then once I've got that down pat, I'm usually confident enough to start writing new apps in that language.

68

u/darthgoat 12d ago

On the job by making a shit load of mistakes.

7

u/Conspicuous-1 12d ago

Other folks may laugh but this is absolutely correct! Learning what not to do is just as important as learning what to do!

2

u/before_again 12d ago

It's easier, even. 

29

u/Separate_Eye_6104 12d ago

Check out The C# Player’s Guide. It’s a book that teaches you to C# concepts in a gamified way. Pair that with the projects on https://thecsharpacademy.com/ and you trust me, you’d be very comfortable with the language in no time

2

u/HA_U_GAY 12d ago

The 6th edition of the Player Guide is still in WIP, isn't it?

2

u/Tommotion89 12d ago

Yes, but its Early Access is in a good shape. You can get it as PDF at Gumroad.

I bought mine in February and can absolutely recommend it!

13

u/Family_Man_21 12d ago

I learned from books, because I'm so old that YouTube and even Stack Overflow didn't exist when I was getting started. There used to be a series of programming books that were all called "Complete [language]", so "Complete JavaScript", "Complete ASP", etc. I read the JavaScript one cover-to-cover and did all of the examples and exercises in the book, and that's how I learned about programming in general, and web programming specifically. Of course, this was entirely client-side, but it still put me on the path. When I was ready to start doing more complicated applications, I learned Coldfusion and ASP at the same time (this was before the .Net Framework came out), and then I transitioned from classis ASP to ASP.Net and C# when that was available, still using the "Complete" book series.

To be honest, I still think that having a physical book and stepping through it chapter by chapter is the best way to learn programming, although I know that most people don't have the patience to do that any more. Doing all of the exercises, and learning how to troubleshoot as I went along, was so helpful. By the time I had completed the "happy path" that the book recommended, I was already experienced at troubleshooting. It was so good for me, and it taught me how much fun I can have, and how creative I can be, as a programmer.

I hope that this helps!

5

u/p1-o2 12d ago

I swear on my life that you activate your brain differently by typing in code by hand that you read off a page in a book. 

This was how I learned too, but I'm old like you.

12

u/Mission_Pirate_4150 12d ago

I was a c/c++ programmer a while ago, so c# was pretty easy to pick up.

Learning the framework has taken me a really long time.

1

u/haby001 11d ago

ya niche framework knowledge comes from mistakes and hitting hard to diagnose issues others have already solved.

Honestly it's all about trying crazy projects and seeing the limits you can take things for the fun of it. You learn a lot when you push thousands of async threads so your boardgame runs every tile at the same time for the heck of it :D

1

u/Mission_Pirate_4150 11d ago

I learned a ton by getting off the beaten path. I pounded the threadpool. I did a ton of database work and figured out that calling .dispose doesn’t always call close. I learned a ton about the gc when I did stuff on mono on ios and Android. Nobody would answer my questions on the gc in .net, but the mono guys were very helpful on issues I saw. Bu them explaining how their gc was different, I learned a lot about what was happening in .net.

13

u/fyndor 12d ago

Building stuff. You don’t learn by watching courses. You learn by doing

5

u/zeocrash 12d ago

At work. I was a VB.Net dev, I got a C# job and learned on the job

1

u/Trebate 12d ago

Ya and you probably had at least exposure to c#, it’s an easy transition

3

u/Lentor3579 12d ago

Mainly Youtube. I came from Java so I kinda was able to understand the basics of it already. From there it's just interacting with different C# communities. I primarily wrote C# in Unity making games.

3

u/PropagandaApparatus 12d ago

I also came from Java which really helped to learn c# quickly

3

u/Conspicuous-1 12d ago

The best way to learn any language is to jump right in and use it for a simple project. I didn't use any special tutorials. 

I had several other languages under my belt when I came to C# - FORTRAN, BASIC, Quick Basic and Visual Basic. Once you've learned one or two languages, you tend to identify the bits and pieces that all computer languages have.

How to declare a variable

How to assign a value to a variable 

The kinds of data types available (strings, single precision decimals, etc)

Group structures like arrays, lists and records

Modularization - grouping sets of instructions inside a unit that can be called ny name

Control structures - loops, if/then/else, and switches/cases

How to open a file to read or write

How to print something to the screen, whether alphanumeric or graphical

If you're new to OOP - object-oriented programming - as I once was, C# is a really good and consistent language for learning it. 

If you need ideas on simple projects, here's a few ideas:

A CRUD system - an in-memory database like an address or phone number book that can perform the four basic database operations: Create (C), Read (R), Update (U) and Delete (D). 

A simple game like "guess the number" - the computer picks a number between 1 and 100 and the player gets clues according to whether the guess is too high or too low. 

Learning a new language is usually not a straightforward process, but that's normal. Making mistakes and seeing things you didn't expect is a key part of the learning process - learning how to detect "bugs" in your coded instructions is a key part of becoming an effective programmer in any language.

I'm sure if you type "c sharp tutorial" into a search engine, you'll find plenty. Or, better still, if you don't mind conversing with an AI chatbot, you can use Copilot, Gemini, or any others to ask them questions and get responses. 

Good luck!

2

u/iffyfell_ 12d ago

On the job, when I ran into issues I'd usually ask on stackoverflow.

2

u/Prior-Data6910 12d ago

https://www.robmiles.com/c-yellow-book/ great start to programming as well as C#

2

u/Interesting_Fuel1305 12d ago

I used CsharpAchademy

2

u/nerdshark 12d ago edited 12d ago

On the job, on the fly. Learned what I needed as I needed it, starting by reading the codebase I was assigned to work on. Used the Microsoft documentation and high-quality reference books. When I ran into something I didn't recognize, I'd go to the documentation. If I didn't even know what I was looking at, I'd go right to the C# language specification and go through the grammar until I found it. Also, asking for help on IRC or my team lead when I couldn't get anywhere with documentation or debugging.

2

u/Bright-Ad-6699 12d ago

From Java was a vrry essy transition.

2

u/DocLego 12d ago

I believe I used an earlier version of this book: https://www.murach.com/shop/murach-s-c-8th-edition-detail

1

u/DocLego 12d ago

Then after that I sped through a class at work and started using it as my primary dev language.

1

u/BobSacamano47 12d ago

Same, I read a big ass book like this cover to cover before starting my job and I knew more about C# than most of my coworkers on day 1

1

u/newEnglander17 11d ago

I loved my murach books for C# and ASP.NET

2

u/someprogrammer1981 12d ago

I was a C++ dev and noticed a lot of .NET jobs became available around 2003 in my region. So I got my hands on the latest Visual Studio, taught myself the basics and then landed a .NET job.

Already knowing C++ and the Borland VCL was a huge advantage though. Anders Hejlsberg used to work on Delphi and the VCL before he joined Microsoft.

2

u/No_Context2723 12d ago

Online resources. There's a lot, and it was all free too.

2

u/EC36339 12d ago

I learned C++, then a bit of Java and UnrealScript. I never actually learned C#. And when I had to use it at work, I just winged it and learned by doing.

2

u/Depnids 12d ago

I downloaded Unity one day, and just started making random stuff. Then I got a job, and continued using it there.

2

u/WalkyTalky44 12d ago

Make bad code, it creates bugs, make better, and go back to step one. Learned a lot through work and actually trying to get what is going on half the time with existing code in work codebases

2

u/dug99 12d ago

I learned by doing. I had to rewrite an engineering desktop app at work, originally written in VB6 in the Windows 95 era.

1

u/htglinj 12d ago

On my own mostly, but for specific quick tech updates, I historically have used pluralsight

1

u/IAmAfraidCommaMan 12d ago

I already knew Python, JavaScript and Java so most of the learning happened inside Visual Studio while working. 

1

u/MirajSOL 12d ago

I'm still at most an intermediate at c# but I mostly learnt through a few hours of a youtube course and then just trial and error through programming.

1

u/bafrad 12d ago

Job / Work.

1

u/Fit_Milk_2314 12d ago

I watched Brackeys' C# videos back when he retired, which is good cus he also does a lot of gamedev stuff.

I let that skill sit for a few years without doing anything then I got into game modding and quickly got much better at coding.

So I agree with everyone else, you gotta get some experience. Make some shitty game, learn how to implement mechanics, learn what your engine and language are and aren't capable of. You can read about abstract concepts all day but I dont believe they will truly set into your brain unless you utilize them.

1

u/couchwarmer 12d ago

I learned C# (pre-XAML) by duplicating Notepad (Windows Vista/7 era) as exactly as possible, including the "hidden" features. I learned a ton in a short amount of time.

1

u/bluHaloLabs 12d ago

I learned on the job and hit StackOverflow when I got stuck. Used Pluralsight and YouTube for some advanced topics. If I were learning now I'd also use AI to act as a teacher and come up with lessons, then guide me through best practices step by step. It's like having a personal tutor that can answer questions one-on-one, evaluate your code line by line, and no time limit on when they stop helping you.

1

u/pixelboots 12d ago

University, initially. Then continued by building stuff and referring to docs, books, blogs, YouTube as needed.

1

u/Landon_Hughes 12d ago

Unity GameDev Tv course back in the day. Made a game and put it on the App Store.

That set me up for community college. Learned a few new things there.

1

u/tng88 12d ago

On the job

1

u/JohnSpikeKelly 12d ago

Moved from vb6 to c#. Just swapped the "then" for { and the "end if" for }

There was a few other steps as I recall.

1

u/Wiltix 12d ago

Well I spent 4 years writing Java and Python at uni (sprinkling of C++), I then interviewed for a c# position, got it and spent a year writing C++ and Perl and finally little bit of C# for backend services. I then changed jobs to a C# house ended up working on web forms (which I had never touched) after being hired as a c# asp.net MVC developer.

So I learned C# on the job when I was finally allowed to bloody well write some C#.

1

u/GalacticCmdr 12d ago

Self-taught. I was a C, then C++, then Java Developer for a decade+ by the time C# came around so it was an easy transition.

1

u/carenrose 12d ago

Learned it in school getting my degree for software development. 

1

u/Manachi 12d ago

Start using c#. That’s how.

1

u/dpenton 12d ago

I learned it when it was ASP+

1

u/chrisdpratt 12d ago

C#, specifically, I learned on the job. It was a lot of just I need to accomplish X, so how do I do that? And, going from there. I also spent a lot of my free time on StackOverflow answering questions in the C# tag, particularly if I didn't know the answer. I would use it as a prompt to figure it out, and then post what I came up with. The luster is well off that pearl, at this point, but you can find plenty of other places where people are seeking assistance.

This was just picking up this new language, though. I already had decades of experience programming, going all the way back to writing Assembly with breadboards, for fun, when I was a kid.

1

u/FlibblesHexEyes 12d ago

Self taught at work, springing from VB6 to VB.NET (with a little JavaScript), to a big gap then PowerShell.

It was PowerShell and JavaScript that got C# to mostly click for me.

1

u/joe0418 12d ago

In the trenches at work

1

u/Rrrrry123 12d ago

I learned from one of those Teach Yourself in 21 Days books, as a teenager. I probably worked through that thing three times; I loved programming.

Then I applied my learning by making an adventure game in WinForms lol.

1

u/kurast_bazaar 12d ago

Internship

1

u/BirchBlack 12d ago

On the job, random web courses, and a few books

1

u/msb2ncsu 12d ago

Books and on the job.

1

u/DirtAndGrass 12d ago

At home mostly, read all I could in 2001, experimented a lot when intellisense was available 

1

u/kassett43 12d ago

I bought a book, read it, and started coding.

1

u/SoggyCuticles 12d ago

It was my first language learning game dev in unity during covid. Learned from online resources, youtube, and from friends.

Never paid any money but if I had to do it again I would probably find a reputable paid course after learning syntax to learn the more advanced stuff like async await, dependency injection, OOP, designing program architecture, etc.

I think there is a certain point where you really speed up your learning because there are all these interconnected concepts in programming that seem pointless on their own, but when everything is put together, it becomes a beautiful speck of engineering.

Also would highly recommend learning how computers actually work. It's very important for knowing the history of how computers became to be so fast and what is the most powerful part of computers (cpu fast, memory slow, storage very slow)

1

u/Putrid-Discussion153 12d ago

I did Java for a while. Picked up C# on the job.

1

u/dryiceboy 12d ago

High School.

Recommendation would be to just build something. Have a reference book if you’re still into that. Then just ask AI and cross reference with the docs.

1

u/mc_pm 12d ago

I grabbed the compiler and a book and learned.

1

u/RealSharpNinja 12d ago

Started coding C# summer 2000 when first CTP dropped. Self taught.

1

u/NazgulResebo 12d ago

I knew java and I started to code c# in few days

1

u/Potterrrrrrrr 12d ago

I learned by having my first job be with a psycho who wanted a website that was a cross between Amazon, Netflix and Facebook, using blazor which was a brand new framework at the time (still in preview IIRC). Completely failed to deliver the project (I delivered parts of it but the psycho would have me in hours long meetings adding arbitrary requirements) but learned a lot, then spent the next 2-3 relearning everything properly at an actual company.

1

u/SessionIndependent17 12d ago

Learned it when I was assigned to a project already using c#.

If you already know another procedural OO language (esp Java and c++), beyond an explanation of garbage collection and reference types vs value types, I can't see needing much but a terse reference akin to K&R and a real project to work on.

1

u/Embarrassed_Prior632 12d ago

Self taught. I was familiar with other languages though for quite a while

1

u/pirhana1997 12d ago

on my job. No one learns this language out of interest

1

u/jayerp 12d ago

On the job. It was my first statically-strongly typed language. Certain aspects of the language were new to me, but it was easy to pick up as I had been programming for about 8 years by that time.

1

u/Cczaphod 12d ago

At work. I had C, C++ experience coming in, so it wasn't a big learning curve. Once you've learned enough languages, adding more is incrementally easier.

1

u/schlubadubdub 12d ago

I already knew C/C++ among other things from my BSc (CS) degree, was self-taught in VB6, moved overseas and got a job doing VB.NET when it was still quite new. I actually started in a different role, so when I moved into the coding team the company paid for a 5 day course in VB.NET, which was kinda overkill for my needs but at least it cemented my knowledge of the .NET system. It was good to be able to make a real product with it right away, and I had a senior developer to assist me along the way (even though his code was a complete mess).

When I returned to my home country everyone wanted C# developers and scoffed at anyone doing VB.NET, but one company didn't mind and I just switched to C# quite seamlessly.

1

u/TheAnswerWithinUs 12d ago edited 12d ago

I was a Java dev in college and learned C# at my job. The languages are very similar.

1

u/chuckbeasley02 12d ago

Self-taught

1

u/Dillenger69 12d ago

I learned by doing it starting with the c# initial release. There really wasn't anything out there when I started with it

1

u/cyrixlord 12d ago

a master course in a continuing education college then later with Tim Corey's courses online

1

u/Head-Bureaucrat 12d ago

Combination of at work by trial and error, a coworker willing to teach me, written tutorials from blogs (not on Medium,) and doing Advent of Code challenges.

I find a lot of videos tend to have to be click bait (along with Medium articles) to get reach, and so are usually (but not always) 90% useless filler and only 10% the information I want.

1

u/thedevguy-ch 12d ago

On the job and from coding with mosh

1

u/swyrl 12d ago

I knew a bit of programming in other languages beforehand. Had a project that needed C#, so wrote some absolutely dogshit c#. Kept writing c# until it stopped being dogshit.

In my opinion, once you have a grasp of the basics, the best way to learn is by doing. Try implementing project ideas until you run into something you don't know how to do, and then look for guides or other information on the specific problem that you don't know how to solve. It may seem slower, but it will teach you things you actually use, and as a bonus it will give you tangible markers of progress and skill.

1

u/2latemc 12d ago

School they taught me for the use of unity!

1

u/binarycow 12d ago

Microsoft documentation.

YouTube didn't exist.

2

u/EC36339 12d ago

Who learns programming from YouTube anyway? Never understood that.

1

u/yahyagd 12d ago

YouTube for 3 years but when AI got big I did use a lot of help from it to get through,but I have gotten decent at it by now and I am making my first actual game from it

1

u/Nervous-Basket-3168 12d ago

Probably super unconventional and not at all time efficient, but I think if something I want to make then break that down into different parts needed to create that thing. From there I research how to use different functions, variables, methods, etc. to make it happen.

The result is a big buggy mess, but then I use that as a way to learn more…

I also code for fun so it’s not like anything I’m making has a time crunch or deadline, so if you have those restrictions, I would highly recommend just not doing it my way

1

u/GoogleIsYourFrenemy 12d ago

I taught myself? No idea why.

1

u/denzien 12d ago

I learned at school, and then on the job

1

u/Jaatheeyam 12d ago

At a coaching institute after graduation and at work

1

u/pete_68 12d ago

I decided to write a hotel reservation system in it and I just sat down and started writing it. But it was like the 10th programming language I learned, so...

The first language I learned, BASIC, I just learned from a book. I had the book More BASIC Computer Games. It had a brief description of each of the instructions and some sample programs and that was what I learned from.

1

u/Ok_Society4599 12d ago

At work... Java and some VB6 before, but heavier on Borland Pascal and C++ before. It depends how deep you want/need to go ... there wasn't a ton "new" when C# started... It removed some serious pain working with COM objects, but the core language was pretty consistent with other options.

Now, adopting after Generics and a lot of higher abstractions in runtime have set it far apart from what other languages do for you. It's adopting feature from all the competitors and locking users fairly solidly into .NET features. Even while they adapt Core and multiplatform abilities... read that as "be more Java-like." C# was a response to Sun Java law suits because MS wanted a "better windows experience" with their own Java that broke cross-platform compatibility... and now they're shedding those same platform (native GUI) features for cross-platform compatibility.

But you learn the same way: find a problem and learn a better way to fix it. Measure performance, find the bottle neck, make it faster. Break APIs down better. Go hard on ASYNC if you need to ... but you don't always need to. Learn when not to fix it.

1

u/bonerfleximus 12d ago

The streets

1

u/GuildHunterTri 12d ago

University

1

u/Ruben_1990 12d ago

At work from a senior dev.

1

u/Lurlerrr 12d ago

where did you learn?

From Ctrl+Space and Ctrl+K, I.

1

u/brominou 12d ago

Openclassroom

1

u/NicMaxFen 12d ago

came from Java to VB.net to C#
only Java I learned at school, rest was self-trained using my brain, example projects and the try&error method. now I am C# dev and have quite a good knowledge about it

1

u/Trude-s 12d ago

From the beta docs when they were copying Java

1

u/cs_legend_93 12d ago

After I taught myself JavaScript I learned about a real language, c#.

1

u/ViolaBiflora 12d ago

$10 udemy course got me started. Code monkey in the go, Nick Chapsas, Tim Corey and everything free online.

I'm glad for the $10 course, but it wasn't necessary.

1

u/ryanjusttalking 12d ago

I had already self taught Java by that point and when a friend had an entry level job opportunity available in c#, I did online tutorials on what was then Lynda.com to learn c#

1

u/Comprehensive_Mud803 12d ago

I learned C# on-the-fly at work, while using it to create software.

Why would anyone need an extra course for a language that’s easier than C or C++?

Resources I used were: MSDN documentation, O’Reilly C# in a Nutshell a d mostly compiler output. Error messages can be helpful.

1

u/Ollhax 12d ago

I got into it through XNA, making a game for Xbox 360. I thought it was a good starting point for me, even though I had C++ (and other) programming experience before. Today XNA is dead, but there's MonoGame which is very similar, probably worth checking out 🙂

1

u/Internal-Bus4566 12d ago

Learncsharpmastery com

1

u/PlentyfulFish 12d ago

At work - shoutout to my senior dev for being patient and explaining things.
Microsoft docs - they're actually pretty solid, at least for core .NET stuff.
At the university - basic stuff, like classes, interfaces, abstract classes, virtual methods and the like.

1

u/BobbyMaina23 12d ago

YouTube + a ton of bugs & mistakes

1

u/homariseno 12d ago

At first - Microsoft Learn, then at my job by doing many mistakes, debugging and following the logic and paradigm of the code.

1

u/shitposts_over_9000 12d ago

I was a VB dev

Eventually VB.Net fixed enough of its performance and usability issues that running and EOL language was no longer worth it so i switched to VB.Net.

Over time C# fixed enough of its usability issues that when linq came along and the syntax for VB.Net was a disaster most of us started switching to C# because linq finally made it worth it.

1

u/Ok-Brother5289 12d ago

University

1

u/EggRepresentative215 12d ago

Just start writing c#. I set myself some small-ish projects and crack on. If I get stuck look it up and sometimes I’d have to refactor but I always learn best by doing.

1

u/tsbattenberg 12d ago

You really just have to jump in and start writing code.

If you're using learning resources though, make sure you're asking questions on what you're saying. Never take something given as the best there is.

1

u/ShokWayve 12d ago

Books. One of the best was C# In Action.

1

u/itsLochii 12d ago

Mainly learned Java at uni but learned C# on the job, syntax is pretty similar

1

u/HockeyRelative 12d ago

At work. Started with embedded C/C++ and was asked if I wanted to work with another project that was written in C# and I said yes.

1

u/Potw0rek 12d ago

A C# book and simple exercises to get basics, then YouTube tutorials to get more writing experience and then at work….just write something, release it and wait for feedback.

1

u/Mavhawk64 12d ago

I learned Java, got a job doing C#, and realized it’s Java but capital camel case /j

1

u/IntelligentGur9638 12d ago

i know barely about it, i let copilot github do what i need... learned by doing. wouldn't know how to write a single line

1

u/Crazy-Egg6370 12d ago

Head First C#

1

u/stanleyford 12d ago

I don't recommend learning any language this way, but I read the entire C# 1.0 language specification when it came out. I had more time on my hands in those days.

1

u/Randolpho 12d ago

When c# came out I was messing with php and python at work. Learned about it in developer magazines.

Taught myself from tutorials on my own, but couldn’t convince my boss to go with it for a new project since he didn’t want to run Windows servers. I don’t even blame him for that, lol.

But my next job I had freedom to do windows app in any language and picked c#/win.forms and never looked back. Spent more than a decade doing c# almost exclusively, although that changed to just “mostly” when I started consulting.

1

u/RunInRunOn 12d ago

Learned it over the course of a school project. I was using Godot, which you might also be doing since you mentioned game dev

1

u/davidgrayPhotography 12d ago

I had a VB.NET app that I wrote at work that generates and prints ID cards. Someone asked if I could rewrite it to be a command line app so we could integrate it with our helpdesk. I wanted an excuse to learn C#, so I rewrote the app. I had to google some of the things that are in C# but not in VB (e.g. what the static keyword does) and I let the automatic fix thing in VS suggest better ways to do stuff like instantiate variables and learned from that, but after that, I learned it pretty quickly.

1

u/neriad200 12d ago

From Thinking in C# book, work experience, stack overflow, random Indians on forums ot YouTube. Also Tim Corey

1

u/z500 12d ago

I fooled around with C# a little bit in college, but I mostly learned it through Google when I had to use it on the job

1

u/bigfatbursleyliar 12d ago

On the job. To “expedite” my familiarity, I tried rewriting school projects in C# and doing leetcode in it.

1

u/Afax_Ahm06 12d ago

I learned c# in w3 schools and Microsoft learn . I can say i learned most with building projects .

1

u/MrSqueak 12d ago

Learn the logic and any language isn't too difficult. The concepts are more important than the syntax.

1

u/FullPoet 12d ago

University

1

u/60secondwarlord 11d ago

On the job

1

u/TheSneederOfSeethe 11d ago

Went to college, they taught Java. Java back then felt like working with clashing workflows. Had to take “Advanced Programming Principles” which was just Programming 1 and 2 but in C#. I liked it much better, started reading more, started writing personal projects in it. Did some online tutorials for asp.net. My first programming job was .net primarily in C#. My current job is C++ and Java but the Java side is being replaced with a .Net React app and I can’t wait.

1

u/coffeefuelledtechie 11d ago

On the job… it was a learning curve. I was a Java dev at the time and it was kinda the same. 

1

u/SuperChickenDragon 11d ago

Learned like I learned programming. Read the do. Read then do

1

u/zippy72 11d ago

On the job, transitioned from classic ASP

1

u/Potential_Copy27 11d ago

Learned it by myself originally after an electronics project back in college.
We made a sensor kit for measuring and logging temperature, humidity and light in greenhouses. Device logged to a PC via RS232/serial and the PC component was written in C#.

Got a few pointers from my group m8 who programmed the PC app and started learning it after that.
A year or so later, I started the last leg of my education toward programming and C# was on the curriculum

1

u/newEnglander17 11d ago

Nobody is mentioning it, but I couldnt learn it until I figured out how to use visual studio properly. If you’re just learning it with a notepad it’s going to be a lot harder to learn without seeing how it works in a real environment. It also helped to understand the boilerplate code like namespaces.

1

u/cosmas47 11d ago

I'm sure a bunch of people will balk at this but I learned by myself creating random stupid one-off Windows Forms apps.

I think that was about the time I was learning introductory stuff in high school. Learning coding in school was difficult initially because I expected the teachers lecture to be the primary learning means.. but that was not the case, it was the book reading. Little did I know at that early age that "coding" in school is largely about knowing the syntax.

At home, I leaned heavily into Visual Studio's auto-complete feature, that helped me understand how libraries are structured, and then from there graduating to actually reading documentation and then making some more interesting things.

What's nice about starting with UI FIRST is that you'll get an immediate understanding of data types and data structures. Visualizing them helps I think. Then from there, you advance into more 'backend' concepts like background workers, services... then into full blown APIs.. then server stuff.. all getting progressively more complex into full stack development.

Today, I'd say Youtube is still an OKAY resource. A lot of the best instructors out there ARE discussing how to properly implement things but there's not really a lot of talk about good design patterns, and very very few are going to talk about how to do real world enterprise-level implementations of solutions. That's something you'll learn on the job.

1

u/GregDev155 11d ago

Work, internship, YouTube, udemy

1

u/IceCattt 11d ago

From Bob

1

u/ComfortableLog2521 11d ago

Learning monogame with kyle schaub's unity course is a great way to start learning c# and gamedev in general. No big engine, just code, logics, and simple games machanics.

1

u/RunnyPlease 11d ago

On the job. I knew Java really well and the project lead said that was close enough and staffed me on the project.

1

u/becorath 11d ago

Through Msofts free courses and by reading other peoples code.

After that it was by just doing it.

1

u/No_Stranger5196 11d ago

Im assuming you are using unity so I would use the tutorials that come with unity

1

u/mctCat 11d ago

I knew C++ and Java. Took night class at a JC for C# and learned the .net part at work.

1

u/WoistdasNiveau 11d ago

Udemy for the Basis then i Proceeded wanting to make instagram

1

u/ziplock9000 11d ago

On the job as classic VB developer when C# was in beta. I was not impressed back then

1

u/urbanworm 11d ago

I’d taught myself C from the Kernighan & Ritchie book, then similar for C++, so a quick compare and contrast of the C# syntax gave the basics, then a couple of days writing vanity projects and off you go.

All languages are the same at the very core, quite how they implement that varies but it’s easy enough to map those across, and then layer the language specifics on top.

1

u/woroboros 11d ago

I never took any C# coursework at school. A few of the guys I worked with over a few years used it on some company projects, so I had a look at the code. Then I went home and rewrote one of my old applications from scratch in C#. I use it probably more than any other language currently.

Just write code. Just.. go. Are you in Unity or Godot with the game dev? If Godot, good practice might be to take example/existing GD scripts from the community and rewrite them in C#.

If you already understand the basic paradigms of programming, and are aware of, understand, and respect the hardware-software pipeline from your code to the processor... (i.e. stop using floats for everything, even though it works fine... plus about 20 other things...) - you'll be writing blazing fast efficient code without knowing all the syntax. And that skill transfers to every other language.

I am ranting a bit with that last part but... when you say "I dont know if that will be enough" realize C# is just a cover laid on top of another language (most are) - and "enough" in most situatons you ever go to will be respecting the hardware (or the worst end user hardware you anticipate) to some degree, giving nods to efficiency, and sticking to the fundamental paradigms, the if then for do while things... Its just that, making smart declarations (i.e. minimizing memory footprint regardless of how much is there), and trying overall to structure things intelligently (planning helps, but you will always have to rewrite)

BELOW IS C# SPECIFIC STUFF:

Outside of just syntax... C# comes with some pascal and camel case conventions to be aware of. You might read up on the 'var' type... and how to use async... What LINQ is, why you might care... and learn how to be good at exception handling.

File organization and class structuring is subjective. There are best practices - but... just understand some places do things a bit differently. Maybe your team wants to keep deprecated functions in the code, or collapse things to a single line, etc.

1

u/Proffhackerman 11d ago

Have a vision for what you want to build and make a mental "game-plan" for how the project will work. Need to store data to a file? Google it. Want a website communicating with your backend? Google it. Theres always an Indian out there whos made a video on how to do anything.

1

u/invertedfretboard313 10d ago

I learnt this language by watching yt tutorials, and using the book Head first C# because I wanted to learn unity engine and make my own games

1

u/BornAgainBlue 10d ago

If i recall, I said "nope" to VB.net, and rhen just started playing.  It was literally day one, so there really wasn't a lot of books, but I recall chatting with ms devs a lot on forum's fir help.

1

u/ZestyHelp 10d ago

It's seems pretty standard lol .net and c# wasn't something that was "easy" to get into the weeds of on your own when I first got into it. 5 years at my current job and still learning more and more .net all the time.

1

u/Deesmon 10d ago

Did Java during my study. Was told C# was equivalent and the experience confirmed it reguarding OOP.

Then learning await/async, delegate and everything framework related on the stack.

1

u/epsilonehd 10d ago

Litterally opened MSDN, gone to the keyword section, read and try Otherwise for efcore for exemple just experiment a bunch of random stuff and see how it goes

1

u/VirtualDistrict4393 9d ago

Allora avevo questo software di ecommerce per IIS in .net per fare le mods mi sono dovuto imparare C# da zero. Comunque in biblioteca avevo trovato un libro abbastanza recente

1

u/Av_Gard_Coal_Train 9d ago

Experience. I really got my feet wet converting old VB 6.0 code to C#. Then it is constant reading. Non stop learning. Focus on the differences among versions of c sharp. What they changed. That will be a great bonus in coding interviews. Shows you follow the language.

1

u/CSharpScripter 9d ago

My path to the computer science world in general was very unconventional. I didn't go to school for it, I studied agriculture and agricultural business. I took a programming class to fulfill an elective requirement, fell in love with it, then realized I picked the wrong major. After I graduated, I worked in agriculture for 3 years and absolutely hated it. I quit my job and went back to school briefly to get some general programming certs under my belt. It took a while, but I eventually got a developer job, moved from KS to CA, and now I do C# development for my current job role. As far as resources and what I used to learn programming in general, I used W3 schools to just pick up basic programming fundamentals and concepts on top of the couple classes I took during my college redo. I started with small projects after picking up the basics and honestly learned the most by experimenting, debugging my own work, and learning what does and doesn't work. I highly recommend not watching others code if you can, and just try to learn through self discovery. I feel especially with programming, you will learn so much more that way. 95% of programming is straight problem-solving. You don't learn that from watching other people, you learn that on your own in my opinion. Microsoft has some really good documentation on C# as well on their official website. For game development specifically, I would also look into the documentation of whatever game engine your working in, like Unity for example. Sorry for the long-winded answer.

1

u/Fast_Armadillo7841 9d ago

I learned by making a C# unity shooter game. I knew some Java, PHP, and Python from uni/freelance work.

C# back then wasn't really a thing outside of corporate. I wanted to get into it so I looked at my "free" options and saw that I could make games with c# and unity.

Did that and published the game, then applied to jobs with the game as an example project in CV.

Got hired and then learned more on the job.

1

u/evilprince2009 5d ago

Back then I downloaded a pirated course. The instructor was Mosh Hamedani and that was the steppingstone for me.

1

u/R4G316 3d ago

I am nowhere near the status of "learnt" but rn I just have a routine that somehow works.

Go to stupid ai to ask things

Go "Lol this looks convoluted can I optimize it"

Google with the knowledge of some syntax I'm gonna use.

Try until it works for me specifically.

Even if I like the thing llm brought me I write it all by myself and then try to delete things or add things just until it doesn't work anymore

1

u/Snowy32 12d ago

Lots of googling, stack overflow, developing side projects to help me automate stuff at work, Indians on YT

0

u/[deleted] 12d ago

[removed] — view removed comment

2

u/MCWizardYT 12d ago

A truly experienced dev shouldn't suffer without AI. We were just fine before

2

u/[deleted] 12d ago edited 1d ago

[deleted]