Apps

Can you be a self-respecting Web developer without knowing HTML?

Tony Patton says he can't accept a so-called Web developer who doesn't fully understand the technology used to create their applications. How much do you think a Web developer needs to know about HTML?

I was helping another Web developer track down a display problem on a recent project. I pulled up the HTML source for the page, and he was amazed that I knew how to work with the source code. It made me wonder: How much does a Web developer need to know about HTML? I came to the realization that I cannot accept a so-called Web developer who doesn't fully understand the technology used to create their applications.

Behind the scenes

I show my age when I say that I was around in the beginning coding pages by hand, using a vi editor on the UNIX server hosting the site. I built many sites with standard HTML and Perl. These sites were very functional, but the sites don't match what is possible today.

The latest version of HTML (4.01) has been with us since 1999. While there have been advances with CSS, JavaScript, and many more related standards, HTML is at the core of the Web experience. The next iteration (HTML 5) is in the works, but who knows when it will be finalized. (It is worth noting that browsers have adopted many features outside of HTML 4.01 -- many of which are in HTML 5).

No matter what development platform or tools a developer uses to build a Web application, the end result is a page -- or group of pages -- rendered via HTML and most likely CSS and JavaScript. This is true for developers using ASP.NET, JSP, PHP, and so forth. On the other hand, the way these pages are developed has changed dramatically with the tools available today.

Why learn HTML now?

If you aren't proficient in HTML, you may be wondering why it is necessary to learn HTML when there is so much else you need to know. Knowing HTML can only enhance your productivity and value as a developer. After all, it will be much easier to track down a bug in a Web interface with intricate knowledge of how the page is delivered to the browser.

In addition, HTML knowledge (along with CSS) means you can work with an application regardless of the tool used to create it. You are no longer bound to your preferred development tool or the one used to build the site. Also, knowledge of the source code gives you greater control of the end result. You can use your favorite tool to build the application and dig into the source code to tweak it.

HTML isn't rocket science

I know many Java and .NET developers that would be lost without their IDEs. They are dumbfounded when faced with the rudimentary command-line tools to build their applications. Luckily, HTML is a much simpler language.

HTML is very easy to learn, especially for someone familiar with the Web. In addition, the Web is overflowing with resources to help with the learning as well as great references. The World Wide Web Consortium (W3C) offers a good HTML introduction as well as many more lessons. TechRepublic provides numerous downloads about HTML, including an HTML reference guide and a CSS Reference Table. I also really like the reference material from SitePoint with sites devoted to HTML and CSS.

There are tons of books available about HTML. Ian Lloyd's recently released The Ultimate HTML Reference, is a great resource in a surprisingly hard bound book. It provides a thorough discussion of each HTML element, along with example code and browser compatibility information. Another good offering is HTML Dog: The Best-Practice Guide to XHTML and CSS.

A no-brainer

This subject brings to mind the analogy of my son doing his algebra with a calculator. He was fine until I took away the electronic gadget and made him do it by hand. The understanding of the basics was necessary for him to truly understand algebra, and the same is true for Web developers: We must know HTML.

Do you find yourself digging through HTML source code to find problems? Do you think such knowledge is a necessity for Web developers? Share your thoughts with the Web Developer community.

Tony Patton began his professional career as an application developer earning Java, VB, Lotus, and XML certifications to bolster his knowledge.

---------------------------------------------------------------------------------------

Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!

About

Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a productio...

171 comments
Holod
Holod

Course, it is not possible. And how can you work with WEB, and be not interested in html. There are so many html tutorials everywhere and it does not take much time to explore html

pfutrell
pfutrell

We keep hiring so-called "web developers" who don't know, and don't feel they need to know, html. The concept of RAD-programming has made this worse, in that it leads the programmer down the primrose path of thinking that all they need to do is drop a control on a form, and voila, the html is perfectly formed and functional. What a mess this produces. And the hours wasted trying to fix your rad control ("why doesn't it work?") so that it works. I am an ASP.Net programmer who uses only about 25% of what comes out of the box, and avoid like the plague anything that promises RAD. I stick with doing the html by hand, understanding the DOM and using javascript to parse through the DOM and do what is required on the client side to make light-weight and performant web applications.

Thando Vuzane - Web Developer
Thando Vuzane - Web Developer

Wow! Finally someone with common sense. This is exactly what I've always been preaching, you can never excel in anything if you don't have adequate knowledge of it's foundation. I started off with basic HTML and moved on to css, javascript, and now programming in Ruby on Rails.

tptbusines_98
tptbusines_98

