Why is C# so hard to learn?

I know that all first languages are hard but people tell me that c# is easy. ive read the tutorialspoint pdf and watched some unity documentals and alot of unity game making tutorials(third person shooter i.e), yet i dont understand anything. i know what some commands do but thats it. even if i read a pdf file to its end i dont know how to start using what ive learned.
one problem could be cause of my english understanding but i dont belive that. and age doesnt matter also

Any suggestions how to “properly” learn C#?

1 Like

Watch c# begginer tutorial series from Youtube channel Awful media. That’s how i started

C# is certainly one of the easier languages.
The best way to learn is to

  1. Watch C# specific tutorials
    People I recommend:
    Youtube/Brackeys
    Youtube/SpeedTutor

  2. Follow along Unity Tutorials.
    People I recommend:
    Youtube/Brackeys
    Youtube/Quill18Creates

2 Likes

Are you simply reading the books and watching the videos? Or are you following along duplicating the steps with your copy of the development tools?

Getting started may seem difficult at first but it’s basically a process of (A) identifying the goals you wish to meet with your program and (B) breaking each goal down and determining the simplest steps necessary to reach them.

1 Like

If you’re thinking there’s an easier language, there probably isn’t. Basically the hurdle is understanding logic and building experience, not what you’re typing.

You just have to do it until it is magically understood, there aren’t short cuts. It will just make more sense after a while.

Example:

You try to follow a tutorial or listing, and it does not work. After losing an hour, you realise the problem is { } have to be matched and you were missing one somewhere. So that’s one hour of problems that will not happen again.

This happens a lot. A lot of delays but these delays don’t happen twice, you learn to see the problems, and that experience teaches you a lot about why things work and why they don’t. You can’t really make a short cut.

As a beginner you will be trying to drive a car by licking the steering wheel. Eventually you learn you turn the wheel, you operate the pedals. Use the ignition :smile:

10 Likes

C# is a simple language by definition. Here is the first sentence of C# Language Specification 5.0:

2 Likes

What good is it if you don’t know how to use the code without depending on tutorials?

Also if someone who fairly knows C# could they tell me how long they learned it so id know what to expect estimatedly

I’ve been programming for just shy of 10 years now.

I started with C# in 2007.

I’m still learning new things all the time hanging out in communities like this.

It took me about 3 months to be competent enough to explore other languages, namely Actionscript/javascript/C++.

By the end of the year 2007 I was freelancing in Actionscript and Javascript.

BUT, time to competence varies from person to person… I had a long background in mathematics/logics/electronic hardware repair (all my TVs from the age 8 and on were TVs I pulled from dumpsters and repaired).

You’re going to get a different experience from me most likely… but it won’t be super hard. It just takes practice.

Just accept the fact that you’re going to fail the first few times… it’s a given. We all don’t burst out the door running. Rather instead we trip out the door and faceplant over and over until you have all the scars of learning what you’re learning (I should know, I’ve been electricuted enough times). Get ready to pour lots of sweat, blood, and late nights fueled by redbull/coffee/mtn dew.

But it’s worth it…

I love my career.

I’m a kid who grew up section 8 on welfare repairing TVs in a dumpster, the son of drug addicts and fuckwits, the only kid in my family with a highschool diploma (and nothing more). I’m now middle class with a great paying job who spends my time doing what I love.

18 Likes

Personally I watched, read and looked at shitloads of tutorials and example projects. After that I was given advice to check out both Unity’s API aswell as the C# API on msdn , the API’s can be confusing at first, but the more you get comfortable with C# I’m quite sure that you’ll start using the API’s more aswell, since it’s a great resource.

As far as I can recall it took me about a year to learn the language well enough to be able to create something on my own without following tutorials but it’s hard to say since everyone has their own learning curve and depending on the amount of time you spend coding, and learning.

I can also recommend checking your local library for books on C# for beginners. And don’t be shy to post problems you encounter in the Scripting forums or the Unity Answers board, I’ve noticed alot of the community members around here give plenty of support and after all, if you ask me, the best way to learn is to fail a bazillion of times. One just have to be stubborn and keep trying. :slight_smile:

