top | item 4803001

An Ode To W3Schools

69 points| jon_kuperman | 13 years ago |jonkuperman.com | reply

62 comments

order
[+] simonsarris|13 years ago|reply
I disagree and I don't think he really responded to any of the criticisms, just sort-of acknowledged them.

> They Appear Affiliated With The W3C

> For those in the know the W3C is the World Wide Web Consortium, it is an international organization that governs the web. W3Schools rides off the notoriety of that name despite being unaffiliated. Is that really a complaint? How many _Java_Script developers are out there that think this is an issue?

I think this is my biggest issue with W3SChools and he just kind of brushes it off.

Masquerades of this kind have always been a pet peeve, such as how all Blue Moon materials try very hard to present it as a microbrew, when its a Coors product. People think they're supporting some small company, and Coors is intentionally duping them.

JavaScript, by the way, was a name change based on a mutual co-marking deal. W3School's name is not.

> [about Wikifying] Again, I’d love to see it happen – but that doesn’t mean it should happen.

Funny, I just edited the MDN today. It is a far better resource, wiki-fied, with no ads, and Mozilla is always looking for helpers. If you'd love to see it happen, help it happen.

https://developer.mozilla.org/en-US/

"It's the Web. You drive."

(In traditional HN fashion I'd like to write an Ode to the MDN post, alas I haven't got the time tonight!)

[+] rpm4321|13 years ago|reply
I've got to be honest, I've never made that connection.

To me, W3 is simply a popular abbreviation for WWW, like "dub dub dub". When you think about it, at 9 syllables WWW has probably the highest word-length to syllable ratio out there.

[+] manaskarekar|13 years ago|reply
I think the reason a lot of newbies start with them is because of a straight to the point easy to read format.

They may not be the most accurate or comprehensive, but the low barrier to entry is EXACTLY what newbies are looking for.

[+] jamesjporter|13 years ago|reply
Let the record show: I'm trying to teach myself a bit of web design and I've so far found MDN to be a far better resource than W3Schools, so perhaps good behavior triumphs in the end?
[+] KaoruAoiShiho|13 years ago|reply
Only problem is that MDN's load times are ass, W3Schools is much faster. This single thing is 99% of the reason why W3Schools will continue to be favored by most people (imo).
[+] Overclock|13 years ago|reply
It's like the private Federal Reserve and Federal Express.
[+] nthitz|13 years ago|reply
Same goes for Stella Artois, owned by Anheuser-Busch
[+] seriocomic|13 years ago|reply
Wow. I am really ashamed to admit, despite years of SitePoint, Mozilla Forums and StackExchange use, that I have never come across the MDN :/
[+] dorward|13 years ago|reply
Their PHP+MySQL tutorial has an SQL injection vulnerability in every example that takes user input. It never mentions SQL injection as a possible problem and it never covers any of the techniques needed to defend against it.

In my book, that's unforgivable and they won't get any slack from me until they fix it.

[+] bbotond|13 years ago|reply
Very true. It amazes me that in 2012, the code in 8 out of 10 PHP/MySQL questions on StackOverflow is still vulnerable to SQL injection. Sometimes people post code that is running on real, production web sites that handle credit card data. They even give you the URL. It's super easy to crack any of them - hell, you can see exactly what you have to do in the ugly 500-line monstrosity they posted. Any resource that is dedicated to education and teaches web development should take SQL injection very seriously. There is no excuse for not doing so.
[+] jiggy2011|13 years ago|reply
The problem is that these tutorials were written a looong time ago when the default was to have magic quotes switched on which has probably saved thousands of newbie developers apps from being SQL injected. The default is now off.

Of course magic quotes caused problems with excessive escaping in DB fields leading to some developers explicitly de-escaping values before adding them to the DB.

[+] pretoriusB|13 years ago|reply
That happens in 99% of PHP+MySQL tutorials out there...

And looking a little closer, even in the most reputable sources, you can found XSS and especially CSRF vulnerabilities aplenty.

People should not get security advice from a beginner's tutorial anyway, even if it covered XSS, it would have tons of other problems.

