views:

989

answers:

20

I really want to learn how to program. A friend suggested I buy vs 2005 or a newer version if I'm serious about it. Is there a cheaper route? I would like to start with c#.

+47  A: 

Visual Studio Express is available for free from MS and is perfect for getting started.

Dan Bryant
From 0 to reputation cap in 8 minutes!
badp
It's strange, isn't it? A detailed answer on an obscure topic gets a handful of votes and a simple answer that would only take a moment of searching to discover is voted up in moments.
Dan Bryant
@Dan: That's a "bikeshed problem" for ya! ;) http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality
gnovice
This rep system is flawed
Josh Stodola
@Josh Stodola: +1, yes it is!
just somebody
@Dan: This answer is easy to confirm to be correct - also a question like this draws way more attention than the obscure ones. --- The rep system is great at encouraging answers. Or are you trying to use it for somethign different - such as measuring programmers?
peterchen
I don't think there's necessarily something wrong with the system; it's just interesting to me to see the way the dynamics play out
Dan Bryant
Id love to be the first on a question like this! Congrats.
Farstucker
Man, I should start hanging around on SO to get more e-points, this is just my kind of question.
Mark C
+13  A: 

You can start with visual studio express - it is free

Tim
+4  A: 

Visual Studio 2005 is too old for you. Start learning on 2010 and .NET 4. And get Express version from this location http://www.microsoft.com/express/

Svisstack
+7  A: 

If you're beginning programming, an express edition of Visual Studio should be far enough to discover C#.

You can find the latest Express editions here.

Thibault Falise
+1  A: 

