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?
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:<p><a href="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" rel="nofollow">http://www.amazon.com/Pro-2008-NET-Platform-Fourth/dp/159059...</a><p>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.<p>Before you take the leap to learn .NET, though, make sure your cofounder is on board. You'll need his/her help and support.
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.<p>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.<p>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.<p>Once you have some rudimentary knowledge about the very basics of development, THEN I would focus on learning C#.<p>It is a nice language, but there's a lot to learn - especially since the .Net stack is so large.
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.<p>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.<p>That's how it worked for me anyway.
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.
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.
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.