I agree with ANYONE and EVERYONE, stating "you need to know the basics of HTML". It is clear, if you do not know the basic foundation of Web development, how will you know how to approach the problem. For ALL of you who have stated "HTML is not programming", I disagree. By definition, what is programming??? What can you create in ANY other programming language, you can not create in/with HTML???? Let me know...

dgs010243
dgs010243

Hello, "To be or not to be" web developer ! Shakespeare wasn't a html speaker. He spoke a more complicated language: old English, like Ben Jonson. It is impossible to develope a web resource w/o understanding HTML. Could you drive a car w/o knowing the ABC in the mechanics of the engine? Are you crazy to drive a car considering the sophisticated control equipments sufficient for ... Wake up my dear pseudo-web-developer ! http://dgsemel.wordpress.com/ Best regards, dgs010243

techie.brandon
techie.brandon

I would expect to see this on a general forum, but in the IT world I would expect everyone would be of one mind on this. The fact that I have read about half the responses and a scary number of individuals say you don't need to know html to be a web developer is staggering to me. I find it increasingly annoying to find people that build webpages but don't know the first thing about what they are truly doing. Ask that person to switch IDE or WYSIWYG and they are out of luck, and out of a job until they watch a online video about how the tool works... and copy someone's code... or begs on a forum for it... Personally I find it a bit arrogant for anyone to use a tool prior to understanding the fundamental technology. You should at least read a book and write a few "Hello World"'s from scratch before using someone else's tool. I think we have names for these type of people in different realms but I will hold off on name calling. I have spent time using frontpage, dreamweaver, golive, rad, wsd, and just about any other tooling you can imagine, however I always find myself in the source because it is faster. I find the tools are great for a general schema or to lay something out, but when it gets to details, the perfect alignment, moving a entire section, or dealing with numerous languages in a single file...the tools all fail and my eyes are by far faster at getting the job done. I personally love textpad, ultraedit, notepad, vi. I do like tools that give context help but outside of that they usually slow me down when details matter...and any self respecting web developer should always say the details matter. I would say this idea of understanding the underlying technology should expand to all aspects of development, from AJAX, XML, CSS, Java, C, Perl, Javascript, and so on... using someone else's API before you understand what is going on is the equivalent of sleeping through class and cheating on the final exam. You might get an 'A' in the class but at some point it will catch up to you and your going to be asked to create something of your own... Don't spend your time learning a tool, any monkey can learn a tool in 3 months, learn the technology behind the tool and you will have a solid foundation to build your future on.

jasondlnd
jasondlnd

One of my duties at work is to maintain the website. Often, I use a WYSIWYG editor, as we have one built into the framework of the website. Although we have that type of an editor built into the website, more often than not, I end up hand coding things in straight HTML. At times, it will be as simple as replacing a [p][/p] with a [br] to improve formatting to hand coding complex column widths that are based upon the size of the browser window. Without any knowledge of HTML, I would be certainly up a creek without a paddle!

dan.gray
dan.gray

I teach ICT at a College in the UK, and I've been telling my students this since I started, it's good to know the world agrees. I'll be using this blog url to prove the point in future. I usually aim them at using Dreamweaver's code window when they first start to get serious, as the code hints can be useful, as well as saving some time typing once you get used to using it. More power to you.

PJTIPS-22358776250307586412157057903266
PJTIPS-22358776250307586412157057903266

I think your right and yes i think its important to understand the basics. Lets face it, you wouldnt try to build a tower without wanting to no about the foundations and if it could fall over.

johja
johja

HTML is a bare minimum, which a web developer *must* know. X/HTML is the container that holds all the rest of it together, or it is what is produced to hold the content. I'm either holding content; pulling scripts, styles, and content together within an HTML-like document or am creating such a document with a script. That covers a breadth of web development. If one does not know HTML, then the common denominator is often missing. HTML is pretty intuitive. If one cannot do HTML, then likely he or she will have difficulty with CSS and most certainly will struggle with programming languages such as JavaScript, Java, ASP, PHP, Perl, etc.

rssenyonjo
rssenyonjo

I dont think one can be a self-respecting Web developer without knowing html.whenever i try to view the source code of any webpage,i only see html plus javascript and css.So inorder for one to understand the program flow,they should have a basic understanding of html. Rogers

quasim
quasim

IMHO: dev-yes, designer-no First of all, I notice that Web "developer" and "designer" are used as if they were interchangeable. As of my experience, the "designer" does all the visual stuff, while a developer does all the backend / scripting / DB etc. The developer needs only know his PERL / ASP or whatever he uses, while the designer is putting the components in place with HTML, using some kind of IDE and then manually tweaking the HTML to work properly. at least that's as it is done at my place.

