HTML & CSS
I am teaching undergraduates about html this semester.
They are not all computing students - and one of them asked me what the point of learning html was. After all, if they were to create web pages, wouldn't they use a web page editor?
I suggested a few ideas of my own, but thought that I would get some comments from those out there, working in the real world.
How useful is it to have a basic understanding of html?
It is essential to have at least a basic understanding of HTML because the WYSIWYG can be creating any old piece of bloated cr*p. That will unlikely be interoperable or work constantly within various browsers or user-agents.
Plus if they ever need to use scripting they'd pretty much come unstuck because they probably will try inserting it in the wrong place, etc.
Ask them, if they'd trust the average newbie ten-year old to drive a car on the road; leaning to drive a car only takes about 30 minutes. Though I don't think without full knowledge of road signs, power of the machine and so forth they'll be that safe to go out on the road after only 30 minutes.
I assume you mean a WYSNIWYG rather than a plain text editor. In either case a good coder doesn't require a special editor. They memorise most of the elements and attributes so they can work anywhere and at any-time or even write (semantic) code on a piece of paper or give instructions blindfold.
The good coder is more powerful than the editor and can do things the average editor cannot.
I suggest they spend a couple of hours reading this forum - in particular, look at questions asked by newer members. I'd say that the majority of them are people who are using a WYSINWYG editor, some form of CMS or a template/library setup, and who are coming horribly unstuck because they don't actually have the first clue what they are doing. Often, the only viable solution that anyone here can offer is "scrap the lot, ditch the editor and start from scratch".
It is painfully obvious from reading the forum that no editor out there can produce professional or even competent HTML output when used by someone who doesn't understand HTML.
Off-the-shelf editors are fine if you want to create a personal home page to show off how much you know about your favourite TV show and maybe post a couple of pictures of your dog. But for serious commercial or business sites, they suck, and if you don't know HTML and CSS well, any site that you produce in them will be utter, utter garbage.
I would add that if you know html and the correct way of writing it, creating web pages is actually easier than those so called "wysiwyg" editors. Also, of course, the web is designed so that people without site can use it. WYWIWYG editors can never do this properly, so by using them you are in effect discriminating against the handicapped. Is that what young idealistic students want to be doing?
You'll notice a trend in the responses so far -- WYSIWYGS are rubbish.
What's missing is WHY they are rubbish, so lets cover that.
The very notion of WYSIWYG runs contrary to the POINT of using HTML in the first place. The ability to write device neutral content which the user agent can best determine how to show to the user; to which we can add CSS to target specific device capabilities. With the plethora of screen sizes, resolutions, different rendering engines, available fonts, device capabilities -- much less not everyone is even going to be accessing pages using a 'screen' -- what you see is most always NEVER what the end user is going to get!
That's the POINT of HTML, to be able to markup your content in a manner EVERYONE can get to it regardless of what they are trying to get to it WITH. Designing just for screen at a specific size, font-size and resolution is a giant steaming pile of /FAIL/ -- which is why most every WYSIWYG 'website editor' is complete and utter garbage.
It's also why good coders practice separation of presentation from content. HTML is to say what the content IS... a header, a paragraph, a list... It is then up to the user agent to best determine how to show a header, paragraph or list... or for the developer to customize it to specific target devices using CSS.
By definition WYSIWYGS tend to use presentational markup -- either by deprecated tags and attributes like CENTER, FONT and ALIGN, or by using presentational class names like "Left" or "BigFont". This defeats the point of even using CSS in the first place. Typing along in a WYSIWYG a user might select a section of text and make it bigger, without ever asking "WHY am I making it bigger, WHAT is this element I'm making bigger?" -- the key to semantic markup that can improve accessibility and search results.
The real kicker of the whole thing is many people end up relying on the various 'tools' without ever learning to do the job properly. As Stevie D said, that's fine for sleazing out some personal home page any old way, but if you are working on a for profit company home page you need to raise the bar beyond the capabilities of most "web page editors"... you need semantic markup for accessibility, you need semantic markup to help with your SEO... separation of presentation from content simplifies long term maintenance, eases site redesigns in the future AND leverages caching models to reduce bandwidth consumption lowering hosting costs. These are all things a business site needs to think about that using the WYSIWYG portions of web editors CANNOT DELIVER -- and by the time you know enough HTML/CSS to not use the WYSIWYG parts of fat bloated overpriced train-wrecks like Dreamweaver, you don't need anything more than a normal programmers text editor of which there are several dozen available for free!
As a friend who passed the veil about a year ago used to say, "the only thing about Dreamweaver that can be considered professional grade tools are the people promoting it's use."
Personally I extend that to the entire suite of Adobe products as well as most of the other WYSIWYG editors and 'programming aids' out there. They all amount to little more than crutches for the incompetent at best, and sleazeball shortcuts that will screw over whoever the site is actually for at worst!
Finally, the most important thing about a solid command of HTML and CSS is you can then do the job REGARDLESS of what tools an employer 'expects' you to use -- including anything that might come up in the future.
If you are teaching a class to do this, then you should be preparing them to be able to WORK in the field -- so drive home concepts like quality work and a work ethic -- two things sleazing out a page using a 'web editor' like Dreamweaver or "The artist formerly known as Frontpage" have absolutely nothing to do with.
Also, if you are going to teach HTML, use a MODERN RECOMMENDED doctype like HTML 4.01 STRICT or XHTML 1.0 STRICT. Explain that 'draft' means "don't use it for production work", that just because something is 'newer' doesn't mean it's better and can quite often mean "not ready for prime-time" -- and do NOT teach them presentational markup except for that it is an outdated and unprofessional way of doing things that no self respecting professional would use. That means they have NO business using FONT, CENTER, ALIGN, VALIGN, BORDER, TARGET or any of the other HTML tags and attributes deprecated in STRICT.
Do us all a favor, and teach them MODERN coding, instead of doing what it seems most College level teachers do and shove their students heads firmly up 1998's backside.
Thank-you so much for your very helpful and unequivocal replies!
I have already made some of these points to the student who asked the question, but will add to what I have already told them.
I am already teaching them html 4.01 and to not use depreciated tags, but to separate out style from content. This is only a short part of a single module, so I won't be teaching style sheets. You will also be glad to know that I will be stressing when it is appropriate to use tables correctly!
Thanks once again, and if anyone has any further useful comments, I will be pleased to hear them.
++ to Ed's and Jason's (deathshadow's) comments especially, but this whole thread is ++.
You can also turn the students' questions over to something they may understand better as well:
They are not all language students - and one of them asked me what the point of learning French was. After all, if they were to create magazine articles, wouldn't they use Google Translate?
I'm sure even your younger students loved playing with online translation like Babelfish to get ridiculous-sounding text. I know I did : ) Or if they are older students, if they've seen the Dirty Hungarian Phrasebook sketches?
"My hovercraft is full of eels."
<p class="heading"><font size=6><b>This is not a heading, but is cleverly disguised to look like one!</b></font></p>
Another thing, if you have the time for it, is to have your students surf the web with a text browser (Lynx, Elinks) and try out with a screen reader. The latter might take too long for them to learn to use, but plenty of software sit on browsers and rely on good markup to figure out what the content on a page means.
Frankly, I wouldn't release anyone out into the wild without them knowing a good deal of web accessibility and usability. Your students will be way ahead of their other schooled peers if they come out knowing that.
The comparison to google translate is a REALLY good analogy. The markup produced by 'site editors' is generally comparable in quality to the translation done by google translate. It might work well enough to understand it, but you'd never use that on a whole book without having somebody clean it up.
Really examples of the output from these programs do say it all. SP's example of the 'class="heading"' nonsense being a perfect example of that in action.
Worse though is most WYSIWYGS will often open and close tags like font and B for no good reason... For example if you only had half of that example in bold may WYSIWYGS will close the font and then re-open it again with the B for no good reason if you declare the size first.
Why learn html? Indeed why?
Forgetting about HOW (though that's the biggest issue), why would you learn html? I mean, it's about text, right? HyperText Markup Language.
What about text? Well, the text part is done easily and probably better in any word processor. So, for just writing text, html is not the best option.
What about hyper? Well, this is the catch. You can easily write referenced text, linked data. You can jump, search, choose, provide, share, add, question, dispute all the subjects you wish or you find. You really can't do that with text in a word processor.
What about markup? Well, this is the better answer to all the proprietary technology used in word processors. And a simpler one. With simple and intuitive elements you can describe text content. In an easy way.
Learning html allows you to become the author of disputed ideas. You can make a public place to gather people and make them interact. You create a public place where everyone is contributing. It doesn't even have to be about "smart" ideas You can share any knowledge: worldly-minded or philosophical. And you get to be an active part.
Think of it like an interactive book. Or newspaper. And the power to cover the subject and get feedback on a global scale is at your fingertip. By html. A very simple mechanism. Unlike digital television setup, radio stations setup, conferences, summits... In fact, all media today can be "transported" over html. Html is the superhero of communication. Or the whore Nonetheless, everyone wants a piece of it!
And you can be that superhero! Or that... At a very low cost: learn basic html. That way you can control rather than being controlled. You can decide how, not being forced into how. You can be a player in all this, than just a simple puppet.
Think of it like the Marconi device for text. You can make your voice heard. Very easy. And you can get others to share with you, as you do.
That's html for you at its very core. It can be more: a business, a promotion and publicity platform, it can be about trade. But that's just one step further in the game.
Fixed : )
He just stole that whole patent and claimed it his. Would've gotten away with it, if the US govt hadn't wanted to use radio in the war without paying royalties to RCA lawlz[/ot]
The Supreme Court of the United States did not dispute Marconi's original British patent nor his reputation as the inventor of radio. The US Supreme Court stated that his original patent (which became reissue 11,913) was not being disputed.
Think of it like the Marconi device for text
sounds good. I'm not talking about patent wars :)[/ot]
Agreed and I also agree with the rest of your post. I just wnat to add that WYSIWYG is a lie simply because, on the web, there IS no "WYG". It is not an attainable goal and any program that claims to achieve it is lying to you.
"What you get" on the web is many many things, not any one thing.
I'm not talking about patent wars
Neither am I. Marconi was a thief with rich friends.[/ot]
[ot]The War of Currents all over again! :lol:
Tesla was one too: he worked under Edison, gained knowledge, and then derived (they say invented nowadays) Edison's work, took it further, that's right, but then
Tesla devised a system for generation, transmission, and use of AC power. He partnered with George Westinghouse to commercialize this system. Westinghouse had previously bought the rights to Tesla's polyphase system patents and other patents for AC transformers from Lucien Gaulard and John Dixon Gibbs.
Sounds a lot like a thief with rich friends to me
To Edison's shame, he was rejecting Tesla's ideas too.
Your point is moot. Why? All their work was not invented from the ground up. It relied on centuries of math and physics knowledge others didn't patented before. What if Pitagora was to patent his geometry findings? There is a reason why the knife doesn't have a patent either: common knowledge. For them it was a race as to which was faster, because the knowledge was already there.
Let me be a big self-promoting lout, since I wrote on this topic not long ago:
Michele, I also teach Web design (to schoolkids), and I don't even tell them there's any other way to code besides in a text editor and with separating style from content, any more than I'd teach them how to start their Model T with a hand crank.
As an analogy - it isn't necessary that you learn to drive - you can always catch the bus to go everywhere and never need to get behind the wheel yourself. Of course things are going to be awkward if there is no bus that goes where you want to go to.
Similarly it isn't necessary that you learn HTML as you can always use a "what you see is what you almost get if you're lucky" web editor and just never use any of the features that your editor doesn't support except by using HTML. Of course then you are as limited in what you can do as you would be in where you can go if you limit yourself to using buses.
I look at it this way. In the 1960s people paid engineers tons of money as specialists to process the most basic data. It was considered "too complex" to ask an office worker to do computer based data processing.
Today, if you can't use Excel, you can't get a job as a secretary or a $6.00/ hr data entry processor. HTML will go the same way. There are a few rules to (X)HTML and admittedly they're pretty technical. WYSIWYG tools tell you that you don't have to learn those few rules and that you can trust them to do it for you. The result is websites that fundamentally break, either visually or functionally.
In the US during 1960s everyone learned Russian because the Soviet Union was considered the biggest rival. In the 1980s, Japanese was considered important because people were concerned that the US was losing an economic war to Japan. In the 2000s, Arabic is considered trendy. We've always recognized that if you're going to cope with someone you first have to understand them.
In a world where we are surrounded by computers and are routinely turning over more and more routine but important tasks to them, it is only logical that we will become more and more technologically inclined. When I grew up, working on your own car meant having an aptitude for wrenches and grease. Now the guys who work on their own cars have picked up enough electronics to pass college level engineering tests. I don't believe that we'll ever get to the point where Jean-Luc Picard would know how to program in binary. But I do believe that within the next twenty years, some level of programming is going to become a "life skill" along with driving a car and being able to use Excel if you expect to get a job anywhere.
^haha that's why I can run Linux. It's not just for nerds anymore!