views:

670

answers:

22

I know this won't be a popular question, because a lot of web designers want to assume that their craft is difficult and valuable.

IT IS. But I do not believe that it is difficult because HTML and CSS are difficult to master, I believe its difficult because being a good creative designer is difficult. Please resist the urge to reflexively disagree with me because I consider the language simple.

I suck as a designer, thankfully its not my job. However I can take a photo shopped comp and create a pure HTML/CSS web page from it with ease.

It is my personal believe that anyone can become an effective HTML/CSS guru in a week or two's study. There just isn't that much complexity (and this is someone with years of experience talking).

Crossbrowser coding is not as hard as people make it sound. I develop in Firefox, and tweak for IE, and I'm done, a good CSS reset handles 99% of the issues.

Do you disagree with this? Is HTML and CSS impossible to learn well in a week?

EDIT: This has to do with my heavily downvoted answer here: http://stackoverflow.com/questions/198337/testing-htmlcssjavascript-skills-when-hiring#198344

+5  A: 

IMHO, browsers incompatibilities is the main reason for the difficult of it.

Daniel Silveira
+15  A: 

HTML and CSS are extremely simple languages, syntactically. They are not simple at all to use correctly and effectively.

Best practices with HTML aren't absolutely clear, and where they are they're rarely used. It takes time to learn these things beyond just learning the language.

CSS is, for basic purposes, extremely simple. For complex designs, it's extremely not simple. And when you factor in browser quirks, it becomes very much not simple.

From a purely theoretical standpoint, they are quite easy. From a real world use standpoint, they are not.

eyelidlessness
+4  A: 

Do you disagree with this? Is HTML and CSS impossible to learn well in a week?

Yes, I'm almost sure. Although I share your experience related to the implementation:

However I can take a photo shopped comp and create a pure HTML/CSS web page from it with ease.

Given a good reference or some prior knowledge, this isn't really all that hard, certainly much (!) less hard than is often claimed, if the mock is any good.

However, this:

Crossbrowser coding is not as hard as people make it sound.

is wrong, in my experience. It very much depends on the mock you're working from: If it's designed by a web developer and optimized for web development, implementation might be easy. However, graphical designs may be arbitrarily complex and implementing them all meaningfully while paying attention to divers browser quirks is extremely taxing.

Konrad Rudolph
+4  A: 

HTML, being a purely descriptive language, is almost trivial. CSS is all about the side-effects, visual side-effects at that, and is at least an order of magnitude harder to learn. I very much doubt that anyone could become a CSS guru (by your definition) in a week, even those who wrote the specifications. There are just too many differing interpretations and extensions in usage (e.g. floats) for that.

P.S. You do know that the HTML and CSS behind your homepage fail validation, dont you? ;-)

Bobby Jack
My homepage driven by an off the shelve blogger template? You better let them know.
FlySwat
You didn't HAVE to choose wordpress and/or that invalid template. I guess it can't be THAT easy if you (and, admittedly, many thousands of others) rely on HTML/CSS constructed by people who obviously have NOT mastered it.
Bobby Jack
That brings up another good point....Do we, as purists, put to much emphasis on perfect? How much money do you think blogger is making right now?
FlySwat
Certainly, although I think, with the current state of browser (in)compatibility, it's required. That is, a very significant amount of knowledge about exactly how to style a web page is required. Much of this is completely wasted, only necessary due to poor browser implementations. It pains me.
Bobby Jack
+1  A: 

As with anything, practice makes perfect. I've found that as I've worked more developing sites with valid HTML and CSS, the easier it's become to make them cross-browser. You become more aware of the issues, more aware of the quirks, and you are able to side-step them in advance. It becomes easier as time goes on. However, if you don't have someone to point those all out from the outset, I don't think it's very easy at all and it can be very frustrating if you don't know where to look or who to ask.

VirtuosiMedia
+1  A: 

It's easy to "master" HTML and CSS -- the semantics of each are simple. By that measure, it's even easier to master painting -- just rub some paint on canvas and call it done. Syntax is the easiest part of just about any computer task -- learning how do use it is much more difficult.

I've been a web developer since around 1996. I've known HTML from the beginning, and CSS and Javascript since they came to common use. When I design a page it still tends to look like crap -- syntactically-correct crap, but still not very pleasant. That's why I'm really pleased to work with talented designers who can handle the look & feel parts of it for me.