Deadly Ernest
Deadly Ernest

If they don't know html and how to check a web page / site for excess html, then they aren't a web developer, just a graphic artists messing around. Way too many web pages / sites are created by people using some of the tools available and not checking the actual code as they don't know how to. The result is pages and site that are much bigger than they need be and can only be accessed by a broadband connection of some sort. Years ago, I was taught (by one of the top web developers in the country at the time) that a web page had to be fully downloaded in under 30 seconds on a 33.6 kbs modem, anything that took longer was not professional and garbage. I sometimes have to wait a minute on a 1GB broadband for some web pages to display toady. I've seen a page that was developed for an acquaintance by a 'so called modern web developer' that was 2 MB of download in scripts and images, none of the images were optimised for the web. I re did the page in html and got it to 400 KB, including the eight images - reduced but still high resolution. And, I thought that was too big. The worst ones, pages that is, are those that have a css then just list a pile of scripts that call other scripts . I've seen one case where a script calls seven more, which call other, and the final display is twenty-six scripts, some of which are nested four layers down. Most modern 'web developers' think a frame is a piece of wood they put their certificates in. So every page on the site recalls all the page common information, the menu and headers and footer stuff is reloaded for every damn page. Wasting bandwidth all over the place, and people wonder why they need more.

john
john

I would not consider myself a Web Developer if I didn't know HTML!

oarf
oarf

Whoever asked such an idiotic question? If you can't understand HTML, get out of web development.

veronika
veronika

I think html helps - I started out with limited knowledge of it and as I delve into the code more it has helped me to be a better designer. My pet peeve is people who think they can design websites when they have no training in design at all! Even templates can be broken and butchered by those who have no idea how to use fonts, colors and white space, and if they can't write or spell it's even worse!

nakim
nakim

I am working as software developer for more then 10 years. Last 5 years I am producing web applications mainly in ASP. Without knowing HTML probably all of those applications never will be in use. My colleagues, who is really good designer, use Dreamweaver or some other tool to create Web pages, but always has some problem in formatting or such thing and ask me for help. My first sentence is "Switch on code view.??? He can't believe that someone can look into HTML and have full and exact picture how that page looks like in browser. Also my code is always shorter then code created in some tool.

bmeyers265
bmeyers265

I have seen some websites written in Word and saved in html. The coding is unreadable, awful, and enormous but the site itself looks good. It is a shame. I would never try to be a web developer without knowing some html and the more the better. So, can you be a self-respecting web developer without knowing html? I would say NO. The person who develops a web site but does not know html is not a web developer and should not call himself or herself a web developer - just a "hack" who writes web pages that are a horrible mess!

j-mart
j-mart

Html is not hard to learn WYSIWYG tools may be able to produce web pages but you will alwys be taken much more seriosly within the ranks of web design with the basic skill of HTML. I work in producing NC code for CNC profile cutting machines, I use software that generates this code but I also have a working knowledge of the G code. this enables me to make changes in controler config, find problems when a program does not work the should, and assist the machine operator to solve problems when machine is not working properly. Knowledge always enables you to do a better job

j@n
j@n

It's true, HTML is the core - Period. No matter what tools you may use, it always comes handy when you can shuffle between the source codes and fix the problems out. We wouldn't have seen much of the development in the Web front without HTML - even at this age of WEB 2.0 - HTML still rocks and will always be rocking.

PJfromOttawa
PJfromOttawa

Allow me an exaggeration to show my point. Does a proficient Logo programmer need to know machine language? Or Assembler? Or C, etc.? Right now, because so many of the tools and the platforms being written to are in a constant state of change (or proprietary silliness a la FrontPage) you have to know HTML. But at one point I knew some machine language and assembler. As I program in Perl, PHP, .Net, Javascript, I consider that knowledge less and less useful. Once in a while I'll come across something low-level (big-Endian vs. litte-Endian). I see the relationship of the higher-level languages to machine language in kinda the same way as HTML dev goes now. Low-level HTML will always be there but doesn't mean the Web Developers need to know it. I need to know how to do "print" in multiple languages (analogous to how to do Bold on a webpage using an IDE) but I don't to know the machine language behind the print statement (as web developers we won't, eventually, NEED to know the B tag.

Polyglot
Polyglot

Real web developers use Struts with either JSP or Velocity. You have to know HTML in that environment.

felice
felice

