[Edit - I consider this post to be pretty out of date (don't start with PHP anymore!) but have not yet updated it. The one-line answer today would be to use a minimalist Ruby or Python framework (Bottle.py or Sinatra) to get started.
Say you know basic programming, probably through some Java or high school APs, but you've never written a line of PHP or had to deal with anything with Unix. Now you want to get into programming for the web. What should you read/do/etc? Provided is an early draft at a bare-minimum comprehensive guide.
1. How the Web/Web Servers work
- simplified, high-level overview http://www.quackit.com/web_servers/tutorial/how_web_servers_work.cfm
2. Front-end (HTML/CSS)
Update: W3Schools is pretty out of date. Let's use the Google tutorials instead.
- New Stuff: Dive into HTML5 http://diveintohtml5.org/ (just do the first couple of chapters, more if desired)
3. Back-end language
If you're just getting started and don't have a particular reason not to, use PHP. I'm writing this for some work that's going to be done in Rails, but PHP is probably a simpler starting language. I'll include links for both:
Ruby on Rails (Ruby is the Language, Rails is the Framework)
- Rails intro. Rails for zombies http://railsforzombies.org/ is the crazy/fun one, http://guides.rubyonrails.org/getting_started.html is the official one. From what I saw with Rails for Zombies, it seems pretty fun.
- Hosting: use http://www.heroku.com/ to host whatever you'll be working on.
PHP: The official PHP tutorials aren't half-bad, but there's a ton of crappy, outdated PHP stuff out there. Googling 'how do I do X' in PHP will typically result in terrible advice; if the site looks out of date, it's suggesting that you do it wrong. Use these as a reasonable starting point if you go with PHP:
You might not need to touch that much Linux (GNU/Linux, if you'd like) to get something done, but just in case, here are the bare essentials:
- Penn CS' unix tutorial: https://www.cis.upenn.edu/~cis1xx/Learn/Unix/Resources/UnixTutorial/
- Version Control - kind of a good idea. Use git: http://chronicle.com/blogs/profhacker/a-gentle-introduction-to-version-control/23064 Also get an account on Github.
- Editors: you'll want to learn emacs or vim. I'm familiar with vim - choose that one (arbitrarily). Use vimtutor to learn vim http://linuxcommand.org/man_pages/vimtutor1.html or just type in 'vimtutor'.
What am I missing? Are there better guides suitable for beginners that I haven't found?