Danimal
You are correct, and I alluded to this in my question. The difficulty is not in the knowledge of HTML/CSS, it is in creative design abilities.
FlySwat
A: 

It's ultimately easier to build a site using semantic markup and good CSS then it is to go back and change the design of a webpage that was designed using 10 layers of nested tables, 1 pixel transparent gifs (for spacing), and nonstandard <font> tags to alter the way the text looks.

Kibbee
+1  A: 

Web Design is a tricky subject, and you've narrowed it down to just HTML and CSS. It's almost like saying that programming is easy because you understand SSADM (other methodologies are available).

Sure, making a HTML page and loading it with CSS is simple, but it's never been easy. Within two weeks I seriously doubt that you'd be able to code any layout given to you in Photoshop. As far as I am concerned Web Design involves the entire creation process, involving creating the design in whatever raster program you use, then coding it in (X)HTML and CSS. Once this shell is made the Developer can work on the back-end scripting and programming.

Web Design is a difficult subject because it is changing so much, and much like with programming you never stop learning new ways of doing something. If you haven't, check out the W3C specifications and see how much you really know.

If you find HTML and CSS so easy then you might want to take a look at the SitePoint Forums. You'll either be a great help to the Web Design community, or you'll realise that you're not as good as you thought.

EnderMB
+1  A: 

My view is that it isn't the languages themselves - (X)HTML and CSS are reasonable simple, and there are plenty of good reference sources around. What is more difficult is working out the best way to implement a design concept in well written HTML/CSS.

Ken Ray
+4  A: 

My answer to the question is this: It must be pretty hard because I'm still seeing a boatload of crap markup and css. More specifically, semantic markup is nuanced and somewhat subjective (should you use a heading and a list, or a Definition List? The answer is not always black and white).

It's one thing to know how to use html and css, but it's another to really understand semantics. It's not really too hard in my opinion, but a lack of understanding seems to persist in appalling abundance.

I work with semantic markup and css 8+ hours per day working on small sites to complex applications. I think it's relatively easy to learn and understand the syntax of html and css in a few weeks as you suggested, but it takes a lot of experience and research to get to a point where one really can think abstractly (with a high degree of accuracy) about what is the best, most flexible, and most semantic markup for the given design comp and what cross-browser issues might one run into with the given design.

Andy Ford
A: 

Don't underestimate the complexities of HTML and css. Yes they are simple to learn, but mastering them takes a lot of intelligence.

The different approaches to the following HTML and css examples are massive when you've been in the game a while.

#header h1 { font-size: 2em; }
<div id="header">
  <h1>Title</h1>
<div>

and

.title { font-size: 2em; }
<div id="header">
  <h1 class="title">Title</h1>
<div>

The choice of whether to use a class or ID, or whether to define your styles loosely or not will seriously impact your ability to get strong robust sites going or not.

Steve Perks
+14  A: 

"Is HTML and CSS impossible to learn well in a week?"

In a word, yes.

Can you write a basic page by following something like, "Learn html in 24 hours"? Absolutely. Will you know why it does or does not work - probably not.

"...a good CSS reset handles 99% of the issues." Possibly. Why it does is likely way beyond one week of study.

  • Finding a generic CSS reset that handles 99% of issues - free
  • Handling the other 1% - priceless!
Traingamer
+4  A: 

It is my personal believe that anyone can become an effective HTML/CSS guru in a week or two's study.

I don't even think that sentence makes sense (apart from your confusion over the word "belief") -- when we refer to people as "gurus", we mean, someone with great, deep knowledge and experience, someone head and shoulders above the rest. If anyone could become a guru in two weeks then there'd be no gurus.

Anyway, I diagnose you as a second-stage newbie: you've got past a certain level and you think you've got mastery of the subject. You lack humility.

I would advise you to keep working in the field of HTML and CSS and you'll find there are lots of interesting problems you don't know how to solve; you'll find there are very smart people who've solved them in interesting ways you'd never have thought of; and you'll also find that there are many different ways to achieve the same end -- the ones you know might be effective, but there may be far cleverer ways to optimise or improve or streamline your HTML/CSS.