I would love to learn.......

mauco
mauco

You have to know how to build a solid foundation (HTML) before you can go ahead to construct a strong tower. It's just that simple!

Thack
Thack

(Sorry, posted this in the wrong place earlier) But, but, but..... Isn't this need to know HTML really about shortcomings in the tools for creating it? We've all produced PDF files occasionally. How many of you here can write raw Postscript? Truthfully? The reason you don't need to is because there are tools which do the job perfectly well (Acrobat, FoxPDF, etc). Of course, in theory you can go into the Postscript produced by Acrobat and hand tweak it, but why? It is much easier and quicker to do it in Acrobat itself. Lots of great programmers can't write in assembler: compilers do such a great job it is rarely necessary. Are they not "proper" programmers? Do you honestly believe they get turned down for swathes of programming jobs? Lots of good authors use OpenOffice to produce documents in OpenXML format. How many of them could write the raw XML? If there were a tool as good as Acrobat (or its competitors) for HTML, then surely the same argument must apply. I realise there is something "macho" about being able to hand code raw HTML in vi, but most people want the productivity benefits that go with a high-level tool, and one day the ability to code in HTML will be as irrelevant as the ability to hand-code raw Postscript.

vwells262
vwells262

I agree totally. However, I think there is much more than just the HTML knowledge. I think that training in "Top Down Basic" is a must too. Without carefull planning, web sites can get scattered all over the place. I know this from personal experience. Vern Wells

michaelsaltmarsh
michaelsaltmarsh

I think the real question is can you be considered a programmer without knowing how to code in assembly?

jerrygivan
jerrygivan

I work as a webmaster on sites that have "webpage" tools and as a designer of commercial webservices. The answer is NO! If you are going to be called a web developer, you have to know HTML and CSS. I use serveral tools one of which is CoffeeCup which will generate code for you but you still have to know how to use it and how to fix it when a browser stumbles on it. The commercial sites I support, all have a "best viewed with" clause on the home page for a reason.

Gargarney
Gargarney

Having taught myself HTML, CSS, Javascript and hand-coded back in the 90's (remember measuring pixels for hand-coded image maps?), I've always been intimidated by the .Net and Java crop of young developers. Now I learn they depend on IDE's and can't read HTML? I should be making lots more money!

john.lodge
john.lodge

I agree that it is essential to know HTML and the DOM to be a successful web developer. You say you used to code sites in vi. I still do, and it is useful to know an editor that you will find everywhere, to fix a problem away from your noemal environment

minhan_nemo
minhan_nemo

Barber must know how to use both scissors and electronic hair clippers.

ericamhc
ericamhc

Honestly, it is absolutely absurd for someone to claim to be a "developer" without even a rudimentary understanding of the code. WTF?

ByteBin-20472379147970077837000261110898
ByteBin-20472379147970077837000261110898

No such animal! How can you be a web developer and not know HTML? Impossible! I thought that is at least the BASICS. Though if you want to get technical about it, you probably should know XTHML/CSS instead. But knowing HTML first is I think a MUST.

nickpixel
nickpixel

"self-respecting"?!?! More like "can you be a competent Web developer without knowing HTML?". I have yet to meet a competent web developer who is not well versed in HTML, CSS and Javascript (and that is based on a very large sample). Many of my fellow software engineers are very intelligent and very qualified developers who occasionally get assigned to work on a web application. That does not make them "Web Developers". If it did then the term "Web Developer" is meaningless and we need to come up with a new term.

Elvis.Is.Alive
Elvis.Is.Alive

While it is important to understand the basics of HTML, understanding the underlying DOM of browsers is far more important. HTML will only get you so far, but as soon as you start to mash in JavaScript and CSS, just knowing HTML won't cut it anymore.

Ukitin
Ukitin

I'm 16 years old and in college taking up IT Major in Multimedia and Internet at Informatics. Will it be enough? It's an international school based in Singapore... I'm just wondering if it's enough.

Tony Hopkinson
Tony Hopkinson

Effectively you are programming the browser. You want this title, This in large bold , this rapped round that image... It's not that much different in concept from a CNC lathe, or even way back when a Jacquard loom. The only difference is HTML is not a good language choice for say writing a relational database management system. Not a lack in programming but that langauge was specificall designed to program browsers. There again attempting to produce a web page in SQL is going to be far from clever. :D

Tony Hopkinson
Tony Hopkinson

in it's purest form. There are more things you can't describe with it than you can. Strange I know, but it was created to describe web pages.....

seanferd
seanferd