As others have said, Visual Studio Express edition is free, and there are newer versions than 2005. 2010 should be out soon (if it's not already available).

FrustratedWithFormsDesigner
+5  A: 

Or if you want to go multi-platform, try MonoDevelop. Not as advanced as Visual Studio (yet), but certainly enough to learn to program.

Maurits Rijk
+2  A: 

Answer taken from here

You can download the free Visual Studio Express Edition, and also access to the MSDN library is free. And there is also Sql Server Express edition which is also free.

Add to this all the great free online resources, like stackoverflow, asp.net, codeproject, blogs etc. and you are ready to go.

SwDevMan81
+6  A: 

You could also download the latest Eclipse IDE and try some Java.

Jay
+2  A: 

If you want to start programming with C#, C++, Visual Basic.NET, F# and pals, VS Express is the way to go obviously.

If what you need, however, is focusing on basic programming concepts like conditional execution, iteration and recursion, they might be overkill. You should instead try simpler languages like C or Python.

I'm not aware of what the definitive IDE for C and Python would be, but I make do with Eclipse for the former and a simple text editor with generic completion and the support of iPython for the latter.

badp
C is a simpler language? Maybe more basic, but not simpler to learn, use, or debug, eh?
bdukes
Definitely not -- I like Python more than C personally -- but for `if..then..else`, `for`, `while` and recursion constructs all these languages really look alike. (Except F#.) It's comprehension of these constructs that makes the difference, not just knowing your way around with intellisense.
badp
C is relevant only because everyone should be able to understand pointer arithmetic(same way I think everyone should learn assembly) and C++ is insane to teach as a first language.
Earlz
I only mentioned C++ for completeness :)
badp
A: 

As others said: Visual Studio Express is great to start with and best of all it's completely free.

If you have previous experience with programming, c# is reasonably easy to learn. If you're completely new to programming you might find Visual Basic a lot easier. It does not matter which language you choose, as long as you're comfortable with it.

Finally, a good beginners book can help tremendously to get you started. The advantage of a book is that it takes you step by step through the learning process. This way you don't have to look all over the internet to find all kinds of unrelated samples.

Have fun!

Jeroen Landheer
+6  A: 

If you've never done any programming before then I'd recommend not jumping straight into Visual Studio and a .net language. The amount of stuff you'll have to learn just to get to the point where you can start writing code is just too great.

Start with a simple language like Python. Edit your code in notepad and run it in a command window. Write some simple programs to generate output and read input from the keyboard. Build-up slowly.

When you'be built-up a bit of knowledge, try taking the same approach with c# or vb.net. Then explore Visual Studio, and play with winforms or wpf.

Good luck!

Andy Johnson
You can get a very simple program running in Visual Studio in about 10 minutes. The help it gives with syntax errors etc. will be helpful too.
ChrisF
@ChrisF To do that you need to deal with a lot of concepts: projects, solutions, namespaces, classes, using directives, and the class library! This might be a bit much for a beginner.
Andy Johnson
+1 Python is a great beginner language (even though I like Ruby more :P )
Earlz
Hard to start writing code? New project, F5, you are running your very own program. Goto the main function and start writing code. A 2 minute tutorial can show you the basics of using visual studio (I know people who are very skilled programmers, have only every used Visual Studio and barely know more than the basics of it, just don't ask them to tweak compiler settings or do anything to projects beyond adding files and modifying compiler defines)
Grant Peters
+9  A: 

My path (so far):

From no programming I picked up Java for Dummies, then progressed to Head First Java. I found I needed the Dummies book, and found that the Head First book helped me both understand some key concepts (such as inheritance and other OO fun) and gave great examples.

However the problem with an OO language can be that you need to understand a lot of OO concepts also. I jumped straight into Java, but in hindsight maybe I should have started with Python or C, get the hang of datastructures/loops etc. first THEN progress to OO.

I personally recommend using an IDE some books don't but unless you are really good at picking up typos, import statements etc. I found using just notepad only annoyed me.

If you have a support network of IRL friends that use a certain language you might consider learning those languages, as with the Web there are a lot of great tutorials but sometimes you can get information overload, and you have to wait for people to respond on forums.

C# is good for jobs where I live, so is Java and C++. After you get the hang of your first language, you can look around and learn new things based on area where you want to work in/program for eg Web, Business Apps. etc. Unless you do it just for a hobby. If not, consider what the market wants.

Hope this helps ^_^

Selenia
+1 OOP is great, but it's not nearly as essential as understanding things like recursion and proper structured programming(like using as few global/class variables as possible)
Earlz
+3  A: 

I agree with Jay: I don't think there's any reason to purchase development tools when there are widely available free tools/languages.

Along with his java suggestion I would say checkout out Ruby!

Personally I think ruby is the easiest to start with out of the box. You don't have to worry about compilers or IDE's. Any text editor works and irb (Interactive Ruby) is a godsend for learning.

I do find that it's a bit nicer to have a good console (ie. on Linux/Unix and OSX) in order to really see the benefits of IRB, but I believe there's something similar on windows??

Best part is, it's free, and if you're looking to build webapps, Rails is probably the easiest framework you can find for building dynamic webapps.

brad
A: 

For C++, use Dev-C++ from Bloodshed Software; super clean and easy to use. http://www.brothersoft.com/dev-c++-download-65296.html

For Python, just use the IDE they provide. Super clean and useful. http://www.python.org/download/

Befall
-1 for Dev-C++ that thing caused me so much pain and it's so out of date now.
Earlz
I've never had any problems, and as far as "out of date" goes, it's fully capable of big projects; and, this IS for a beginning programmer. He doesn't need complex. This is a simple interface, perfect for him.
Befall
+7  A: 

Quick tip:

Simply buying the Visual Studio package and trying to use it might be an exercise in causing your brain to explode. At least, it was when I started.

I'd find a friend who is good at teaching to help you get started, or take a programming 101 class at a local college (community or technical colleges are perfect for this sort of thing). Or get a good tutorial from the Internet or a book. That's really the best way to get going, as they can help point you in a good direction. The Visual Studio software is very complicated if you aren't familiar with programming concepts coming in.

Also, find something cool to write, that solve problems you have:

  • Program that computes paintball trajectory
  • D&D die-roll generator, when you forget your dice
  • Tools to control your iPod
  • etc
sheepsimulator
A: 

If you don't want to go VS Express there is also SharpDevelop which is Open Source and very nice. But I agree with what others have said in that you may want to check your starting learning language. Certain languages work well for doing certain types of programming. I always thought Java was a good language to start with because there are MANY tools that support it and lots of tutorials out there if you get stuck somewhere.

bmucklow
A: 

I would recommend RapidQ. It is a free semi-object-oriented BASIC programming language for Windows and Linux. IMHO, it is one of the easiest languages to learn and use (easier than VB for example). It comes with compiler, IDE and graphical GUI designer. Howevere, it is not too much different from VB.

Unfortunately RapidQ is not developed any more, but there is an active user community at Yahoo Groups. From the files section of the group, you can download the compiler/IDE and several extensions and applicatlion examples.

PauliL
A: 

Objective C isn't particularly easy as a first language, but it's not that difficult either and it does have the advantage that programming for iPhone at the moment is "sexy" and "fun" and potentially commercially useful for you. Plus there are a bunch of educational videos on iTunes U (search for "Stanford" in iTunes).

XCode for iPhone development is free to download once you register at developer.apple.com

h4xxr
A: 

Buying VS 2005 is a terrible idea IMHO. Learn using free tools. Intellij IDEA community edition is amazing... and free.

It all depends where you want to start: Java, Python, Ruby, C, C++, C#... Just dive in and have fun with it.

Alex Baranosky
A: 

I too have just started to learn programming, Microsoft release an express edition of there Visual Studio suite's. Would be great to bounce ideas back and forth as we stumble across problems to. You can mail me at [email protected]

Stephen Murby