[+] wyuenho|13 years ago|reply
As a long time webdev, I too took a fews years back in around 05,06 to figure out how misleading w3school's content is, but since then, I've compiled a list of resource to help myself relearn the webdev process. But be warned, there's no shortcut if you want to be good, if you just aim to be quick and dirty. Go read w3schools.com and be yet another w3fool.

_Webdev Begins_

Sitepoint

Slightly outdated, but perfectly succinct and accurate reference to HTML, CSS with EXCELLENT notes on common pitfalls. All new webdevs should start here.

  * http://reference.sitepoint.com/
Things that you must learn about CSS

  * box model
  * floats
  * positioning
  * margin collapsing
Eloquent Javascript

An easier to read book on JS.

  * http://eloquentjavascript.net/contents.html
MDN

Their resource on Javascript is a must read basic reference for all new JS developers.

  * https://developer.mozilla.org/en-US/docs/JavaScript
_Webdev Returns_

How that you have a basic, but solid understanding of HTML, CSS and JS, you should start learning the more advanced stuff:

More practice on CSS positioning

Google css positioning, read anything besides the w3schools results, such as this:

  * http://www.alistapart.com/articles/css-positioning-101/
Vertical Alignment

  * http://css-tricks.com/what-is-vertical-align/
Stickyfooter

  * http://lazylegs.info/articles/sticky-footer.html
Shrink-wrapping floats

  * http://haslayout.net/css-tuts/CSS-Shrink-Wrap
How to deal with IE

  * http://haslayout.net
_Webdev Rises_

HTML/CSS/JS design patterns

  * http://www.alistapart.com
  * http://css-tricks.com
  * http://addyosmani.com/resources/essentialjsdesignpatterns/book/
  * http://ui-patterns.com
Browser inconsistencies reference

  * http://www.quirksmode.org
  * http://caniuse.com
HTML5

  * http://diveintohtml5.info
  * http://html5doctor.com
CSS3

  * http://css-tricks.com
[+] SiVal|13 years ago|reply
An upvote and a thanks from me, too.
[+] bpatrianakos|13 years ago|reply
In a nutshell the problem with W3Schools isn't any of the things the author points out. It's in the people learning from it. All good developers get to a point in their learning where they realize W3Schools is all the things the author points out and stops using it or very rarely uses it as a quick reference. That's fine. But then there's a whole other breed of developer who never move beyond what can be learned at W3Schools. They go on to write and share terrible code and teach others the least effective way to do things and that's where the harm in W3Schools lies. These are the same developers you find on Stackoverflow who post questions like "can you give me the code to run a Facebook clone".
[+] scottshea|13 years ago|reply
For me it is a place to learn what to google... I often start with the W3Schools site and then use the verbiage as a launching point for further queries
[+] Diamons|13 years ago|reply
100% agree. I learned so much off W3Schools. Yeah, it's sometimes inaccurate. But the information is a million times better than reading some WC3 specs or Mozilla's developer guides.

Often I see people link to MSDN or Mozilla's developer network when asked for how to learn web development, and all I think to myself as I see that is that if it were me, I would just quit. The content is explained in a way that's just not user friendly for someone who wants to learn for the first time.

[+] nickpresta|13 years ago|reply
I would argue that http://htmldog.com/ or the MDN (https://developer.mozilla.org/en-US/) are much better resources for even the newbie. Correct information always trumps easily accessible information. It isn't like the MDN is hard to navigate or anything, anyways.

For comparison sake:

https://developer.mozilla.org/en-US/docs/HTML/Element/articl...

http://www.w3schools.com/tags/tag_article.asp

With the exception of the "try it yourself" link, the MDN page has everything the W3School's page has, and then some, as well as being more accurate as it contains version numbers, links to the spec, as well as related usage notes.