But if you take them all together, yes. Unless you mean the article, which is a blog post, or, to come full circle, an article.

Roho
Roho

To add to the confusion there is not only a mix up of "designers" and "developers" (the visual and programming aspect), but I see a big difference in front end and back end developers. The front end developer takes the nice visual design from the designer and translates that into html, css and script (can include Flash or Silverlight). The back end developer implements logic on the server that spits out the html as "designed" by the front end developer. It goes without saying that there is no strict line between the functions as the front developer must also be aware of how the underlying framework is set up and he must split his html up in a way that the separate framework components produce independent bits of html if the components are to be reused or repeated etc. Now for the article and the level of knowledge required of HTML: - the designer creates a beautiful image and has to have some general knowledge of the web, but no indepth HTML understanding; - the front end developer has to breathe and dream all ins and outs of html, css and the like; - the back end developer has to have some understanding of html, so he can do some basic debugging if things go wrong; indepth html knowledge is no necessity. Well, that's how I have seen in several teams and to me it's the right way to work: each can thrive in their own area while there is enough overlap in knowledge so they can understand each other's technological limitations and possibilities.

Tony Hopkinson
Tony Hopkinson

arse out of a document. You aid it yourself what you end up with is as good as the tool, AND your ability to use it. Well sometimes the tool sucks for what you want to do, but you don't know that. Sometimes you use the wrong one but you don't know that. Sometimes the tool is broken, but you don't know that. If I get my car back off a 'mechanic' and half the nuts are rounded off. I know he ain't, I know why, I can even fix it.... Someone who doesn't well, they take pot luck with someone else with the same title.

gtcorwin
gtcorwin

I bet the guys that wrote acrobat can hand code postscript! I know a few people that do forms with Form makers and then go ahead and tear into it to really hone the form down. Guys that go in and make printer drivers work better... These guys are developers... they make the tools... a Web developer can go in and make the page... a web designer uses Dreamweaver in design mode and freaks when the window that shows code comes up and says "What's that?" Your argument about programmers... If you don't and can't type code to a language to make a program... you are not a programmer you are a user. Users use tools... developers make tools... Web pages are tools... if you can only read them... you are a user... if you can make em with a tool, you are a designer... if you can make em by hand, you are a developer... If you can paint a picture on raw canvas you are an artist... If you need the lines and numbers to tell you where and what color... you are NOT an artist! So if you can't start from a blank document and create without drag and drop tools... you are NOT a DEVELOPER... you are best a designer

techie.brandon
techie.brandon

I wouldn't say the DOM is *more* important than knowing HTML, it seems supplemental to me. You would generally step into working with the DOM after you are working with javascript and HTML... hopefully knowing at least the basics of both.

santeewelding
santeewelding

Sixteen, in college, majoring -- you have doubts?

Deadly Ernest
Deadly Ernest

if all you want is a web page, you should always use the correct horse for the course and html is the horse for a web page and the basic screen for anything on the web. You only need other things like php etc when you want to have the web visitor provide you with information for your database or draw info from your database. Javascript, Flas, Java etc aren't needed for normal web pages yet so many people do use them as the gui style program uses them and they don't know enough to do anything different.

tptbusines_98
tptbusines_98

I agree. For ALL you non-believers, what is the definition of programming???????

arignote
arignote

I've seen too much lousy HTML and CSS produced by back-end developers with limited HTML skills. They seem surprised when I QA the applications by taking the "view source" text and running it through the DreamWeaver HTML checker. I've seem lots of badly nested or unclosed tags, tables nested 5 deep (with styles created for each layer), and javascript errors. I?ve had the privilege to work with some very good front end developers recently. They live HTML, CSS, JavaScript, XML, Section 508 etc and can tell what works on different browsers. I?m trying to push for user-focused, front-end first development. Which means the back-end developers have to produce output that is equivalent (ignoring extra white) to what the front-end developers have templated. After all, the browser doesn?t get the asp.net, jsp, cgi, php, etc code the browser gets the HTML.

Tony Hopkinson
Tony Hopkinson

Is to allow you to manipulate the HTML with javascript, I think I'd have to agree.....

alaniane
alaniane

very few generalists who can do both good frontend and backend work. I know you don't want a lot web developers or application developers for that matter setting up the database. I've had to tie in some apps where the backend database was setup by the frontend guys. Seems like they've never heard of relational. One app had a separate database for each type of transaction that they processed. Each database had exactly duplicate sets of base tables and views. They didn't seem to realize that they could have used one database by just adding a column to one the main tables specifying which transaction type the data belonged to.