tags:

views:

362

answers:

10

Would you recommend:

  1. Taking an online course? If so, any recs?
  2. Reading books? If so, again any recs?
  3. Anything else?

I'm 31 years old and have a great career so going back to school full-time isn't an option...but I would love to start learning how to program.

+6  A: 

hi there, you might want to refer to this previous discussion on good language to learn for web development:

what-is-the-best-programming-language-for-web-development-and-why

and

what-language-is-best-for-a-beginner-to-learn

easiest-language-to-start-with

Or to save you some reading time :P, you might want to look into Ruby as it's easy to learn and afterward you can pick up on ruby on rails, for web development.

melaos
+1  A: 

I recommend just writing an app. Dig into one of the Ruby on Rails tutorials or a PHP tutorials... anything. Figure out some simple app to write and make it happen through sheer will. My first application was a blog. I created the security system and the tools for adding, editing, and deleting posts.

Beyond that, there's a wealth of information available for free online, but it will require you to figure out what platform you want to develop on (Ruby on Rails, PHP, Django, ASP.NET).

commondream
+4  A: 

Just go out there and start programming.

The best way to learn is by having a goal in mind and solving it. Think of a neat little program you'd like to put together and try to figure out what you would need to learn to make it happen. There are plenty of online tutorials which can help you get started with a new programming language in a matter of minutes.

Here are a couple to get you started:

Max
A: 

I found the book Head First C# was amazingly easy to get and still learn a lot of object-oriented design principles and of course a useful language - very hands on. Sure, it's not about web applications but having that foundation moving to ASP.NET is definitely easier and feels somewhat more sound than hacking into the ASP.NET model right away.

But then again, there's hundred of other languages and frameworks that might be more fun to start off with, like Ruby on Rails or Python and CGI. Most of the time I think going through tutorials will get you pretty far, fast, as long as you have a basic understanding of computers and math. Build something, throw yourself at the thing basically. Select something that sounds easy to get help with, like if you know a programmer that master certain languages and web frameworks.

Oskar Duveborn
A: 

When initially learning I pick up a lot more by watching someone do it. Accordingly, I suggest the following video tutorials.

Free: http://www.asp.net/learn/videos/ For a fee but well worth it: http://www.learnvisualstudio.net/

Obviously, my answer is slanted towards asp.net but it is one of the more popular languages for web development.

I hope this helps.

Craig McKeachie
A: 

If you mean a web page, then look at the other answers.

If you mean a true web application, I recommend Google Web Toolkit. http://code.google.com/webtoolkit/

Bill
A: 

If you already got a great career , why you have to move to web apps development? unless its your interest/likness case. Because this market is already overcrowded .

You can proceed it with first (I think) opting for a language (in demand or whatever), further on read tutorials. Try to search for that specific language project.

A: 

Depending on where you are ultimately going... php asp ruby etc are great if you just want to do simple stuff quickly

If you want to get rocket fast server apps, you will need a compiled execuatable (not an interpreted script) using a language like C. I personally think it makes sense to use ONE language for developing client and Server side apps so that code may be simply re-used. On the server side this usually involves utilizing the excellent CGI/FastCGI modules available for most servers (IIS, apache, httpd, abyss etc)

If you like speed, avoid ,NET despite the promise of monster pre-written libraries. In my not so humble opinion, no user in their right mind should have to download 120MB of "run time modules" to do anything.

Mike Trader
You don't need the .NET runtime to view ASP.NET pages. As far as your browser is concerned it's all just Javascript and XHTML.
Dana Robinson
A: 

To do web programming from A-Z you have to have 3 overlapping but distinct fields of understanding:

  1. HTML & CSS (from programming perspective: mostly how html pages are structured, no need for learning fancy design tricks, half of which are anyway bad, and are a field of specialization by themselves)
  2. understanding of server/client technologies (as opposed to understanding how, let's say, normal desktop applications like MS Office work)
  3. a programming language knowledge - for purposes of learning I would suggest Python or PHP - from my own experience these allow to sooner start concentrating on (1) and (2). Java is a bit "heavy" on how to set it up and work, I'd say. Don't know about others. It may happen, regardless of language you pick, that later on you decide to switch to another.

Your particular choice of learning should depend on the way you learn best, actually, so I would say stating that a book or videolecture is going to be best is kind of wrong - there exist plenty of materials either way.

A book, obviously, can go more in-depth; the only recommendation I would suggest is that at some point (for all 3 fields) you need something that explains the theory behind - the "why", not only "how" - which is something starting level books frequently don't do.

By the way, there is a good chance you read one book that shows an example of "doing X this way", and later on pick another, which explains why doing it "that way" was horribly wrong and a security risk (lots of PHP programming books come to mind).

However, certain hands-on and peeking into existing web applications would be neccessary in any case, in the programming language you choose.

It is hard to say in which order you have to take the fields, but I think the order I stated them could work very well:

-- as you learn (1) you can create your own static pages and link them together, embed images, learn about meta-information and stylesheets, what makes a web page tick.

-- for (2) at this point there should only be so much information so that you understand the concepts (because you can have (static) web pages without client/server just dozing on your hard drive, but you can rarely have web development without client/server).

-- and then you try to learn (3) and make your static web pages dynamic (with embedded code), and pick more about (2) on the way -- the how and whys.

After that there are still plenty of things to advance to: client-side programming (with Javascript) for better user experience, using MVC programming and/or templating systems to reduce repetitive code and ease workload. You will have an intermediate understanding, however, of "how-stuff-works"(tm).

For real web programming you will also very probably need some database understanding: that's the 4th field of knowledge, and a seperate one at that. You will possibly pick up some as you learn (2) and (3) and then on you probably should learn more in-depth - mostly to know what stuff to avoid.

Caveat. The real hurdle of (web and other) programming is that you can easily make stuff that works, but is either clunky and hard to maintain, or a security risk -- and for web apps on Internet, security risks multiply by the inherent vulnerabilities of the client/server engines themselves (which you use to build your web apps). So at some point after learning basics, you would be well advised to learn, which of the things you have learned you should unlearn again and do differently.

Gnudiff
A: 

I recommend you to start with .NET because of increasing market share and popularity in Web Apps. Also it allows you to choose a language such C# or VB.NET. So you can choose the one you like.

Finally best way to start :

  • I highly recommend learnvisualstudio.com . It's a great website if you are beginner, othwerwise can be waste of money.
  • Get a good book about the subject (if it's .net get ASP.NET start book)
  • Do something real, It's good for CV, it's great for learning
  • Start reading blogs (but assuming you found this website you already doing this)
dr. evil