I have been programming for twenty years and I still occasionally refer back to tutorials (along with documentation, code samples, etc). Modern programming, especially with frameworks like that for Mono/.NET, simply has far too many aspects to memorize them all.

Eventually you will memorize those aspects you use the most often but you will still need to read reference material and sometimes tutorials are the best form available. Especially as Unity has incomplete documentation in some spots.

Speaking of freely available books, I love recommending the following textbook.

http://www.robmiles.com/c-yellow-book/

2 Likes

Are you saying you never went to school and have lessons on how to speak/type English? No one can just “grasp” things without a tutor of some kind helping to explain it.

Are you learning C# or are you learning to program?

C# is simply a language. Once you know the fundamental elements of programming (and OOP), using C# is just a matter of syntax. The most important thing is to understand the underlying concepts.

You never completely how to program, it is a ongoing process just like trying to learning to play a instrument or speak a language.

Even people who have spent 20+ years on a language and api, still will reference the docs to see how things work.
A good practice while you are learning is, as you come accross information try and find a way to apply it to your own project. The information will stick in your head much better by using it than it would by reading about something or watching something.

Don’t think of a tutorial of one thing, but break it down to the many steps that were used to create that end product, and how each of these things works and interacts with the other.

Try learning C++ as your first programming language!!! It has a higher learning curve for most people. I learned it before, and then C# has become much easier due to my general programming knowledge.

The best, and only real way to learn a language for most people, is to dig and and use it. Wanna learn C# with Unity. Make some basic games, games that require a bit of coding. Don’t worry about the graphics. Just make some games. Pong is a good start, with some basic collision detection and response, and even some AI.

You will run into problems that you don’t know how to fix. Attempt to google things, as you can likely find solutions. You can also post things on the forums, but make sure you have tried google, and make sure you present exactly what you have already done, specifically any code you have written that is not working, or at the least a good question. Also, if you don’t know it yet, learn how to ask questions. There is a technique to it, that will get you better answers. It involves knowing how to describe your problem, as well as showing what you have done so far. You will far more likely get better answers if you ask good questions.

That is Terrible advice, would be best for him the learn the language that applies to his end goal, which is creating a game in unity where non c++ is needed at all. Not to mention no one really needs the added complexity of c++ when learning.
But as a counter it is way easier to learn 2nd language than it is to learn the first, but your first might as well be what is most directly applicable to what you want to do.

I apologize. I wasn’t very clear on that I was joking. C++ is not a good language to start with for most people(though I managed to do it). It was a sarcastic thing, trying to say “If you thought C# was hard…try C++”

1 Like

ah, yeah i have had many misunderstandings on the internet due to a dry sense of humour, sorry it happens.

1 Like

Forget about C# or C++ or whatever. If you are learning to program your first language should be speudocode. And your learning hardwares should be pen and paper.

1 Like

C# is a means of communicating what you want to happen in, in this case, Unity. Learning how to write stuff in C# is like any other language, knowing the specifics and quirks of the syntax. I’ve never experienced learning the syntax to have a big impact helping me understand how to use, again in this case, Unity.

Majority of learning syntax for scripting falls to learning how to write variables, functions, if-statements, for loops, and classes, in the specified language. They are like the sentence structure and grammar of the language. Everything else is when you develop your vocabulary in the language, but these few remain your basics.

Majority of learning Unity is sieving through the Documentation, API, Tutorials official or 3rd party, and forums like Unity forums, stack-overflow, and even reddit. All of this is to understand the workflow Unity wants you to use, and you can choose to go with it or fight it, both are viable options and both have its pros and cons.

Probably all examples of using C# you’ve seen has been in the context of using it in Unity, which is honestly a bad place to start learning C# if not impossible for some. Those tutorials are more about how things work in Unity than to teach you how to write in C#.

You are probably better off learning C# isolated from Unity than alongside Unity. A simple google search on learning C# led me to this wonderful site which seems promising:

It’s broken up topics into more of less the basics I mentioned (in their proper terms). It even has a simulated compiler in the site giving you an immediate environment to test your code.

1 Like