tags:

views:

380

answers:

19

I frequently have people ask me how they can get into programming. Rather than say, "Go back to school for 4 years", I would like to be able to point them to a site that can take them from nothing to semi-decent (depending on the amount of effort they are willing to put into it).

I would prefer it to focus on C# (or at least .net) as that is what I know (so I can answer questions).

Are there any free sites like that?

A: 

While I don't see any real need to go back to school for it, I do think you just about need at least a few good books to learn programming. At least IME, web sites can be a valuable supplement, especially for getting help when you get stuck, but I don't know of any web site that can really do a decent job as the primary resource for learning to program.

As to which sites to use for that supplementary role, I don't know of any that are better than what you've already found.

Jerry Coffin
+6  A: 
  • W3Schools is a good resource for PHP and ASP.NET
  • ASP.NET has some good tutorials on .NET
Mike Wills
+3  A: 

If you're looking for web development ASP.Net is a good starting point with lots of examples and tutorials.

Also c-sharpcorner is a great resource with example code in many areas, best practice, algorithms and framework in general.

Mikael Svenson
+6  A: 

StackOverflow.com vOv

Seriously. Tutorials are ok but generally will only expose you to a narrow and controlled set of concerns. Really to get decent they need to be trying to do small projects on their own and coming up with specific questions, and this is the best site to have them answered.

kekekela
Probably a more complete answer is to get an development environment (C# Express is a free, easy way to get started) and pick a project. As you have questions, Google them first (the vast majority of entry level questions have already been answered here and on other forums). After you've thought about it and searched, ask it here!
RQDQ
This seems crazy to me, it'd be like trying to learn a language by deciding what book you want to write and buying a dictionary (yeah, you could do it, but it'd be painful). By "get into" I'm assuming they have no programming experience at all.
Dan Williams
Haha, you're criticizing my answer when yours was "lol learn javascript"? Anyway, my answer is how I learned (except substitute old-school mailing lists for SO). I also think the dictionary comparison is very weak. The analog to dictionary would be giving them a copy of reflector. Even a complete beginner shouldn't take to long to find something that they have a question about and can articulate. They can then come here and get a specific answer to their question. This customized feedback is very different than what a dictionary offers.
kekekela
Imo, the correct analog for SO isn't a dictionary, its a "Choose Your Own Adventure". :)
kekekela
Sorry, I didn't mean to offend (obviously I did). It's just my opinion. You're right it's not the best comparison, I just think if you're starting from nothing you should start with some kind of tutorial or guide. Sometimes experienced developers forget how difficult it is to be a newbie.
Dan Williams
No problem, I'm a hyper defensive internet asshole.
kekekela
+3  A: 

Visual C# Developer Center (free from the source)

Take a look at Learning C# by Topic:

  • New to Development
  • Programming Fundamentals
  • Algorithms and Data Structures
  • Application Development
  • Class Library Development
  • Debugger and Debugging
  • Language
  • Tools
  • LINQ
Leniel Macaferi
I have found their documentation confusing at times. It probably isn't the best resource for a beginner.
Mike Wills
+1  A: 

I usually recommend that people start with a basic course/book on programming logic. If they don't know how to loop,if,etc then the language will seem overwhelming.

John M
+1  A: 

I used to learn by code examples (once you read some theory, of course). I don't know whether there are good code examples for C# like FreeBSD's /usr/src for system programming in C.

spektom
+1 for "learning by example" though I wouldn't recommend C as a first language today.
finnw
A: 

The way I figure it, if anyone sits down and reads through the MSDN (no, not the tutorials, but the actual language references) beginning to end, they'll be able to program somewhat by the end of it. I'd suggest that.

Raise your hand if you don't read at least one or two pages in the MSDN library a day. That's what I thought.

Jimmy Hoffa
I almost downvoted this. imho, reading MSDN straight through like a book is an absolutely terrible way to learn programming.
qstarin
Agreed - tutorials are much better at introducing concepts. It's the fundamental concepts that are important, not the member level documentation for specific classes.
RQDQ
Guess it depends on your learning style, I get far more from reading references and using the elements per their usage instructions, than following tutorials. Tutorials always seem to lose me.
Jimmy Hoffa
I raised my hand as I don't deal with any Microsoft languages currently.
HalfBrian
+1  A: 

Try this book: http://www.htdp.org/

Paul Nathan
A: 

Many years ago, I started with K&R's The C Programming Language, doing each example problem as I went. It took me about a week. Then I moved on to a VB6 book written for use a textbox for a Programming 101 course. (Wish I could tell you the name but I lent it out and never got it back.) After that, I was working full-time as an entry-level coder.

So I would say that the best thing is to find a resource, either a book (my preference) or a site, that is organized as intro-level material, starts at the very beginning and has exercises to force one to apply what one is learning, starting with the basics and building incrementally. I don't know of any sites that seem good for this, which is what your question really is asking for, but I'd say there are some very good books out there.

For C#, I am partial to Mark Michaelis's Essential C# book.

Matt
A: 

In college I changed my major to Computer Science because friends were talking about it how interesting it is.

1) Goto Amazon and pick a C# book used for less than 10-15 dollars. 2) After understanding your basic OOP concepts and syntax of C#, pick a small project you want to accomplish. (e.g. I did a small console program to determine World of Warcraft statistics, and yes I know this is sad :P) 3) Use google as much as needed to find solutions to your answers (stackoverflow, Csharpcorner, expertsexchange, and msdn if you're desperate) 4) Fall in love with programming :)

MSDN is your last resort? MSDN > ExpertExchange 24/7
ShaunLMason
+5  A: 

Watch MIT's introduction to computer science and programming course.

This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python™ programming language.

Edit: This course has helped thousands of students take their first steps in programming. Python will help avoid the syntactical garbage seen in other languages and focus on real programming concepts. The linked course has assignments and exams. I highly suggest going through everything as if you are taking a real class.

advait
A: 

As for learning .Net from scratch? a website is not going to do this for anyone, you need several good books to get a simple platform to start learning .Net.

As for websites i really enjoy http://dotnetshoutout.com/ They are only a blog aggregation but i learn 75% of my NEW knowledge from blogs anyways...real people with real information and real use cases.

Matthew McDonald
A: 

When I started with .NET, I spent some time on Beginner Developer Learning Center . It should give you good overview of the environment and some basics of the language.

Ondrej Slinták
A: 

About.com has some really good tutorials in their computer section covering a number of languages and concepts.

Tom
A: 

I learned much more from wikipedia than I did from school. (This goes for all subjects)

Stranger
Your school must have been terrible.
Norman Ramsey
A: 

When I started learning C# I found the tutorials at C# Station useful in getting enough knowledge to start my first few own projects.

Once you got a grasp of the basics, another suggestion is to look at some projects from CodeProject to get a feeling of the structure of larger applications.

Johan Eriksson
A: 

My favorite introduction is Introduction to Computer Science using Java by Bradley Kjell. Obviously it's using Java not C#, but it will help in laying a solid foundation on programming in general.

qgi