No. of Recommendations: 14
I've read everyone's response and I have to wonder: do you REALLY recommend this path (learn the code) for the original poster's basis, that being a "Total Beginner"?

Good point, and a good way to get people back on message :-)

As others have said, it would depend on their reasons for wanting to create a web page. If it were for anything other than a personal or temporary site, I would definitely recommend learning from the ground up. I'd say this because there is much more value in learning a technology rather than a tool. I think of it this way: if someone asked a professional writer how to learn to write, they probably wouldn't tell them to learn how to use Word. They'd tell them to start by understanding grammer and ensuring that they had a well-rounded vocabulary. Beyond that, it would depend on what kind of writing they wanted to do. Journalism? Learn about the inverted pyramid and WWWWWH; Fiction? Learn plot development and character development. Etc. Unless, of course, they just wanted an easy way to write a letter to grandma. In that case, fire up word, make your fonts large, and type away :-)

I think that rather than learning *faster* with a WYSIWYG tool, people think they see results faster. That is, if you learn to code by hand, you probably won't add tables and images to a document on your first coding session. You probably won't get to roll-overs, forms, or javascript for a few days, or maybe weeks. If you use a WYSIWYG tool, on the other hand, you can get all of that and more by just playing with the different buttons in the UI. So, it seems that you're learning faster, when in fact you're just seeing bells and whistles faster. It may well be that you haven't learned much more than the user interface for tool.

Here's how I would teach a newbie if they wanted to learn skills that would have value to them long term:

1. Write a first page. It should consist only of structural tags (<html>,<head>,<title>,<body>), paragraphs, headers (<Hx>), structural formating (<em>, <strong>), and simple links. The goal would be understanding what markup is and understanding the basic structure of an HTML page.

2. Next, I would have them learn the other presentation-specific tags like lists, "pre", etc.

3. Next, they'd learn about tables and how to use them to present tabular data. We would talk about using tables for layout, but that wouldn't be the focus. The most important thing about learning tables is making sure that things are properly nested, etc. Tables are arguably the most complex markup element in HTML and understanding the structure of them can lead to knowledge that applies in many other places.

4. Next, I'd have them learn about images. I'd teach them how to include images and how to align images. Part of this discussion would be an understanding of relative vs. absolute paths. I'd then have them learn how to create images, when to use JPEGs, when to use GIFs, how to make your images as small as possible, and how to create transparent backgrounds. I'd also make sure that they understand hex notation for colors.

5. Next, I'd teach them about forms. They'd understand all of the form elements. They'd understand the difference between POST and GET. They'd understand the importance of name-value pairs. They'd understand what a querystring is and how things are encoded in the querystring. This would be a big topic that would probably take quite a bit of time. Note, this is the first time that they would encounter anything that is remotely "programming-like."

6. Next, I would have them learn <div> and <span> tags. I'd make sure that they understand the difference between block elements and inline elements. I'd have them make a list of which HTML elements are generally rendered as block elements and which are rendered as inline.

7. Next, they'd learn how to use CSS to influence text properties like font and color. They'd learn how to define classes and add classes to <div>, <span>, and other elements. They'd learn which browsers are generally CSS compliant and which aren't. They'd learn the <link> tag and the <style> tag. They'd learn and understand inheritance.

8. Next, they'd learn about box properties and other CSS properties.

9. Next, they'd learn how to use tables for layout. Even with CSS positioning, etc. I think this will be an important thing to know for quite awhile. The big goal would be achieving a desired layout with the minimum amount of table markup.

So, in 9 basic steps, TB would have a pretty deep understanding of HTML. With that knowledge, I'd have them understand the difference between client-side programming and server-side programming. Then, I'd have them decide if they wanted to learn Javascript on the client-side or a server-side scripting language (ASP, PHP, perl), or neither. Depending on their answer they'd take one of two paths. Once they "finished" one path, they'd take the other :-)

Here's a quick outline of those two paths:

Client-side path:
1. Learn the basics of JavaScript: variables, if/then/else logic, loops.
2. Learn the basic built-in objects: forms, document object, window object, etc.
3. Learn about events and how to use them for useful things like form validation, etc.
4. Learn the DOM.
5. Learn how to combine Javascript and CSS for DHTML effects.
6. I'm sure there's more here, but at this point they could explore on their own :-)

Server side
1. Learn the basics of programming and logic: variables and types; looping; branching (if/then/else).
2. Learn about HTTP. Learn about querystrings (they should already understand this from the HTML forms section, but now they'll understand the server-side of things.
3. Learn how to submit forms to a script and do basic processing of it (i.e. connect a form to a "Hello, World" script, both with POST and with GET).
4. Learn the basic objects of whatever language or application server (ASP, PHP) they have choosen.
5. Learn some basic SQL and relational database concepts.
6. From here, explore on your own...

Anyway, that's a long-winded way of offering a path for learning web development, from you're first "Hello, World!" HTML page to a complete, enterprise-level eCommerce application (well, maybe not ;-)

The point is that by following a logical plan, you can get a lot of knowledge in a short period of time. Each topic leads intelligently into the next. Knowledge builds on previous knowledge, etc. This, IMO, is the best way for anyone to learn about any topic.


Print the post  


What was Your Dumbest Investment?
Share it with us -- and learn from others' stories of flubs.
When Life Gives You Lemons
We all have had hardships and made poor decisions. The important thing is how we respond and grow. Read the story of a Fool who started from nothing, and looks to gain everything.
Contact Us
Contact Customer Service and other Fool departments here.
Work for Fools?
Winner of the Washingtonian great places to work, and Glassdoor #1 Company to Work For 2015! Have access to all of TMF's online and email products for FREE, and be paid for your contributions to TMF! Click the link and start your Fool career.