[+] pjscott|13 years ago|reply
Thank you. A lot of people forget what it was like to be a newbie, confused by denser sources of information, and just looking for something that presents the basics in an accessible way.
[+] donebizkit|13 years ago|reply
W3Schools is a great resource for beginers and it should stay as it is: Simple. The minute you wiki-fy it, it'll become abstract and ground for ideological wars. Once you get your feet wet with their content then you move on to more advanced websites. As for the name issue, not a major issue.
[+] ronreiter|13 years ago|reply
Whatever man. Acknowledging the fact that a website which is so common teaches people to program the wrong way has responsibility. I'm sure they make a shitload of money from ads, and the authors of the website don't even bother to read emails. The problem is that they have a high SEO ranking, because most programmers are dumb and they don't know what's good for them. That's where the word responsibility comes in.
[+] dmauro|13 years ago|reply
Learning to append MDN to all my searches helped me out a lot. MDN is just a much better resource. And before I caught on I did assume a certain credibility and relationship between W3schools and W3C.
[+] aviswanathan|13 years ago|reply
The one thing I've got to hand to W3Schools is that they've (he's) SEO'd the crap out of the site (probably also due to its massive popularity). If I search something very specific, such as a certain CSS3 element or JS function, the definition and a pertinent case example from W3Schools is always at the top of Google.
[+] Kiro|13 years ago|reply
I use both MDN and W3Schools but many times I prefer W3Schools since they provide a much cleaner and simpler explanation together with the invaluable "try it yourself".
[+] jamesmcn|13 years ago|reply
The argument against w3schools is simple: Use Primary Sources Wherever Possible.

If you want to learn about the history of the Holy Roman Empire then Wikipedia is great. The relevant primary sources are numerous, and many of them are probably written in languages you can't even read. But if you want to learn about web development, the primary sources of documentation are few, easily found, and authoritative.

If you want canned solutions to your problem, look to StackOverflow. W3Schools can die in a fire.

The thing that is more annoying than w3schools is that if you tell Google to always exclude w3schools results from your searches, it won't. So I have to manually append "-w3schools" to every.webdev.search.I.do.

[+] camus|13 years ago|reply
that's why everybody who wants to learn Js reads the spec first,right?
[+] knieveltech|13 years ago|reply
I love to hate W3Schools as much as anyone these days, but here's a dirty little secret: when I was making the transition from nights-and-weekends coding enthusiast to professional programmer, I needed something (anything) to put on my resume that might suggest to HR that I can do the work. Two W3Schools online certs later I landed the gig that started my development career.
[+] garethadams|13 years ago|reply
I would suggest that any employer who puts value in a W3Schools certification is not somewhere you want to work.

The HTML quiz[1] they recommend to prepare for the certification test includes questions like:

  5. What is the preferred way for adding a background color in HTML?

  * <body background="yellow">
  * <body style="background-color:yellow">
  * <background>yellow</background>
(hint: none of them)

  10. How can you open a link in a new browser window?

  * <a href="url" target="_blank">
  * <a href="url" new>
  * <a href="url" target="new">
(hint: two of them)

[1]: http://www.w3schools.com/quiztest/quiztest.asp?qtest=HTML

[+] calinet6|13 years ago|reply
The problem with W3Schools is not that it's horribly bad in any way.

It's that it's so consistently mediocre, and at the same time, so prevalent.

We need not accept this. The task that they're trying to achieve can be done so much better.

[+] gprasanth|13 years ago|reply
I think any beginner would love to have a [cross platform] offline browse-able reference/tutorial/guide whatever, be it MDN or W3Schools. Going to google for every damn thing is just a waste of time. And, for people with little stacks, it usually deviates them making them forget what they were trying to do in the first place. I am talking about something like php.net's offline 'chm' file. But, for html, javascript and css. Does anything exist already?
[+] earroway|13 years ago|reply
Long time ago when I was a newbie, I used w3schools to ramp up on web basics. The format was easy to use. I still to back occasionally for a quick double check on syntax.

For naysayers that believe that better options exist in the space for newbies, perhaps they could provide links to these resources.

[+] ck2|13 years ago|reply
If they won't wikify all they need to do is add comments to their page via disqus or some other third party system.

Then people can post corrections and examples.

They can disallow links if they are worried about spam.

[+] ygra|13 years ago|reply
Comments wouldn't solve much, I fear. For example take a look at PHP's documentation or MSDN. Both have community content in form of comments. In PHP's case it's a few helpful hints and a lot of bad example code in said comments. Or years-old discussions no one really needs anymore. On MSDN the comments are pretty much only used for P/Invoke signatures of Windows API calls (which is helpful, but I'd argue they're not really the point of comments).
[+] debacle|13 years ago|reply
While I never used w3schools to learn anything, their DOM and CSS references are of immeasurable value and I constantly find myself hitting that part of their site.