Except w3schools isn't approachable and it isn't for beginners. It's jargon loaded and filled with a bunch of information that means nothing to beginners.
"The <div> tag defines a division or a section in an HTML document.
The <div> tag is used to group block-elements to format them with styles."
Oh, I get it. Its for grouping block-elements(??) to format them with styles(??).
The above is followed by this fantastic tip:
"Tip: The <div> element is very often used together with CSS, to layout a web page."
Looking at their "examples" its an in-browser html editor with un-annotated code that makes a table suitable for the web circa 1995.
Then it trails off in to sparse definitions of the attributes for the div tag with an excessive amount of discussion about web standards compatibility.
Normally I wouldn't gripe about an awful tutorial site but w3schools consistently ranks high in google queries for questions about html tags. Personally I've never left w3schools with an answer to the question that led me there. That signals to me that it is indeed a failure.
From my personal experience when I was new to html and css, I was constantly referencing w3schools to look up things. Of course, your mileage may vary, but I was happy using it.
I made websites sporadically from '97-'03 and then started again in Dec '11. My criticism of w3schools is from my personal experience with the site over the last year.
I was surprised when I found out that w3schools actually intends to teach people html/css. Until recently, I thought it was universally acknowledged that they're a content farm.
Agreed. As someone who just began coding less than a year ago, I can honestly say that it has rarely if ever helped me. I've found other free sites like Chris Coyer's "css-tricks" to be far more beneficial. That said, it is a free service and I can appreciate that, but it's time for some improvements.
Yes, a random page in w3schools is for developers, not for beginners. And yes, they do have tutorials where beginners should begin with. After the tutorial, they indeed know what a block element and a style is.
Google downgraded w3schools in search. It used to be constently the first result. Now it is rather 5th or 6th.
If you are a beginner maybe you shouldn't start by reading about the <div> element... Just like when you start programming you shouldn't start with recursion. It does help to start at the beginning and work your way through to <div>.
I already had basic HTML/CSS knowledge when I found the site so not sure how it is to beginners, but I found your example to be a bit unfair.
I completely agree. Back in the early 2000s, I remember trying to learn HTML and CSS from them and understanding very little about a whole lot. I would say that the experience effectively put me off webdev until just recently.
> Except w3schools isn't approachable and it isn't for beginners.
I too had the exact opposite experience. I found the HTML, CSS, and Javascript tutorials extremely intuitive and well-presented when I was in 7th grade. I ate them up.
It might be approachable, but that doesn't make it any less horrible.
Yes, some people find it useful when they don't know better, but I suspect those people at that point they would have found almost any tutorial useful.
> "...Some folks have started voicing hostile opinions..."
A little late to the game, there.
This post ignores two important points:
1. There are a lot of much better sites out there (linked to from W3Fools, even). Selectively highlighting a single post is misleading.
2. W3Fools is not so much for the benefit of W3Schools, but for people who link to W3Schools as reference in blog posts, SO answers, etc. There are lots of great reference sites (MDN!) that provide much better material, but circumstances have given W3Schools a lot of GoogleFu. That needs to change.
#1: Where is one post highlighted? The article (lazily) acknowledges other competition, and you even quoted said acknowledgement.
#2: Yes, this point is ignored because it was not really the focus. The benefit you speak of can be realized without statements like "W3SCHOOLS IS TROUBLE" in big scary letters on W3Fool's homepage. The attitudes of the people involved and the clarity of their content are the focus of the article.
#1: Paragraph 3 - "...sometimes even dead silence..."
#2: OP misses the point of why there is so much hostility. If W3Schools was on page 3 for (chosen utterly at random)"getElementById" on Google, no one would care. Predictably, however, it's number 1. That's pretty dire - I would hope that the top results for common questions would be quality resources. Which W3Schools is not. There is a greater good here, which is not served by continuing to promote W3Schools the top developer resource.
#2: How is that w3schools fault that they are listed top of Google's search results? What do you expect them to do, somehow reduce their ranking? Surely it is the job of other sites to increase their ranking?
#1: You and I both know more examples are out there.
#2: getElementById returns developer.mozilla.org as the first result for me. Anyway, what about the point of why there is so much support? Convenience beats accuracy. I don't use W3Schools much now because I know of the inaccuracies, but I loved it as a beginner since not many sources I found were as intuitive as it.
> W3Schools has already announced that it's content should be used at the user's risk, which means they waive all responsibility for inexperienced users. It is not their job to babysit developers, since it is the developer's job to research other sources and improve his understanding through rigorous practice and peer feedback.
That's awful advice for beginners, who have no idea why some things are good and others are dumb.
Some people will validate their pages. Some of those people will know what the errors mean, but decide that it's okay to have those errors. Other people will get a bunch of errors, and not really understand what's going on, and will just publish anyway because "it works in the browsers I tested on".
It's not bad advice to suggest that developers be stupid if they are the type to learn from their mistakes. If they are not the type to learn from their mistakes, why are we worried about them?
Being given correct information but making mistakes, and then learning from those mistakes in your efforts to recreate the good advice, is a useful learning technique.
Being given incorrect information, and making mistakes, and not knowing you've made mistakes, is not a useful learning technique.
And while these people are making mistakes and learning from them their customers are suffering buggy code and everything that goes with that - data loss and insecurity at the extreme end and unexpected behaviour at the mild end.
> "Being given incorrect information, and making mistakes, and not knowing you've made mistakes, is not a useful learning technique."
W3Schools has pointed out that users take a risk with its content, and it made no claim over the quality of its code. The only element they have authority over is its clarity, and that is what's important. The information may be lacking, but I stick by my guns when I say that crap code can still make some concept that a tutorial revolves around clearer. If other elements are not relevant to the tutorial, I do not believe it is fair to blame the author for excluding them.
- What members does the Array object in JavaScript have? For the query "javascript array", the first result is an overview of what an Array is, but the second result is the object reference which is exactly what I need.
When learning, looking things up is one of the most common actions. Whenever w3schools comes up, it doesn't necessarily make me smile but it's reliable^Wconsistent so I know what to expect. It maintains a lot of utility, unlike good ol' experts-exchange.
I highly recommend http://dochub.io/ over w3schools. Not only does it source MDN, which is much more accurate, but it allows you to instantly search for whatever CSS property or JS function/object you're looking for. (The only thing that I find disadvantageous is that you have to know the name of what you're looking for)
There's a lesson for entrepreneurs here: w3schools makes people happy, despite containing inaccuracies and being far from perfect. It's good enough and was the best available for a long time.
It's possible that you have worked on more projects than are listed on Linkedin, but that's what you've offered as evidence of your "good portfolio" and growth as a developer (the reason, I assume, that you keep distancing yourself from those hapless beginners), so that's what I'll reply to.
You have three web projects and a personal website all listed on your profile.
1. "Metasyllabus Initiative": This is a generic Wordpress site using a contributed theme. I assume this is your first attempt at a personal blog. There doesn't appear to be anything technically special about it, and it hasn't been updated in 8 months. If you stick with web development, get used to that. I haven't updated my blog in a year and a half. Wordpress is great, though, because anyone can set it up and use it. Anyone.
2. "Decision Tree Generator": About as simple as it can get. An independent multi-page Javascript-dependent (Did you learn that on W3Schools?) post form that's easily broken and seems to offer very little utility to the user. The most complicated styling used in this project is probably the absolute-positioned results.
3. "OmicronAlpha.org": This site is down.
4. "www.sagegerard.com": I don't know any serious web developers who would use Concrete5, and the comments I've received even from novices about it (it seems to appeal primarily to novices) have all ended with disappointment.
My point is that you're still a beginner. As a beginner, you don't know as much as the people you're arguing with, and you're making yourself look a bit foolish. W3Schools is a fine resource for anyone who knows that it's often unsafe, inaccurate, and wrong. However, the people who know that don't use W3Schools. My biggest problems with W3Schools (other than the inaccurate information) are that 1) they don't explain that they are not associated in any way with the W3C and 2) they sell overpriced certifications that require a user learns inaccurate information.
I read an article a few years ago (that I'm not possibly going to look for now) about best practices when creating examples and guides. The most important lesson in the article was that you should almost never show wrong examples or antipatterns. I.e., don't show an example of what NOT to do. The reason was that the novice ends up remembering the wrong examples as often (or possibly more often) as the good examples. At that point, the example/guide has failed. That's what W3Schools does. They can add as many disclaimers to their site as they want, but that doesn't change the result. They aren't just not doing as much to help people as they could. They're doing harm to the internet.
And by the way, the second sentence of your blog post is both ambiguous and wrong. Was W3Fools created in 2008 (It wasn't.)? Or did W3Fools teleport back in time to only criticize a 2008 version of W3Schools (They didn't.)?
> "Wordpress is great, though, because anyone can set it up and use it. Anyone."
Nothing is wrong with choosing an easy to use tool for the kinds of requirements clearly described in the about page.
> "Decision Tree Generator"
My client for this project insisted on many design decisions that I disagreed with. I also adopted broken code I was not allowed to fix, which includes the markup and CSS for the theme.
Not all of the code there reflects my knowledge, and anything that does might not be there because I wanted it to be. Not even all the bugs are mine. In fact, most of what you SEE there is not mine. Focus on the generator app only.
Also, I am writing a new version of that as we speak. It actually took a lot of convincing to abandon the horrible pop-up stateful form. Point is, I got repeat business because the code I wrote was well-tested and appreciated.
In short: The design of the site is not my own, but the generator itself is. Even so, I could not decide how it looked so I just pulled the levers. Whether you like the code or not, I am always in a process of learning and improving my craft regardless.
> "OmicronAlpha.org: This site is down."
I was the webmaster for one year and passed the title over as per the rules of the organization. I am no longer responsible for the site, so the listing shows only that I made it. Should it ever come back, it could be all blinking text for all I know.
I do appreciate you pointing out an outdated LinkedIn entry though. This has been fixed.
> "I don't know any serious web developers who would use Concrete5"
This is not an argument. I looked over my requirements, I wanted to use something new for my personal web site, and I picked something I'm happy with.
> "My point is that you're still a beginner. As a beginner, you don't know as much as the people you're arguing with."
I am certain I am still extremely ignorant, but that comes with the territory. I won't make an attempt to rank you, because I am sure you have your own experience to bring to the table. I respect you, and I have every right to ask that you respect me.
I don't aim to be the cock of the walk, but I will not allow you to push me to the level of a beginner in a public forum. While I am by no means a guru, I am competent, and am willing to have opinions you don't like even if I risk looking silly to those who misinterpret my claims.
I've been working for six years, and I have been doing more than what is listed on my profile. I am happy, my friends are happy and my clients are happy. I'm not rich, but I make enough money to support a good, healthy lifestyle and invest in my own retirement at an early age. I have used plenty of languages and tools, although I do not always take the time to share content because I tend to keep my services local. What you see online is only parts of me, and I am sure we would get along great if we met.
Now, my article goes beyond W3Schools and challenges what it means to effectively teach coding. I don't think you need good code to be a good teacher because there is a human element of making something understandable that goes outside professional standards of code quality. We can debate that until the sun goes down.
Being supportive of an inaccurate source for unconventional reasons does not invalidate my actual, relevant experience.
The first time i wanted to learn HTML and CSS,i happened to come across the W3fools page.So i followed their advice and their recommended resources.What do i get?Tons and tons of STORIES about secure code,best practices,patchy examples,and some sections clearly marked "This notes are out of date".Man,i have barely learned to switch on a computer.What are you talking about??
Not sure if you're serious or just trolling (you seem to be posting snippy responses to everyone's comments here), but there's a big difference between something like O'Reilly's Missing Manual or Head First series and w3schools. As demonstrated on the w3fools site, some of the information on w3schools is inaccurate or just plain wrong. The O'Reilly books have a much higher degree of accuracy yet remain approachable, beginner-level texts.
> "you seem to be posting snippy responses to everyone's comments here"
Sorry about that. It is not my intention to be rude or troll, but I've got a lot of discussions to manage. I went ahead and edited out some needlessly harsh bits here and there, but I'm not touching ones where I am just reciprocating the same attitude as the parent post.
I'll watch myself more carefully, so thanks for the reminder.
> "The O'Reilly books have a much higher degree of accuracy yet remain approachable, beginner-level texts."
Yes, but they still promote outdated and insecure approaches. As a beginner, I actually got yelled at for using an image map for obvious reasons. The edition of the book I used did not discourage them, but I still swear it was a nicely written text.
As for inaccuracies... W3Schools has been addressing them if the cited sources were reliable.
Yeah, how dare we as developers criticise a website disseminating wrong information like W3Schools. It's not their fault they get tonnes of Google traffic and have made no effort whatsoever to bring their site inline with other equally great resources.
The first Google result for the query, "div tag" is a W3Schools page. The page then cringefully displays a sample piece of code with an inline style colour attribute that probably would have been acceptable in 2002. Don't get me wrong, as a developer I think W3Schools can serve a purpose, but I've often found myself on a W3Schools reference page and not leaving a single useful piece of information.
It feels like W3Schools hasn't changed since it launched. I'm guessing the software company that runs it has better things to do and doesn't really care whether or not they're miseducating people.
And by the way, I think the author is about 7 years too late on the W3Schools hate train, the article reads like hating W3Schools is a new thing.
> "I think the author is about 7 years too late..."
If Hacker News participants ran the world no one would care about history. We can discuss things that happened in the past. It sure as hell sparked discussion here.
> "Don't get me wrong, as a developer I think W3Schools can serve a purpose..."
And it does. It's easy to understand, which is not something you find often in sites trying to teach something. As I said elsewhere, good code makes crappy tutorials since it introduces more concepts that can confuse and overwhelm a inexperienced reader.
I suspect that sources like W3Schools, the O'Reilly Missing Manual series and DirectXTutorial.com leave out good practices to avoid overwhelming the reader.
This idea is sometimes called Wittgenstein's ladder: http://en.wikipedia.org/wiki/Lie-to-children - "My propositions serve as elucidations in the following way: anyone who understands me eventually recognizes them as nonsensical, when he has used them - as steps - to climb beyond them. He must, so to speak, throw away the ladder after he has climbed up it."
It helps. Let's take the example of numbers. You begin learning as a child with 1, 2, 3... Everything is an integer and begins with one. Rapidly, you learn the notion of 0. And then at school, at some point, come the negative numbers. You have to "throw the ladder" that numbers are integer and begin with 1. You still know how to count, indeed in a more complex way.
Let's say you begin with markup, and just put the style as a tag to begin with. At some point, you know what a style does, but you have to throw the ladder that it has to be inside the markup, and externalize it to .css file.
> It is unrealistic to expect beginners to learn what good code is before what code is in the first place. Aspiring programmers do not yet understand the nuances of their trade, and often overlook security concerns and the importance of formal documentation.
That's no excuse for ignoring even the basics. Some of the w3schools tutorials are like starting a teenager's first driving lesson with "run down as many pedestrians as you want, we'll teach you how to not drive on sidewalks later".
C'mon. Their "PHP MySQL Insert Into" tutorial (http://w3schools.com/php/php_mysql_insert.asp) uses direct $_POST data with no escaping. No mention of security is made in the entire "PHP Database" section.
These tutorials need a massive red flashing warning saying "we've left critical stuff out, you will get your site defaced if you code like this".
Newbies don't need to be expected to know good code. That's no excuse for presenting actively dangerous examples to them with no warning.
How are people supposed to know that they need to go and find a separate security tutorial (and not a W3Schools one, they don't have one)?
Following that tutorial introduces massive security holes into a site. Those security problems need to be discussed. At the very least they need a warning saying "Don't do this until you understand the security issues discussed in THIS OTHER GUIDE".
> Who would hire someone who only has W3Schools knowledge?
And this pretty much negates your whole argument. If you ever plan on getting hired or being taken seriously enough to get clients, this isn't the resource. How pissed would you be to find out at an interview or after a breach that the site you used to learn all this stuff was the laughing stock of developers?
How would a non-technical person hiring a freelance web developer to do their site know that developer learned everything from W3Schools and is going to leave gaping security holes?
So true. Imagine your primary school art teacher telling you you were ignoring centuries of established neo-classical techniques by holding the brush wrong.
The problem is nuance, which involves all those little wow-I-wish-I-knew-THAT tidbits that students never learn about until a forum member or colleague hollers at them.
Languages cannot eliminate every subtlety in their use, and there will always be issues that call for more articles explaining how to sidestep them. Novices won't normally get to see this content, and it won't help them to shove it all down their throats at once back at the introductory level courses.
There's a reason most physics students hear about Newton first.
W3Schools is not perfect but it is the best HTML/CSS reference that I've seen. The W3Fools effort is sort of well-intentioned but overly disrespectful. The supposed alternatives linked from W3Fools are hideous.
W3Fools energy would be _MUCH_ better spent on developing an alternative.
MDN: Too Mozilla centric. I certainly hate devs who make Firefox-only pages more than ones who look up on w3schools. And I've met a few of them ;)
dochub: Where are the tutorials?
Sitepoint: The structure is messy. It looks like a blog, but a historical structure is awful for learning. I want topic categories. Also lots of things I don't care about - books, courses - I just want references and tutorials! MDN is better from this side.
I'm not convinced. You're not going to kill w3schools if you don't understand why so many folks go to that site.
Personally I didn't know dochub, and might probably get back soon on this site. It's clean, and the information is useful, but only when you already understand well what you're doing. It's not for learning the Web concepts. Also, it misses direct mention of browser support for every feature.
Have you used the MDN? It's hosted by Mozilla but it's an open wiki. Almost any bug or oddity in a browser will likely be listed. There are pages for essentially every extension for most browsers as well. Webkit's extensions live at https://developer.mozilla.org/en-US/docs/CSS/CSS_Reference/W... for example.
I see the MDN catch a lot of unwarranted flack and i don't understand why. Shoot I use chrome as my main webrowser and I still spend most of my time on dochub.io (which is sources entirely from the MDN) and the MDN itself.
I use MDN, not extensively though. I like this site, it is useful and very well organized, but feature availability (browser & level) is not as well documented as in w3schools I find. Chrome is probably not the issue here, rather - let's name it - IE.
MDN is a great site, don't misunderstand me - but in this case I am not sure this is the right hoster. I used MDN for some JavaScript issues like one year ago, and it was then running well on FF but not at all on IE. Maybe they have all corrected that since, but I'm not seeing that clearly now.
dochub looks nice, but again it is not something for beginners.
Also, MDN is client only (which is one point making me say it is very Mozilla oriented). w3schools has this part about PHP which is very useful for beginners. Again, my point hasn't changed. MDN and others are more useful resources to experienced web devs than w3schools, but w3schools is the better point to begin with when you don't know about web development and want a clear overview.
To be fair, W3Schools is simpler, cleaner and more organized than the alternatives suggested by W3Fool. It is still the fastest way to start learning about a web technology. But perhaps it would be best if they wikify it.
I agree. I've been developing web stuff since '98 or so, and w3schools is quick, easy, and I've never run into an accuracy problem that affected a real, production site. Most are academic.
Sure, there's better sites out there, but sometimes you just have to trust the Google.
If the site shows up #1 for 90% of web stuff you're looking for, then others obviously found it useful too.
I think the important point is, that there ARE better alternatives out there. There's just no point in defending a mediocre and potentially harmful[0] learning platform. There's no need for hostility, just move on.
I did. I am fully aware of the inaccurate content I ran with from w3schools, which is why I corrected myself. That does not change the fact w3schools was there when I needed a source that was easy to understand.
From the w3fools I learned the valuable trick that if you add "mdn" to your Google search you are likely to get a link pointing to Mozilla Developer Network.
Let's look the page for explaining 'div': http://www.w3schools.com/tags/tag_div.asp
"The <div> tag defines a division or a section in an HTML document.
The <div> tag is used to group block-elements to format them with styles."
Oh, I get it. Its for grouping block-elements(??) to format them with styles(??).
The above is followed by this fantastic tip: "Tip: The <div> element is very often used together with CSS, to layout a web page."
Looking at their "examples" its an in-browser html editor with un-annotated code that makes a table suitable for the web circa 1995.
Then it trails off in to sparse definitions of the attributes for the div tag with an excessive amount of discussion about web standards compatibility.
Normally I wouldn't gripe about an awful tutorial site but w3schools consistently ranks high in google queries for questions about html tags. Personally I've never left w3schools with an answer to the question that led me there. That signals to me that it is indeed a failure.