I'll put you down in my diary for October 2009 and we'll see how you feel.

AmbroseChapel
+1  A: 

I think if we're discussing the complexity of the HTML/CSS languages to the complexity of a programming language or framework, it's no contest. HTML/CSS is easy to write, and the syntax and rules are easy to memorize.

But just like a programming language, the syntax isn't important as how it's used. Try to think of CSS as a series of layout rules that build upon each other - and how those rules are constructed depends very much on the behavior of the page. A good CSS dev will be able to convert a photoshop mock-up into a page that will not only look good, but also behave well under the demands of dynamic content. The challenge a CSS designer faces isn't writing the code, but rather juggling the bits of the design in order to balance the functional behavior of the page with its aesthetic requirements.

Just like any language, CSS design has is own best practices, techniques and design patterns (which goes back to why I asked my question in the first place).

And more importantly, what separates the men from the boys (or the women from the girls) in front-end layout skills is how well they understand concepts and mechanics of browser layout, as specified in this document. Deep understanding of the visual formatting model is where a lot of people get very lost. Not to mention the cross-browser stuff.

If you think this stuff is cake, then more power to you.

Bryan M.
+1  A: 

Speaking as a newbie: I started learning xhtml/ css in august this year, spent like 12 hours every day for one month and managed to build my portfolio, still too heavy, not working properly in IE - I still consider it as a testproject. In 30 days, what I learnt is that there´s a lot more too it than you think, and to be really good at this I need a lot more than two weeks!

inahill
A: 

Like others have said, its relatively easy to learn the HOW but the WHY takes experience and experience takes time to get.

An interesting site is http://csszengarden.com where the challenge is to use exactly the same HTML and, using only CSS, modify the page to look very different from the other examples. Worth a look.

Chris Latta
A: 

wow i must be really slow, it took me about a year to master CSS - to just learn it and fudge it, maybe a couple weeks, but to really know the ins and outs was like a year....kudoos to you smarties

A: 

It takes quite a lot experience to write good cross browser css based websites. The main reason is that on your way doing it you will discover more and more browser specific issues. By building many standard based websites you will gain experience in avoiding these at all.

The first stage is usually what people call 'div mania (using divs for 95% of your content)', which is possible to learn in like a week for firefox and IE. After that people start to use more sementically suitable tags for their content and remove pointless tags.

After this stage people become more skilled with harder issues such as vertical centering and form design (HARD to achieve pixel precision http://www.456bereastreet.com/archive/200409/styling_form_controls/).

True masters can do all these things and also are able to use minimal css rules and use very efficient image strategies such as sprites.

Tomh
A: 

Definitely takes longer than a few weeks to master CSS.

Using a reset file or a framework means you might be able to piece something pretty solid together within that time but will have very little understanding as to why it is all working which will come back to haunt you when you run into those issues not covered by your framework.

...or maybe I'm just making excuses for my own incompetence ... (stupid IE)

Luke Lowrey
A: 

It really depends what is your goal in one week. You can learn HTML in one day, and learn CSS in the rest of the week.

Fred Yang
A: 

If anyone, A HUMAN BEING, told you ll about it, being a perfect teacher, make all the information flow into you just like that, NO ITS NOT IMPOSSIBLE ... it is QUITE EASY TO LEARN IN 3 DAYS MAX .. but since no one is perfecti and that includes me fr example, I can't read all that big CSS books just like that .. So if people were perfect, the boooks would be so, hence we would all learn in an hour f ANYONE would in a week .. Well by the way ... :)))

A: 

It only takes a minute to learn how to use an axe, but it takes years to learn how to carve a canoe.

I've been doing this for 11 years and it just keeps getting harder, thanks to frameworks, packaged CMSes, AJAX and whatnot. Browser compatibility is a cakewalk in comparison.

For example, right now I'm working on a Drupal site with an OpenLayers plugin. I have almost 2000 lines of CSS courtesy of those frameworks, before I even start making it look like something other than OpenLayers inside Drupal. Everybody's overloading everybody else, creating a delicate orrery of CSS epicycles. (Try firebugging a label button in Gmail to get a taste.)

So yeah: HTML/CSS is easy. I learned all the rules of Go in a weekend, am I a master yet?

Paul Souders