Fastest someone could learn C#?

Started by
7 comments, last by Saul 15 years, 8 months ago
How fast could someone who has never programmed before, learn C# enough to be able to use it effectively? Are we talking about weeks, months or years? (Assuming that person was dedicated and spending many hours everyday on it). Also, how long is the learning process in comparison to other programming languages such as C++? Thanks. :)
Advertisement
It took me about 3 months to learn C# and use it effectively, of course that was coming from some small prior programming experience in the VB languages (including VB.NET).

As for the learning curve, I will admit that it takes some getting used to, but C# is extremely easy to learn, and it is a massive language. I have been using it for nearly 3 years now and I still learn now things every day.

Plus, more and more things are moving to C#, C++ is still a prime language in the video game industry, but with things like XNA and SlimDX, C# is growing in popularity, especially among newer programmers.
MSN Contact: zachmeyer@movie-boards.com
Depends how logically minded the person is and the talents of their teacher.
Depends if they only want to learn the C# language, or also learn the .NET library.
Depends what 'effectively' means, which depends on what you want to use the language for.

I'm sure it's possible to pick up the language in an hour, but it's also possible that it could take a year.

The learning curve would be similar to C++, perhaps a little less steep. Plus C++'s curve probably takes longer to flatten out - i.e. C++ has more little tricks to it that take experience (mistakes) to learn.
Well, I don't know what you mean by "effectively", but if you find a good and interesting tutorial you can be making small apps, even graphical ones, in a few hours.

I think the fact that you can make windows apps so easily with C# is good for the beginners, since it immediately gives you the feeling that "hey, I can actually make something with this!". This is in contrast to C++ where you normally spend weeks or months learning the language itself and all of its quirks making text based programs that don't seem so interesting. (Don't get me wrong, I have nothing against console apps. It is just that many people have).

That said, even C# is a complicated language and you won't be making games with it before you master concepts such as object orientation. These are pretty much the same in every language though, so once you learn them you can use the same principles in other languages too.
Literally about as fast as the bird can fly east.

Compared to C++? Similarly. You may find no difference for the first year to few months or so. But as you progress your ability to harm yourself with C++ increases mainly because the language is 'unsafe'. That is it does not try to eliminate errors to occur that are not caught as exceptions. You will then find your progress to slowen vs a more safe language. As well, due to the ad hoc nature of its growth (e.g. the accidental turing equivalence of templates) you may find cases where its syntax is ambigious.

C++ was a good language for its time - bringing highbrow methods from the like of smalltalk and algol to a syntax familiar to C programmers. Not unlike what C# is doing - which now is taking from languages like ML and Haskell since parallelism is the new tough problems and they have properties that make this problem easier to tackle.

As computer architecture changes - with the introduction of heterogeneous (some in-order) many core CPUs the techniques of old simply wont hold anymore. Now the guarantee of safety is of increased importance and already large problems like dangling references are multiplied many-fold to be completely devastating to performance. Hence the once heralded ability for pointer and manual memory manipulation is becoming more of a liability and a detriment for performance.

Thus you may be better served to learn C# since there you will find it more easy to pick up more modern techniques that will make you more skilled than otherwise.
Provided you are a good programmer in another language it might take you between a month and a year, depending on a couple of things.

If you are a COBOL developer OO will be new to you.
If you are a C++/Java developer you will feel more at home.

Oh, and don't forget: knowing a language doesn't make you a good programmer
For most people, C# is much easier to use to learn programming than C++.

I was unemployed when I learned C# (2.0) so had many hours a day to spend on it. It took about 2 weeks to run through the language and toy around with the different features, and another 3 months or so to learn to 'write in C#' rather than in a style more suited for other languages.

But I'd also had about 7 years of experience with C, C++, perl, php, pascal to build off of. And that experience really helps with program design more than anything. It's hard to use a language 'effectively' when you can't structure the program properly. And there's few ways to speed that learning curve up. Experience is the best teacher.

So take that as you will. It'll be a non-trivial amount of time, especially since there's so many hours in a day (most) people can devote to a thing without some time to re-coup the motivation and focus to learn effectively.

Why do you ask? It might help us provide a more specific answer.
Learned C# in a weekend. But then again I'm a salty C++ pirate.

The language is a piece of cake though, as far as languages go [I'd argue it's easier than python]
C# is easier than Python? Ouch...

I've known Python for about... ohh, 18months now? And I could probably write in it with my eyes closed. I really wanna try out C#... :)

This topic is closed to new replies.

Advertisement