views:

1117

answers:

14

I have never developed a web page before. Now I am tasked with being the developer for our clubs website at Iowa State.

I was wondering where and how I should start learning how to build a webpage from scratch.

  • Which tools/technologies should I use?
  • Any books to read?
  • Websites to learn from?

*I am previously experienced in Java, with some C/C++ and Python.

+1  A: 

For an absolute beginner, I guess php is the way to go. Also, your clubs website will probably be hosted on one of those hosting sites - php/mysql will definitely be there, for other stuff, you might need to have access to the server.

Check the official php site (http://www.php.net) for more info.

Please state if you have any experience in programming as this can change everything.

EDIT: Ah, StackOverflow is wondrous! I can actually click on your name and find out that you allready know Java and some Python (at least). PHP should be a breaze for you!!!

Daren Thomas
+8  A: 

You can go a long way with HTML and CSS. If you don't need anything dynamic, then just stick with that.

The The Web Standards Curriculum can get you started.

EndangeredMassa
+12  A: 

Welcome :)

I'd suggest you try to start with just plain vanilla HTML. I'm sure you've see lots of websites, so getting a feel for the web model will serve you well. I'm sure you're aware of the view source option in the web browser, which will should you the source of web pages and is a good way to find out how things work.

Browsers are often pretty relaxed in their parsing, but one resource I can recommend is the w3c validator http://validator.w3.org/ which will give you an idea of whether your page conforms to the HTML standards.

Once you have a handle on HTML, you'll want to learn a bit about CSS (which allows you to change the look of web pages in a structured way) and JavaScript, which will allow you to change behaviour on the page.


Once you're comfortable with static web pages, you should have a good feel for how you might dynamically generate parts of the pages. There are a lot of different languages and frameworks which approach that problem in many different ways. PHP is pretty easy to get started with, and scales down to very small/simple sites very well. Python (Django) and Ruby (Rails) are both nice if you're into dynamic languages, and if you're more of a static typing person, there are many Java/C# options.

For a simple club site, you could probably start with something like Drupal which is a PHP content management system, and save yourself all the programming effort (at the cost of some flexibility).

Matt Sheppard
PHP is also free :)For Java web development use servlets and I guess by C# you were referring to ASP.NET which means you could also use Visual Basic (better to stick with C# 3.5 :P)
Partial
+3  A: 

Check out

http://sites.google.com

You can throw up a decent looking website rather quickly. After you have some content up, then

  1. Learn HTML and perhaps make some webpages on "your own" hosting (school servers, or something like NearlyFreeSpeech.net).
  2. If you still need custom functionality, check out PHP, Python, or Ruby.
Jared Updike
+1  A: 

This related question may also provide some helpful pointers.

Cheekysoft
+6  A: 

I would say the easiest simplest way to get started is using a content management system (CMS). The easiest one is WordPress however there are lots of others such as Joomla, Drupal (my personal favorite), etc

Using a CMS is good because it helps to get content up quickly and easily, but also allows you to browse the code and change it as you see fit. Its a really good sandbox to start in.

And the most important part is those are all free!

Mike Fielden
+3  A: 

If you're starting at the very basics of making web pages, I'd recommend reading Head First's HTML & CSS book. I'm a fan of this series in general, but I think that this book in particular is very good: lots of examples, straightforward explanation, and references to Buckaroo Banzai. I burned through it pretty recently & found it very helpful.

C Hogg
i really love that Head First Books!
bastianneu
+1  A: 

There are two major paths you can follow, the Microsoft path and the Open Source path. Either might be more appropriate depending on your situation. Personally, I prefer the Open Source path, because everything is free except hardware and your time. To get started with open source web development, I would recommend the following todo list (You may have already learned much of this, but I am starting from scratch):

  • Install linux on a virtual machine or on a real computer. (my favorite distro is Ubuntu)
  • Become basically familiar with the unix command line.
  • Install and configure Apache or XAMPP
  • Learn basic HTML
  • Learn CSS
  • Learn JavaScript
  • Learn PHP
  • Learn Databases, such as MySQL

There's a lot to learn, certainly. But at each step, you can do a lot more than you could before, so you only have to know a little bit to write simple web pages, and a little bit more to write more complex ones, etc.

Also, even though it's not directly related to web development, you'll save yourself a lot of headache if you keep the websites you develop in source control, such as subversion

Christian Oudard
A: 

I always suggest people do it something like this:
HTML
CSS
At this point you should be able to build basic sites.
When you comfortable with those move to:

JavaScript
PHP
AJAX
At this point you should be able to built the latest and greatest in websites. Then all thats left is Flash, Java, Silverlght, MVC, ECT.

Unkwntech
A: 

An alternative option could be to go with a wiki farm for wiki based sites.

The one that I have in mind is called wikidot.

The idea is that you build a website using wiki syntax. You can of course customise the layouts and colours etc. with your custom CSS.

The advantage of going this route is:

  • free hosting
  • you can use your own domain name
  • no need to worry about server and data maintenance, backups etc.
  • the site can be either public or private (only available to site members that you invite)
  • no need to learn, use web development tools and languages etc (can be a cons for some people)

From the social aspect of the site the biggest advantage is that you can allow some parts of your website, or if you wish all of it; to be edited by its members simply by using wiki syntax.

The main cons is that you will be limited to the functionality that the service provides.

The comprehensive list of services that provide this type of functionality can be found on wikipedia under Comparison of wiki farms

kristof
+1  A: 

Yes you should learn HTML/CSS, then try PHP/ASP, learn manuals about databases (MySQL..). You can find helpful information at PHP tutorial

A: 

When working with HTML, CSS and JavaScript, there is a few tools you should be familiar with, for inspecting the outcome in the browser. The most famous is probably Firebug, an add-on to Firefox. Other browsers have similar tools, Chrome has it's developer tools, Opera has Dragonfly, Safari has Developer Tools and IE8 has Developer Tools.
Which one is best is probably a matter of taste. It used to be Firebug, but now they all have pretty much the same functionality.

For Firefox there is at least two more plugins i recommend, Web Developer and YSlow

These tools lets you

  • inspect the DOM
  • Modify the DOM
  • See how CSS is applied to different elements
  • Modify CSS inline and see the result right away
  • Debug JavaScript
  • Execute arbitrary JavaScript
  • Inspect performance and find bottlenecks
  • Disable cache, clear cache, clear cookies etc.

and much more

rlovtang
A: 

One book I recommend all web developers is High Performance Web Sites by Steve Souders.
It's a short read, and gives great introduction to best practices when developing for the web.

rlovtang
A: 

For tutorials on most web related technologies, I find w3schools.com to be down to the point and easy to follow.

rlovtang