C# Learning Help | DOs and DON'Ts | Tips?

Hi, I would like to learn C# programming but I really seem to struggle with it. I’ve been trying to do it for 2 years or so, but I suppose in a really wrong way. Most of the time I’ve been just following the YouTube tutorials but most of the stuff didn’t seem to make sense. Afterwards, a few months ago I’ve realized I was making mistakes, so I got a couple of books and I have really seemed to have picked up a lot of language, delegates, classes, exceptions, lots of OOP etc. These books included Learning C# 3.0, C# 7.0 for Dummies and C# Yellow Book. Afterwards I have started doing the algorithms, using a few “universal” books and that also seemed to help me a lot. Now, the thing is, I seem lost again. I want to learn the actual UI application programming and not only the console applications. Maybe I’m on the right path, but I don’t seem to have improved much over the last couple of weeks, especially as most of the stuff is just pure repetition. I would also like to mention that I have gotten a few local collections of programming problems and that I solve them successfully most of the time, this also applies to the competitions as I have gotten a few prizes on a country level.

Are there any courses you would recommend me or any books or just tutorials? Is there any way I could improve my practicing, learning skills.

If it is helpful, I spend 4-5 hours studying, revising and practicing coding every single day and sometimes even more. I am about to turn 15, but I do not think that should make major differences. Thank you!

1 Like

Given where you say you are: find something that you want to build and build it. I know this is easier said than done, but there are loads of project ideas lists floating around to get you started.

This will get you further than anything else. It will be hard, you’ll get stuck a lot, but you’ll be forced to work past that. You’ll improve the way you ask questions, how you search for answers, read code, use tooling, solve problems.

Don’t get precious about stuff. Try to build quickly. YMMV but I find this really hard – I’m terrible for trying to perfect everything, it takes a huge effort for me to avoid doing that. If you get stuck ask, look up answers. Don’t be afraid to copy, but make sure you understand what you’re copying. Just build stuff, and be prepared to just throw things away once you’re done and you’ve learnt what you need.

Mega project list:

Plus solutions by many people in many languages (always v useful, do always read others’ code):

Build your own {insert thing}:

C# has become very widely used as a game scripting language, and there are numerous mature frameworks. Monogame would be a good one to go for I think rather than something like Unity, as it’s a bit more barebones, with more C# coding involved, rather than clicking away in a GUI:

http://inventwithpython.com/blog/2012/02/20/i-need-practice-programming-49-ideas-for-game-clones-to-code/

And there are loads more if you google around.

Also, look at other stuff as well. Among many things:

Testing isn’t really something that’s super important when you’re learning syntax, but it’s important for building software.

Using a version control system is orthogonal to learning to build software, so git gud at git (and I guess you’re spoiled a bit by MS owning GitHub and tightly integrating it as fast as possible into its ecosystem).

Look at Blazor and build some frontend stuff – imo it’s maybe a solution in search of a problem, but it looks really really nice:

C# supports a helluva lot of functional idioms if you dig around, this library I think is really great:

But do think about looking at F# as well, it’ll give you a different perspective, and is much better for certain stuff (find out what!). Again, you’re a bit spoiled by having MS’ tooling, you can just hit new F# project instead of C# in VS (I mean, it’ll look like complete gibberish at first, but anyway)

2 Likes

Thanks for that. I suppose I am going to start with the projects from those libraries and do the XNA 4.0 aside from it. I have ordered the oreilly book about the XNA already as it seems to be almost exact as monogame. :slight_smile:

1 Like

The Harvey Deitel books are usually really good for syntax. Mosh Hamedani has some excellent videos on Udemy and Pluralsight. His method is concise and purposefully omits unnecessary theory. There are a couple of ways of doing desktop UI’s, but most of the jobs you see will be for web application related stuff like MVC and Web API. Blazor is something new that may shake up things. If you are 15, you already have a big jump on most people, and you will be in great shape!

2 Likes

I’ve seen Mosh Hamedani on Udemy and have been thinking of getting the two courses covering the intermediate and advanced c#, just to spice things up a bit. But, I suppose I’ll do it after I have finished a few small projects, just so I ensure I’m still willing to learn it. Has anyone had any experience with his Xamarin Forms course, that seems interesting as well, but again just the future plan. :slight_smile:

Harvey Deitel is awesome for C#.

If anyone decides to get it make sure you grab the Global edition. Its cheaper.

https://www.amazon.com/gp/product/1292153466