Settings

Theme

For Hackers: How long to learn .Net?

4 points by weebro 18 years ago · 9 comments · 1 min read


I'm a non programmer with no coding knowledge who is working with a .Net/Java programmer of 9 yrs on a startup. I'm keen to be able to help out, but expect that would take years. At the very least, I think it will be useful to understand how difficult certain things are and what is involved in tasks. What is the best way forward for me to learn (any resources that help speed the process up and make it interesting are welcome) and how long would it take?

nkohari 18 years ago

I write C# professionally in my "day job". It's not a bad language to learn if you're just starting out with programming. It's not something that you'll pick up overnight, but if your cofounder is interested in mentoring you, that's the best way to learn. DO NOT under any circumstances bother with any Microsoft certification course training materials. They're utter garbage. I learned from Troelsen's Pro C# and the .NET Platform:

http://www.amazon.com/Pro-2008-NET-Platform-Fourth/dp/159059...

Then again, I was coming from a programming background, so YMMV. I would probably try going to the bookstore and flipping through some of the .NET books, and deciding which one feels like it's a good fit.

Before you take the leap to learn .NET, though, make sure your cofounder is on board. You'll need his/her help and support.

icey 18 years ago

I have to disagree with nkohari a little bit about C# being a good language to learn if you're just getting started out with programming. C# is a very big language and it may be hard to fit into your head without at least a little programming background.

If you're more interested in just getting a view into the programmer's world and have a feel for "difficult" vs. "impossible", I would recommend starting to dabble with a smaller language first. Something like Python or Ruby would be an excellent place to start.

You don't need to be a "programmer" in either thing to start grasping concepts, but they are small enough that you can tinker around to get a feel for things.

Once you have some rudimentary knowledge about the very basics of development, THEN I would focus on learning C#.

It is a nice language, but there's a lot to learn - especially since the .Net stack is so large.

  • newton_dave 18 years ago

    > I would recommend starting to dabble with a smaller language first. Something like Python or Ruby would be an excellent place to start.

    While I'd also recommend starting with something other than C#, I'd be hesitant about using the phrase "smaller language".

    Good Ruby or Python is a deeper subject than C# (IMO); I agree that it's easier to get started in either of these, but becoming proficient in the language itself may actually be more difficult.

    As you say, the .NET ecosystem, like Java's, is large and many-headed (I'd argue Java is even worse) and using it efficiently can be a steep climb.

  • nkohari 18 years ago

    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.

tx 18 years ago

http://norvig.com/21-days.html

mixmax 18 years ago

i'm pretty much in the same situation as you - just two months ahead. I found that the best way to learn is to find a simple project that you would like to do and do it. I am doing a web based project management site.

That way you will learn as you go, and have the joy of seeing something that works, and that you have built yourself. It will probably be buggy as hell, and sometimes you will want to tear your head off. But when you get it working it's great. And before you know it you have grasped the basics.

That's how it worked for me anyway.

DaniFong 18 years ago

The problems on topcoder are really great, because the time pressure really forces something to stick, and you also get access to sources of solutions from top notch programmers.

DarrenStuart 18 years ago

if this is asp.net then learn html and mark up the designs. That will free him up more than having to work with your code. I love it when working on a project and someone hands me great xhtml and css and I don't have to think about that side of things.

sarvesh 18 years ago

C# will be a little difficult if you don't have any programming background but it isn't impossible. Although books will help, you will learn a lot from some other programmers. This is actually true for any language. The easy part of learning the language is the syntax but the using it effectively is gonna be harder. Looking at others code and understanding it will really help.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection