It depends upon your aptitude and interests. Think of web related programmers in two camps, which are frontend and backend. Both jobs require extensive knowledge of coding. If you are experienced in both areas you are considered a "full stack" web developer and that's a very good thing. You will see this on many software engineering job classifieds. Most computer science majors are taught C++ and Java plus database management. A BSci degree holder could go either way.
A web designer takes care of what the end user sees. They work with HTML, CSS, JavaScript and jQuery. They are also comfortable with graphics programs such as Photoshop, Fireworks, Illustrator, etc. Frontend designers can major in computer science and minor or double major in design. It also helps if they understand GUI (graphical user interface) as in the psychology of customer service and quality of user interactions. Frontend developers work closer to management of the companies they work for, since their work directly translates to the look and feel of the website.
While things like WordPress and Drupal are out there to help web designers make interactive websites they are extremely limited in scope. I don't care who the greatest programmer is, you can't replicate huge websites like facebook or google.com with one of those. It is still surprising to me that there aren't more frontend developers graduating college considering the popularity of the internet and the popularity of the WYSIWYG(whatyouseeiswhatyouget) frameworks like WordPress.
A backend developer is a different sort of animal (gnash, rar.) When you examine a website sourcecode, like Facebook for example, it may seem very short. This is because the browser code is sending information to Facebook servers. The servers themselves speak their own language. Database management is an example of backend development. Languages like Ruby, Python, PHP are the bread and butter of their work. These languages actually create new software programs unlike the frontend who just work within the confines of the browser with occasional Java programs popping out. Some goals of a backend guy is make sure the software works, the database is storing information in a timely manner, and security systems function. Backend guys are stereotyped as being anti-social, bearded, and annoyed that front-end technology changes too quickly.
Backend programmers have skills that translate easily to other areas such as mobile applications, native applications, and networking. Frontenders are pretty much stuck on the web.
Both jobs in the next twenty years are needed very, very badly. They both pay extraordinarily well if you have a four year degree.