
For Hackers: How long to learn .Net? - weebro
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
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...](http://www.amazon.com/Pro-2008-NET-Platform-
Fourth/dp/1590598849/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1202425361&sr=8-1)

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
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
> 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.

------
tx
<http://norvig.com/21-days.html>

------
mixmax
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
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
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
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.

