tags:

views:

144

answers:

6

I'm started to learn C# and .NET framework in this month.

My question is pretty simple: can someone master C# and the .NET framework to a point that there's nothing new to learn?

Please, post how much time have you been programming in C# and .NET if you consider yourself at this point. Once I read an article that entitled: teach yourself to program in 10 years! Would it take that amout of time to master C#?

Thanks

+4  A: 

If you want to be a successful programmer, you should immediately rid yourself of the idea of "learning everything." Part of the joy of programming is understanding that new problem domains require new ways of thinking about problems - there's always more to learn.

Even if you were to learn the entire Framework, every method and property of every class (which you'd be unlikely to have a need to do), there's always opportunities for learning new ways to apply or use specific classes.

Reed Copsey
Learning the complete language is a thing (quite a waste of time), but learn how to program a software is another.
Gabriel Mongeon
+2  A: 

As long as C# is being developed as a language there will be something new to learn. That said, having been a professional developer for 15 years, C# took me a weekend to learn the syntax and another month to really nail the accepted style/idioms. Historically, this has always been the case for me.

plinth
@plinth: So, after 15 years developing you don't know everything about C#?
RHaguiuda
Hm, but how often do you find yourself reading an article or SO questions and thinking "Hey, that's cool! I didn't know you could do that!"
Duracell
RH: C# didn't even exist 15 years ago. He meant programming in general. C# is just a language and .net is just a framework. Programming is more about solving problems than trying to learn a specific language/framework. "Right tool for the right job" comes to my mind. I do know c# pretty well, but there are cases where it's better to use other languages.
Femaref
+1  A: 

Knowing everything is not possible, in both programming, and life in general.

If you ever stop improving, it's not because you know everything there is to know - in fact, it's quite the opposite.

"The wise man is one who knows he is a fool."

Anon.
+1  A: 

No. People will constantly invent new ways of using the language and the framework. So even if you learn everything that is to know right now, there will be new things to learn tomorrow.

Regarding the time to learn to program, ten years seems reasonable. I have been using C# for about five years and feel that I know most of it, but I started off with already knowing plenty of other languages.

Guffa
+2  A: 

Yes

Ty
+1 - LOL! Great link.
TrueWill
A: 

Well, two ways to think about it.

First, does the language introduce new ideas, or simply a new syntax? In C# for example, LINQ or extension methods might be a new idea for you.

As a personal example, I might invest in learning Ruby or Haskell, because they might give me new things to think about. I've never bothered with PHP, because I see no promise of new ideas (just another syntax).

Second, learning a language is really about learning the smartest ways to do things. You can learn the syntax in a few days, but exploring patterns and frameworks (like, say, MVC with a custom view engine) can go on indefinitely.

Matt Sherman