I'm studying Computer Science, and I've always been more interested in programming than in designing and creating the layout of some websites.

Is this something I should know? Or should I focus on programming languages (C, Python, C#, JavaScript, PHP, ...)?


5 Answers 5



If you are interested in building web applications, knowing HTML/CSS is a must.

I am, like you, a computer scientist and I'm happy I have spent some time in the trenches of HTML and CSS. Sure, you want to do database stuff, and need to do a lot of server-side programming too. Many people see these things (HTML versus serverside programming) as complete opposites. But with the advent of web applications (and even more so with HTML5) this line has started to blur.

So I say: learn both


HTML/CSS is extremely easy unless you care about how the web site looks or whether or not it has bells and whistles.

Should you know all the ins and outs of jQuery, MooTools, etc.? No, you probably don't need to go that far.

Should you understand how to make a very basic web page (html, head, /head, body, /body, /html, js and css includes, id's and classes, what a div is, what a table is, etc.)? These things are incredibly easy to learn. You could learn all of that stuff in a week, and you might be considered retarded if you don't know them, so I'd say yes. Similarly, if someone mentions SQL, IIS, SSL, etc., you should know what those are, even if you don't know how to use them.

  • @Michael Of course, I agree with you, but I'm not talking about knowing the basic. I'm talking about building a website from scatch using HTML+CSS (I'm not talking about JS). I know I should know the basics, but should I really focus on doing this than programming in an imperative language? Mar 3, 2011 at 8:22
  • If you want to limit the discussion to HTML+CSS only (ignoring complex HTML5 elements [canvas], JS, jQuery, MooTools, PHP, Perl, SQL, etc.), then I'd say definitely yes. HTML/CSS would take all of a week to get the hang of. You're talking about something that is incredibly simple, and once again, if you have no idea how to do it, people will think you're stupid. Even if you don't want to use it, you almost can't afford to not know it.
    – Michael
    Mar 3, 2011 at 8:48
  • By the way, I may have answered the wrong question. The title of the question is "Should a CS do the HTML/CSS job?" No. However, the text of the question asks a different question: "Should a CS have a rough idea how to write HTML/CSS?" Yes. Analogy: A restaurant manager should know the ingredients of the recipes, how to clean the floors, etc., but a manager should rarely do those things.
    – Michael
    Mar 3, 2011 at 9:03
  • 4
    What does this mean: "HTML/CSS is extremely easy unless you care about how the web site looks or whether or not it has bells and whistles."? That's like saying "driving a car is extremely easy unless you care about hitting objects, people or other vehicles".
    – delete
    Mar 3, 2011 at 13:47
  • 1
    @Master Of Disaster Actually, that's not too far off. I think @michael meant that basic HTML/CSS syntax is cake - it's when you apply it to make a horizontal list that's compatible with IE6 when you run into difficulty. With the car analogy, any dolt can put their foot on the accelerator; it's the parallel parking that gets ya.
    – Jacob Hume
    Mar 5, 2011 at 15:22

As a computer scientist you would want to focus on your field of expertise. It goes without saying that you need to know what you are dealing with and that is most probably why you get designing and layout lessons during your classes.

However, as soon as you start working on a professional level you will soon want to find yourself in a situation where the design is delivered to you as a XHML / CSS files. The hourly rate of an engineer is much higher than someone who slices .psd files. Another issue might be the fact that you need to take care of browser compatibility which can be quite annoying.

But if you are asking this question to justify not taking these lessons I have to disagree ;) And, what if you want to start your own internet company and you don't have a budget to start with...

  • Thank you very much for your answer ;) About not taking these lesons: No, that's not the point. In fact, I kind of like it, but I was just asking because I don't really think that's the kind of job a computer scientist should do, taking in count the knowledge adquired during the career (compiler, low-level programing, algoritms analysis, lot of theory, etc). Mar 3, 2011 at 8:38

Regardless of what area you work (web development, embedded programming, java developing, etc) its would be very beneficial to know how to design a good user interface. Unless you're working for a very large company that can have a team that does this for you, you very likely will be required to do a lot of this work. With out this knowledge your programs are likely to be designed such that a computer scientist could use them but your average user would struggle with it. Diversification on a at least a small scale is a good thing in our field.

  • I should add that if you do want to get into web development you almost certainly WILL need to know HTML and CSS and it would be a very good idea to be very comfortable with design aspects as well.
    – Kenneth
    Mar 3, 2011 at 17:21

I am a web developer who does no design work (I am awful at it) but I do a lot of HTML/CSS. This is for two reasons:

1) I may not do the design but it is not uncommon for me to take designs done in Photoshop and turn them into living, breathing web documents.

2) When generating dynamic content I ultimately have to produce HTML to get that content into the web page.

If you are going to be doing a lot of web programming you should definitely be at least proficient with HTML and CSS as virtually everything ultimately ends up wrapped up in HTML and styled with CSS in the end. Since this is going to be the result of your work, even if you won't always be the one writing the HTML/CSS, you should at least understand it and how it relates to your work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.