Skip to content

Comment on For Hackers: How long to learn .Net?parent

Comments

I came into C# by way of C/C++, so I had a slight advantage. That being said, I found the .NET base class library very easy to pick up because of IntelliSense in Visual Studio. You don't really need to know the entire BCL to program in C#, though. I've used it for years and I still don't know every single piece. (That's another reason why I said to avoid the MS certification materials like the plague; they just teach the BCL and not really the language fundamentals.)

I think C# teaches the fundamentals of programming pretty readily -- variables, types, functions, loops, objects, etc. Because dynamic languages are vastly more expressive, those concepts aren't as readily obvious. C# also masks some of the more difficult concepts from C-family languages, like pointers and memory allocation, meaning you can get your app running without saying "what the hell is a segmentation fault?" :)

Because the OP said he/she was working with a .NET/Java programmer, and asking about .NET, I naturally inferred that the project was written in .NET. I think it's even MORE difficult to learn a language (say Python) and then try to translate the abstract concepts into .NET-speak. Experienced programmers can hop between languages, but I recall trying to do that with GW-BASIC and C when I knew GW-BASIC and was learning C, and it was a royal pain.

(That may have something to do with the level of functionality available in GW-BASIC vs. C, but I digress... :)

Generally speaking, though, I would suggest Python as a good language to learn when starting out. I wouldn't, on the other hand, suggest Ruby as a language for people who haven't programmed before. When you consider the basic language features you need to learn in order to grasp the language, C# is much simpler than Ruby.

Before you flame me to a crisp, I'm not saying C# or Python are BETTER than Ruby. Ruby is an amazing tool once you grasp its complexities (and it's my new favorite language). I've got to think it'd be difficult for a newcomer to pick up things like blocks, dynamic dispatch, mutable types, hash parameters without braces, etc.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.