SEOmoz has recently been interviewing applicants for a web developer position. Prior to conducting the interview, I wrote up a list of technical questions I wanted to ask. After interviewing, I decided to build upon this list and put together a larger one that everyone could use - both for interviewers and interviewees.
The list is not specific to any particular type of development position, but I tried to balance it between both the design/html/usability side of things and the back-end/database/programming side. I'm just focusing on web development related questions - you should obviously ask the usual barrage of questions like "Why do you want to work for [some company?]" I'm not covering those types here. Also, this list isn't in any particular order.
- What industry sites and blogs do you read regularly?
This question can give you an idea of how in-tune they are with the latest industry trends and technologies, as well as how passionate they are about webdev. It'll help separate the people who do it as a career AS WELL as a hobby from those who might simply be in it for the big developer paychecks.
_ - Do you prefer to work alone or on a team?
This is an important question to ask depending on the work environment. If your project is going to require close interaction with other developers it's very handy to have someone who has had that kind of experience. On the other hand, many developers thrive while going solo. Try to find a developer that fits your needs.
_ - How comfortable are you with writing HTML entirely by hand? (+exercise)
Although their resume may state that they're an HTML expert, often times many developers can't actually write an HTML document from top to bottom. They rely on an external publisher or have to constantly flip back to a reference manual. Any developer worth a damn should at least be able to write a simple HTML document without relying on external resources. A possible exercise is to draw up a fake website and ask them to write the HTML for it. Keep it simple and just make sure they have the basics down - watch for mistakes like forgetting the <head> </head> tags or serious misuse of certain elements. If they write something like: <image src="/some/image.gif">, it might be a good hint to wrap things up and call the next interviewee.
_ - What is the w3c?
Standards compliance in web development is where everything is (hopefully?) going. Don't ask them to recite the w3c's mission statement or anything, but they should at least have a general idea of who they are.
_ - Can you write table-less XHTML? Do you validate your code?
Weed out the old-school table-driven design junkies! Find a developer who uses HTML elements for what they were actually intended. Also, many developers will say they can go table-less, but when actually building sites they still use tables out of habit and/or convenience. Possibly draw up a quick navigation menu or article and have them write the markup for it. To be tricky, you could draw up tabular data - give them bonus points if they point out that a table should be used in that scenario :)
_ - What are a few of your favorite development tools and why?
If they say notepad you've obviously got the wrong person for the job. Not only can this help you gauge their level of competence, but it'll also see if they match the tools everyone else uses in-house.
_ - Describe/demonstrate your level of competence in a *nix shell environment
See how well they work without their precious GUI. Ask some basic questions like how they would recursively copy a directory from one place to another, or how you'd make a file only readable by the owner. Find out what OSs they have experience with.
_ - What skills and technologies are you the most interested in improving upon or learning?
Find out if their future interests match the direction of the position (or the company in general).
_ - Show me your portfolio!
A portfolio can say a lot about a developer. Do they have an eye for aesthetics? Are they more creatively or logically oriented? The most important thing is to look for is solid, extensive, COMPLETED projects. A half dozen mockups and/or hacked-out scripts is a sign of inexperience or incompetence.
_ - What sized websites have you worked on in the past?
Find a developer that has experience similar in size to the project you're putting together. Developers with high traffic, large scale site expertise may offer skills that smaller-sized developers don't, such as fine tuning apache or optimizing heavily hit SQL queries. On the other hand, developers who typically build smaller sites may have an eye for things that large scale developers don't, such as offering a greater level of visual creativity.
_ - Show me your code!
Whether it's plain old HTML or freakishly advanced ruby on rails, ask for code samples. Source code can say more about a persons work habits than you think. Clean, elegant code can often be indicative of a methodical, capable developer. A resume may say 7+ years of perl experience, but that could mean 7 years of bad, unreadable perl. Also, make sure you ask for a lot of source code, not just a few isolated functions or pieces of HTML. Anyone can clean up 20-30 lines of code for an interview, you want to see the whole shebang. Don't ask for a full, functional app, but make sure it's enough that you can tell it's really what their code is like.
_ - What are a few sites you admire and why? (from a webdev perspective)
Find out what inspires them. While it doesn't necessarily "take one to know one," a great developer should always have a few impressive favorites.
_ - Fix this code, please.
Give them some broken code written in the development language they are expected to know for the position. Have them go through it line by line and point out all the mistakes.
_ - I just pulled up the website you built and the browser is displaying a blank page. Walk me through the steps you'd take to troubleshoot the problem.
This is a great question to determine how well rounded their abilites are. It tests everything from basic support skills all the way up to troubleshooting the webserver itself.
_ - What's your favorite development language and why? What other features (if any) do you wish you could add to this language?
Asking about feature additions is a particularly valuable question - it can reveal if they're skilled in programming in general or if their skillset is pigeonholed into their language of choice.
_ - Do you find any particular languages or technologies intimidating?
I've often felt that the more I learn, the less I feel like I know. Solving one mystery opens up ten others. Having the interviewee tell you their faults can reveal a lot about what they know.
_ - Acronym time (oh boy!)
Some might argue that knowing what acronyms actually stand for is trivial, but there are certain acronyms that a developer should have hard-wired into their head ( HTML or CSS, for example). This is the kind of question that might be better reserved for the phone interview to weed out those who are very unqualified.
_ - What web browser do you use?
There is a right answer to this question: all of them. A competent developer should be familiar with testing cross-browser compatibility by using all the major web browsers. Obviously they'll have a primary browser they use for surfing, but their answer to this question might be a good way for you to segue to asking how extensively they test cross-browser issues. Also, if it's some kind of css/html position seeing what toolbars they have installed can be a good metric of their skillset.
_ - Rank your interest in these development tasks from 1 to 5 (1 being not interested at all, 5 being extremely interested) Write up a list of tasks the job requires. Having them rank these items according to their interest level can help you find who is the best suited for the position. I know debugging uncommented perl code from 1997 sounds seriously awesome to me.
_ - What are a few personal web projects you've got going on?
Almost all developers have personal web projects they like to plug away at in their spare time. This is another question that can help differentiate the passionate developers from the clock-punchers. It's also a good question to end an interview with, as it's usually easy (and fun) for them to answer.
Any more great questions you can think of?
This has been an interesting discussion and it's clear various people will never see eye-to-eye on some of the detailed issues raised. (I'm reminded of forest-for-the-trees analogies and such.)
Me? I'm a big believer in hiring great individuals and finding jobs for them to do. Great people can always be trained to learn the minutiae of just about any job. The most important skill, in my mind, for anyone to have in any profession is the ability to communicate -- whether it be writing, or speaking, or most importantly, listening. When you can communicate well, anything's possible.
If you find somebody with a great head on his/her shoulders, someone who conducts his/her business professionally, works well with and respects others despite disagreements, and has a solid work ethic, you've struck gold.
Hiring a mix can be a difficult task. The benefit is that you aquire someone who can file multiple roles. The obvious downside is that you're probably going to get someone who is only filling one of those roles because they have to. When push comes to shove most people in that spot would prefr to one and not the other. Given the choice, I'd take the kick a** coder any given day. Designs are easy to freelance out on a needed basis and once a design is mocked up, someone with an understanding of css can run with the ball.
Michael, You can keep your tables. I'd never think of taking them from you :) I love the ability to change the css and totally modify the layout and look without touching any other site templates. To me, it's a faster and more versitile method of development.
HTML 4.01 Specification - 7.4.1 The HEAD element: Start tag: optional, End tag: optional
Missing head-element in HTML is a bandwidth bonus :P
Good call, if you'd said that in the interview I would have hired you on the spot and given you a company fighter jet.
I have a few problems with this kind of employer. It's a long post, so I blogged about it here.
My post is not an attack, but I genuinely want to help this interviewer become an even better manager. I think I can speak from experience. I'm 40, have twenty years in the IT industry, and have been programming since I was 12. I've been a manager for 8 years and have had job experience as a programmer for 15 years.
Hello Mike, you've definitely made some great points in your post. I can't say I agree with all of them, but I appreciate the constructive criticism. Also, at this point getting feedback that is on-topic (read: NOT about css versus tables debate) is quite a breath of fresh air :)
I just ran across this post and I thought I would add to some of the comments it's generated. I have been in both seats at the interview table and believe that some of the questions could use a little tweaking.
1. What industry sites and blogs do you read regularly?
Also, don't forget newsgroups. But at the same time, interviewees aren't necessarily going to be up on what you consider the place to be for industry news. It may be a good question to probe personality, but it doesn't tell you anything about their programming ability.
2. Do you prefer to work alone or on a team?
Does preference matter? I prefer to work at home in my underwear, but I can make an excellent addition in a team environment. Try something more like, "do you have any problems working in [our environment]?"
3. How comfortable are you with writing HTML entirely by hand?
This is a good question. However, some very simple things like an image tag can be deceiving. I spent 5+ years at a contract where all images were served through a function that would alter the path depending on the server environment. This is the same as a connection string for a database. It will be used throughout the lifetime of an application, but you write it once, encapsulate it and don't look at it again for a long time.
4. What is the w3c?
Should be a given for a web developer.
5. Can you write table-less XHTML? Do you validate your code? Weed out the old-school table-driven design junkies!
Table-driven design junkies built the internet you grew up on. I know and embrace the benefits of CSS. But it depends on the market you are trying to reach. If you want to provide a consistent experience across as many browser platforms as possible, you are going to generate 800x600 table based designs. If you are running a $1 billion+ e-commerce site, you want to serve content that looks the same on Netscape 3 as it looks on Standards Compliant Browser 7.0. On smaller sites, losing .1% of you audience doesn't matter, on larger sites you don't want to lose anyone.
6. What are a few of your favorite development tools and why?
For a competent developer the IDE doesn't matter. It would be better to ask how comfortable/competent they are with the IDE used in-house.
7. Describe/demonstrate your level of competence in a *nix shell environment.
These are basic tasks that would take 30 seconds of memorization to learn.
8. What skills and technologies are you the most interested in improving upon or learning?
Similar to "where do you see yourself in 5 years," but not as informative. If an interviewee is interested in Java but you are a Buzzword 2.0 oriented company, is that a plus or minus even if they are a Buzzword guru?
9. Show me your portfolio!
You seem to be looking for more of a designer. Designers aren't developers.
10. What sized websites have you worked on in the past?
An excellent question. Ask about the testing practices, source control, etc..
11. Show me your code!
Sorry, most of my code doesn't belong to me.
12. What are a few sites you admire and why? (from a webdev perspective)
Good question, depending on what you are looking for.
13. Fix this code, please.
I would ask them to pseudo code a typical problem. What are they supposed to be spotting on broken code? A missing semicolon, non-existant functions, logic errors? The compiler will tell you where the error is located. I switch between languages depending on the job. Sometimes you forget the syntax between Buzzword 1.8a and Buzzword 2.0. Pseudo code solves that.
14. I just pulled up the website you built and the browser is displaying a blank page. Walk me through the steps you'd take to troubleshoot the problem.
Are they interviewing for developer, tech support or sysadmin? It's better to ask them for a perplexing problem they have run across before and the steps they took to solve it.
15. What's your favorite development language and why? What other features (if any) do you wish you could add to this language?
This is an interesting question, given your reason behind it.
16. Do you find any particular languages or technologies intimidating?
It would be better to have them rate their skill level of the languages they have listed on their resume (along with languages used in-house).
17. Acronym time
Knowing the acronyms has nothing to do with their skill level. I would venture that a lot of developers do not even know that ASP and PERL are acronyms.
18. What web browser do you use?
I would have no idea what you were asking. Combine this question with a testing practices question.
19. Rank your interest in these development tasks from 1 to 5 (1 being not interested at all, 5 being extremely interested)
I'm not sure about this one.
20. What are a few personal web projects you've got going on?
I don't have anything against this question, however, your subsequent comments (and other comments related to your first question) indicate that you are looking for "passionate" developers who also program for a hobby. There are excellent programmers out there who are only "clock punchers". They have years of experience and know the pitfalls to be aware of. But they also have real lives outside of the cubicle.
Overall, some of the best comments came from SuperMike and Mr. Martinez. Interviewees are also interviewing you, and the presumptions you make ensure that you will not be getting some of the best developers that are out there.
I can't view the ad that was originally posted, but you're definitely going to attract lesser experienced developers with your line of questioning. The wording of your questions implies that you know the answers that should be given. But it is better to use the questioning to find out more about personality and previous work experience. You have the resume, verify the references.
Overall, it seems as though you are trying to find personnel to fit into your Buzzword 2.0 ideal, rather than finding good developers to help lead you in that direction.
Accessability? View source: https://www.freedomscientific.com/
Irony or what?
I don't get why anybody would spend so much time on Martinez. He's either a complete idiot about web design post 1997 or a troll. In either case, he's not worth the time. Let him have his opinions and leave it at that.
I chose not to get involved in his argument after reading this:
This shows how very little he knows about CSS. So I look at his website after reading a couple of times how ugly it is, and concur. I then looked at the source code, and realized how little HTML he knows.
Also, if you have to comment a page that simple, your code is kaka. Plain and simple.
Should read:
Sounds more like a quiz than an interview -- that said, there's nothing wrong with making people pass a quiz at an interview. :-)
* What are the biggest accessibility mistakes you see on the web today? How do you avoid them?
* What is a character set, and how do you state one? What us UNICODE?
* What are the W3's current recommended doctypes, and why would you use one over the other?
* What are SSH, SFTP, and SCP?
* What's the difference between an element, an attribute, and an entity?
* What's the benefit of using server-side includes?
* RCS, CVS, Perforce, Subversion -- what are they? Which do you prefer?
And so many more.
Also, tables for layout *are* stupid. ;-) People who don't think so have never tried to use the web on their mobile phones. Or with a screen reader.
Great questions kerri! I especially liked the one asking the differences between an element, attribute, and an entity.
By and large, I found this article very inspiring and intriguing. And it got me thinking a lot about my habits, skills and all the stuff I want to learn and do.
However, after reading the whole shebang, I had this funny idea: Why not see how well they endorse their own preachings?
To make a long story short: This page has 144 validation errors.
Time to hire a new web developer?
binggeli - The errors are coming from the blog entry content which is generated by FCKEditor
Also I'm sure there's a few rogue ampersands.
I thought most of it was missing alt attributes for images in people's avatars (or in the SEOmoz "no photo" image).
Yes, you're right. I added alt tags to the avatars and it dropped it to 26 errors, most of which are just ampersands.
Thank you Mr. Thompson. You must have been reading my mind.
I think the list is good, but obviously some of the tips apply to some companies while some don't. Personally I couldn't care less if people know how to copy folders recursively in a shell, while valid xhtml and css is very important.
Besides, the tips are purely based on skills - socializing is a big part of a work place. My experience tells me that programming skills can be learned, while social skills are a bit harder to change...
Regarding question #6 about favorite dev tools, 'notepad' is not necessarily a bad answer. If they show you a quality portfolio and say they prefer notepad, or some other text editor (Emacs, VIM, Scite come to mind), then you've got somebody who knows the hell out of their markup and programming languages and doesn't rely on automatic code-completion for anything. Granted, text editors may make team-based dev environments a bit more difficult, especially with regard to source control, but that's probably a small price to pay for someone who knows their stuff so well.
My notepad comment really hit a lot of nerves with people.
If someone is using notepad for serious development it doesn't give me the impression that they're exceptionally experienced at writing code, it tells me that they have done enough of it to use a -real- editor.
It's like asking someone to build you a house and they grab a spoon and start digging a hole in the dirt. Sure, they'd have a very intimate knowledge of every aspect of the little hole they dug, but it certainly doesn't make them a better contractor.
I guess my point is notepad is too blunt a tool.
Yes, but you also advocate vim and other plain-text editors with *syntax highlighting*. That's about as good as saying a contractor with a spoon and someone standing next to him to tell him the hole he dug is a good one is better than the aforementioned ;)
Thanks for the list Oatmeal. I am going to use it in a few minutes while interviewing a designer. I recalled seeing this a while back, so I am glad I found it again.
I am surprised that you wouldn't ask the candidate what they know about search engine optimization as it relates to web design. To me that is pretty important, especially if this person is going to interact with SEO folks. To me, the worst kind of designer or developer is one who is totally ignorant of SEO to the point of arguing against it or giving SEO concerns less priority.
I recently made the statement that the two enemies of design are usability and SEO.
- OldSchool
What is wrong with just typing an image tag like in number 4? is that wrong if that is all they type or what? Maybe i am missing something.
The correct syntax is <img src="...">
Good post, still very relevant. I think some very good developers still use notepad from time to time for its simplicity.
Thanks for the great list of questions. Â This site was a good resource as well:
questions to ask in a programmer interview https://programmerinterview.com/
Just coming across this topic in 2012, when searcing for tips for web developer interviews, and found the whole CSS vs. tables discussion very interesing... Has anyone noticed that the annoying guy's web site is now done completely with CSS? Not a table in sightXD lol Seems like he finally got the point that his development skills were a little outdated. However, his web site is still ugly... Having a lot of visitors to your site is good, but I think in his case it only speaks for his content-development skills, not web design... Maybe he should just stick to that:P Anyway, sorry to bring this topic up again after so long>< I just found the whole argument hilarious, especially seeing that he is now doing what he so adamantly, and egotistically argued against...
kmafh...I was gonna do the exact same thing, LOL...hilarious :) Â Trolls haven't changed one bit in the last 6 years :)
Funny... I thought the exact same thing.  Wandered here in preparation for an interview that I need to conduct and found myself wondering what this guys website looked like now, 6 years later.  Not a single table to be seen... Â
Arrogant people can be so infuriating sometimes, no matter how right (or wrong in this case) they may be...
Same here. Also, Oatmeal has gone on to bigger different things with https://theoatmeal.com.
A lot of the analysis in this article was terrible. Â I agree with the guy that mentioned how he "uses tables and wordpad all the time". Â His analysis of older skill sets was very accurate. Â If your developing on a linux server and you can't use vi, your pretty worthless to me as a developer. Â And the what is w3c question .... I'm hiring people with real degrees (Electrical Engineering etc ...), not devry grads ... who gives a crap about w3c????Â
On a serious note, these questions are great and personally I'm a little intimidated by some of them. I guess this may be because of my extremely terrible experience with a previous company. I have forever had embedded in my head that much older developers will drill me on completely unrealistic questions and expect me to solve extremely ridiculous things that normally takes 20+ years of experience in order to do so ( this has happened to me in the past ). I was even told at one point that I shouldn't have to use the documentation and that I should be able to remember it all...Although I can answer most of these, I've become very cautious now. I myself prefer python, but I've only done web development for a year now.. and web design for four years. I know all of the acronyms ( of course ) and I am avid with HTML and CSS. Prefer to normally use any Jetbrains tools to write any and all code.. PHPstorm, PyCharm, etc... I have no problem taking criticism , but it makes things extremely difficult when server administrators like to go rogue and "take the company by the throat" sort of speak. As well as belittle the developers. I'm good at what I do, I know I am - but I wish at the same time people would specify what they want exactly.. or at the least make it obvious like this article. You can tell you're seeking someone who is a mix of web design and back-end development.Thank you for this post, it's given me some insight. I think I would lock-up on number 13 since I prefer to code quietly by myself. Although I guess that would depend on how large the chunk of code is. Regardless I know I would not nail this test, I might come close.
I like the questions and the long discussion. : )
I've never been good at answering flat technical questions, but do relate to the ones mentioned above as they bring out the experience a person has. Recently, I started putting together the list of questions on this new site to organize your online research, and naturally started with interview questions, lol!
https://www.collazz.com/displaypage.php/Web%20development%20interview%20questions
That will help to refine our list here ;)
Thanks SEOMOzzers! Conception Web
This blog post will help me to interview and being interviewed as i am a web developer and also an Interviewer. :-) Thanks!
good stuff, thanks
As one of those guys you'd be asking these questions of. I'm proud to say I only thought #18 was unfair. What I USE and what I TEST with are two very different things.
The way I would have took that question would have been "What kind of a surfer are you?" It sounds like a question aimed at your web-cultural context, not whether you, as a developer realize that you need to use all of the damn things to check your site on, or at least all of the ones that have more than .5% audiences to make sure everything works right. Because "DUH" who wouldn't know that right? Oh, oops, I guess I just should have assumed my employer might be ignorant.
"Well, Mr. Interviewer sir, I like Firefox. It's not quite as efficient or stable as it once was but it has all these neat toys I can whip out on the rare occasion that somebody's website does the unexpected. This has not happened in a while, however so I thought I would see what was going on with Opera and what all the fuss was all about with the latest Beta of Explorer recently (not much BTW - still stickin' with the standby)."
If you notice you're getting a surplus of shitty answers it may very well be that you've found the ultimate question. More likely, however, you're probably not asking the right question.
Give the poor bastard on the other side of the desk some credit for having to try and guess WTF your intentions are. The intention behind #18, I suspect, was to bring the list to a neat and even 20 questions, not to find a good candidate.
We are, ultimately, the seers and wizards of the modern corporate world. We should have an appreciation of the practical bits that tend to be ignored when it comes to recognizing talent vs. not-being-useless. You know, all that proof-in-the-pudding stuff.
Anyway, best o' luck with Gen-Y. They're smarter than X by and large and I say that as someone born in '75. They're like X without the cynicism. Just the curiosity. It works well for them.
Now, these questions do not say anything about a web developer at all, "what blogs you read?", "what you use?", "show me some code"... You've got to be kidding me.....
What about:
How do you determine scope? Do you have and established Discovery process? How do you test your sites (e.g. eyetracking? How do you work with the sikte once it is done (web metrics).
One wants to establish that you have somebody that can understand the bigger picture of your company, understands the visitor and builds a site for them.
I do not saw one relevant question up there.....this is a job description for somebody that is looking for an entry level clerk for data entry.....
Ja, ask these qustions and you will find some great people.....
Best, B.
Really great stuff to understand web desinging interview environment
Thank you for compiling this list. It's an interesting litmus test, and mirrors a lot of questions that I have used to hire many excellent developers in the past.
Thanks for sharing.
#11 is the key: we are all out on the Web here people, let me see what you can do! Having code in front of you also provides a good jumping off point to start a conversation, like "why did you position this element absolutely in CSS? Can you think of another way to do it? Is there a benefit to one way over the other?". I would never ever go to an interview as an applicant without some example of work to point to. That would be like a photographer without a portfolio.
#6 I like the question, but balked a little at notepad being an automatic fail.
One of the best CSS people I have ever worked with (we called him "The CSS whisperer") used only textpad, and was brilliant with it.
Usually when I ask people what IDE they use I try to use that question to get a feel for their experiences, so I wouldn't just throw someone out for using notepad (I would for the
I answered the same web developer questions plus one when that was posted as well. https://www.ahfx.net/weblog/115
I am preparing for an interview and these are some great questions. I also found some good ones at www.acetheinterview.com
On question 1, I'm not sure that being really passionate is a always a good thing. Certainly not all, but many (or maybe just the most vocal) passionate Web developers often seem to be the first ones to try to use things just because they're technically possible. The Web as a whole never seems to learn: we do stuff because we can, not because we should. The blink tag came out and the Web looked like Las Vegas. Animated GIFs came out and it was one giant whirling dervish. Frames... "wouldn't it be cute if you had to peel the frames apart to see the site like curtains?" Actually, no. Scrolling status bar messages. In-page Java banner scrollers. Evil list- tables (I'm really glad to see that you noted that a table for tabular data is semantic markup). Now we're getting our AJAX baths, whether we need it or not, and I suspect that hit counters in RoR aren't far off.
Personally, I'd prefer to hire someone who keeps their skills up but maintains the amount of distance necessary for good judgement. Give me someone who sees through Flickr's AJAX and tags (if you call keywords something else, you, too, can have a "revolution"!) to the fundamental usability problems the site has over someone who can't see past the buzzwords. I'd look for someone who's passionate about creating the best user experience possible, regardless of the technology used to get there.
Though I would question why they hadn't at least found TextPad or TextWrangler to maybe work more a little more efficiently, anyone who can hand-code in what's possibly the most feature-starved editor on Earth clearly has some serious skills. One of the best programmers I know wrote what could fairly be called an elegant masterpiece of a full-featured and complex theater lighting program in DOS' EDIT.COM. Having a better editor won't make you a better coder any more than a good camera will make you a good photographer.
This is definitely a thought-provoking list, nicely done!
Right on with the questions. Preety much validates what I've been asking candidates for years. And I'd start with #1, as well. I remember about seven years ago, I was interviewing for a job in Boston and this guy asks me "Where do you hang out on the web?" Caught me totally by surprise. I didn't have an answer.
About two weeks ago I ask this obviously inexperienced guy what his favorite web sites were. Apparently he only reads business-related stuff. Ok. Two minutes later he states that his objective is to get an MBA. Thanks, man, you've wasted five minutes of my time. We didn't even get to the code review.
Decent list of questions but some of the "analysis" provided by the author is stupid to say the least. Instead of focussing on hiring the best person, some interpretations (of the answers) reveals only the interviewer's biases and insecurities.
An interview is supposed to be biased. The goal is to find not only the right person for the job, but the right fit for the company. I personally don't think there is such thing as an unbiased interview.
Just for the facts: CSS vs. Table Challenge Why tables for layout is stupid
Having said that; it really boils down to identifying ones target audience. If you wish to broaden your reach, it is 'recommended' that the developer conforms to some set of standards.
This is beneficial in numerous ways, as there is a wider and growing support for W3C compliant oriented development. Take new line of CMS's, WYSIWYG editors, for instance; there is a larger trend towards sites being written closer to the recommendations set by W3C. The general incenses are that, these methods reduce development and maintenance costs.
One can always argue that non-compliant code works. In fact, simple text/plain information on a page works without the need of any markup. If the developer wishes to take it a step further, and make the site more appealing, usable and accessible to their readers, then even in this case it is recommended that they follow the guidelines (not rules), set by such organizations. Only then a good user conversion can be obtained.
Please keep in mind that these recommendations are not simply drawn together by the academic minded people. Specifications are established after a wide number of tests; compatibility, flexibility, and moving forward with the needs of today's requirements on the Web. Many companies invest a lot of time and resources into developing these practices with W3C. Surely they justify the need for it?
Why wouldn't one make use of such established research results (standards) and reduce the cost of their development?
Wouldn't you agree?
Well said.
Here's a question for you - I just sat in your office and answered all of these questions. Lets say I answered them to your satisfaction (in other words, correctly). Now, how much do you offer this person in terms of salary?
I realize that this is a seperate topic altogether, BUT I want to point out that if you are going to put someone through all of these "tests", salary (or at least a range) should be discussed beforehand.
The levels of compensation are usually determined aforehand, by HR people, who will then determine the offer made based on the interviewer's input and other factors such as talent, experience and immediate need for hire.
Answering these questions correctly does not determine a person's worth. You still have to quantify the answers as well as applying the ol' human factors quotient to the problem.
Mike, the topic here is on job interviews, and if you were interviewed right now by an employer that cared about webstandards like I do, you'd have lost the job by now.
I'm right in the middle on this one at the moment. Every chance I get, I try to move further away from tables toward CSS ... but inevitably, something will come up that I cannot fix and since I'm on a tight deadline and/or tight budget (usually both), I don't have the time to play around until I fix it. So for the sake of keeping the project on time and on budget, it's back to tables. Gotta find a client who'll pay me to take my time and make the switch. :-)
I'm more of a writer / marketer, anyway. Design/Coding = not my best stuff.
Rand is right about the links. I've had 2 sites that have been profiled on some well known css galleries and while the traffic might be meaningless with regard to conversion, the juice that those sites pass can be incredible in volume and quality. So you have to ask yourself.... When was the last time your coder brought 1200+ links to the table?
Most excellent list. There is a distinct difference between hiring contracted assistance, and full time employees as well, and certainly pros and cons to each.
I always hope for Wimps and Lamps, or it's probably not a project I'd be keen to be a part of on the technical side, and it's no fun being a part of a project without root access:)
A default platform preference can be a good thing depending on what the rest of the project will entail.
Now if someone can answer all those, and get through the "salary commensurate with experience" phase, it sounds like it would be a great client/customer relationship.
What software and TOOLS do you prefer to write faster code?
It's HARD to kick off tables, and quite easy to relapse.
Thanks for a nice post for the bookmarks:)
I hear you about kicking off tables. I remember when I first tried to make the switch I'd end up getting really frustrated with things and think to myself: "I could do this with tables so much quicker!" Occasionally I'd relapse. Now, however, I'm one of those uppity css purists ;)
Great post. The only thing I'd dare to add is somehow check the basic understanding of HTTP protocol and web servers similarily to the knowledge of HTML (question number 3). For instance ask to emulate an HTTP session, i.e. telnet www.domainname.com 80
GET / HTTP/1.1 host:www.domainname.com and things like that.
Good call - perhaps even make it simpler and ask what port number most http traffic is served on
How do you identify and what measures do you take to reach your target audience?
good questions.
most of them are relevant except for part of #5, all of #9, part of #10. basically the ones that deal with the way a site looks.
are you hiring a developer or a designer? or a mix?
i'm personally a full blown developer. backend, web services, .NET, MS based, SQL, can write SQL with my eyes closed, no probs with CSS, etc., work for a large publicly traded media company who everyone knows in hollywood, blah blah blah.
but my design sucks. i can let our designer know what form field does what and what he needs to do.....but i can't tell him how to make a site look good worth crap.
i guess i have that "i'm a developer, not a designer" mentality.
i consider myself a great developer for someone who only knows MS
James - we're hiring a mix (designer and developer). We've been on the hunt for a week or so now.
Who writes out an html document from html to /html ? Doesn't efficiency impress? It takes 2 seconds to copy and paste a generic and go from there. Typing stuff out takes more time, risks typos, etc. And whaaat is wrong with notepad, gedit, vi, emacs, etc? I can do something infinitely more powerful (and impressive?) with a cli and vim than anyone could do using DW. :)
enndot - I'm not endorsing publishers ( I personally hate DW) by any means.
Saying you use vim would have been a very good answer to that interview question. :)
whew -- glad that's cleared up ;-)
You might want to edit that to basic text editor, or explain that you meant you expect a more advanced editor than Notepad.
I'm considering just putting in "ms publisher" in place of notepad
ok, i've been designing websites for 10 years now. i haven't been on the development side much, but consider myself an expert when it comes to html/xhtml/css and design fundamentals. i've always coded by hand using notepad and have never used any 3rd party app. i make all my code as complaint and valid as possible.
with that said, there are exceptions to everything. standards are guidelines, not requirements. i have to admit being an old-schooler that i have held on to tables for a long time and just recently switched to 100% css for layouts.
BUT it's not perfect, for instance what i used to be able to write in 10 lines of code it now requires near 30 lines of code to do the same thing in css. as of this point tables are more universally equal in terms of cross-browser support. css requires numerous hacks (some of which force you to break standards) in order to get the same results.
so to that i say to each his own, but one thing i never compromise is a universal look cross-browser while keeping my code as valid as possible and as accessible as possible. in theory i would say that css wins in all regards, in practice i'd say it depends on the application and cirucmstances.
I'd take a non-compliant page that's usable by 100% of my audience over a 100% compliant page that won't even print.
That statement I'd agree with... Pure CSS is certainly a challenge to make cross-browser compatible at times.
There is media="print" specifically to handle that.
Resource: Media types at W3C
Now, for your next trick. Weed that list down to the 10 that actually matter.
Knaut.
Can't be everything to everyone, I guess
My point exactly.
You had a point?
My apologies. I think your list is interesting, I just wonder, as I do when I see 20 point lists, if there isn't a way to streamline them.
No worries, it's more of a big list to choose from than a rigid list. I'm not saying everyone should ask all these word for word in an interview, just pick the ones they think are valuable.
Why does a web developer need know anything about *nix command line? Are you hiring a web developer or a *nix system admin?
Plenty of web developer positions require at least basic command line knowledge.
I just got a great email from Dave Bushnell regarding item #9, "Show me your portfolio!"
I think it's a matter of age. People who're too young to have done any significant table-based work, who came on the web scene late (post 2000) and heard "CSS is good, tables are bad" from the get go, tend to try a "purist" approach.
They also tend to be employees. They want to spout the latest fashion to impress a boss.
People who're running their own show want a solution that WORKS above all. Something that requires more code, is less cross-browser compatible, more complicated and requires endless hacks is a step BACKWARDS. CSS is great for styling, and terrible for layout.
Even if it were true that it allowed separation of info and presentation (if you have to mark up each tag, how is it separate), WHO CARES?? Only people who've drunk the Zeldman koolaid and convinced themselves these things matter!
Who cares if something validates? The only thing that matters is how the user experiences the site, and how convenient it is to code. Entrepreneurs value their time, employees don't.
I would NEVER hire somebody who was dogmatic about stupid things like XHTML compliance, "pure" layouts that require twice the time to code and don't work in IE properly etc. I WOULD hire somebody who wants to get the job done and will use whichever tool fits. If they answered yes enthusiastically to (5) I'd end the interview very quickly!
Life, death, heaven and hell, these are goals worthy of pursuit. But buzzword compliance??? Grow up!
We're still on the tables vs css debate?
*stretches and lets out a big yawwwwnnnn*
tables bad, css good
oompf!
Most of the people I have seen code in CSS don't take more time. You should check out my StopDesign link earlier, that only took a few hours to redo the entire page.
Err, I guess that'll be me, and I guess you're right about the age thing... People who're to old and dried in to have been able to make the switch from tables, who came to the web scene early (pre jurassic) and heard "Hey, you know that you can modify tables so you can control the layout like a cut'n paste collage", tend to try an "old'n grumpy" approach"... Something that requires more code, Like tables Remember that with css, the styling information (which is repeated on every frickin' page of your table-based site) is redused to one single file which is even cached for lower bandwidth usage... is less cross-browser compatible, Feel free to back up this... The only big browser with css problems is IE and many of those are being fixed in IE7 (and for the rest we have conditional comments) more complicated Some people feel its more complicated to wade through tons of code in hundreds of files instead of one or a few files, which you even can search through to find the element or class you are looking for... and requires endless hacks is a step BACKWARDS. Hate to break it to you, but tables is just one big lame hack of an HTML-element intended to present tabular data... CSS is great for styling, and terrible for layout. How? CSS has many different ways of doing layout, you can even simulate tables execept some browsers don't support it (which is a valid argument, but you can hardly blame CSS...) I feel that this argument comes from people who are used to tables and find it hard to switch to css because they try to replicate their table-techniques with css. Even if it were true that it allowed separation of info and presentation (if you have to mark up each tag, how is it separate), WHO CARES?? Only people who've drunk the Zeldman koolaid and convinced themselves these things matter! Try to remove the css-file and you'll see that the strutured information is separated from the presentation... And when you markup the elements with ID's and classes your only adding meta-information to the element, no presentation there (unless you use presentational names). This meta-information is also useful when working with client-side scripting... lWho cares...? People who like to have a simple job maintaining the site care, people with screenreaders care, people with lynx care, people with cellphones care, the guy taking over your job care...
Just because you take twice the time to code a site using webstandards, and still can't make it work in IE, doesn't mean everybody does... I bet I could code a page just as fast as you, if not faster, make it work cross-browser and have an end product that is far easier to modify and maintain...
At my place of employment we've seen the rise and fall of MANY web developers.
They come in touting standards -- then use Dreamweaver to sling some ASP. They were fired (95% of the time) because they couldn't handle the more technical aspects of web development.
If they can't make a form or server-side script work on one of our clients' sites, they were canned. The entire hire/fire process could've been circumvented had we asked a few of the more nerdy questions above.
Being a web developer that refuses to adopt new techniques and shys away from higher-level computing means going home without a job. (For a web designer, though, no tech-savvy necessary)
And to Mr. Martinez: I didn't leave in a huff. You had nothing constructive to add to the discussion, so I dropped it. All you've done in your posts is side with what others have said, drop a few Tolkien references, and let your own opinions whither on the vine. You are sadly misinformed, and too stuck on yourself to listen to anyone that doesn't speak fluent Elvish.
It is possible to develop sites that are valid XHTML/CSS, follow web standards and accessibility guidelines, work in all browsers released in the last half decade, AND look nice. It's just a bit more work.
Ask someone without sight how they like table layouts, and how their screen reader handles the non-semantic markup.
Keep in mind you're touting tables on an SEO blog that is almost completely semantic/valid (spare a few unescaped amersands and missing alt attributes).
If tables truly are better, why are most SEO sites done-up with XHTML/CSS? Why did the NY Times just redesign with a div-based layout, using tables where appropriate?
This is not some new-fangled techo-trend. It helps people find and navigate content better than any previous methods of browser-based content delivery.
Again, the accessibility provided is generally required by law in many countries: https://www.w3.org/WAI/Policy/
Perhaps it's time for Mr. Martinez to leave the Shire and start worrying about others. Some people need these practices in place to live their life with fewer barriers.
The latest trend is CSS for web designers, ajax is also very hot and how many sites use it when its not realy required, the nexy thing you'll be saying is it's better to develop using an apple mac trends and coolness come and go in business performance is the key for most firms. If you can build the same layout and functionality using both but using CSS takes 20% longer then CSS/XHTML is not the right choice. If CSS/XHTML was so much better than why are yahoo etc still using them CD's are much better than vinyl when was the last time you used a vinyl record !!
Don't know, if they're so much worse then why do MSN, Slashdot, and Myspace use xhtml/css?
Michael, I'd certainly choose Rands young and, by your appraisal, less experienced team any day. I don't say that because of their age. I say that because of their flexibility and desire to understand, experiment, and adopt items like CSS and Ajax.
Personally, I like the flexibility of CSS and I'll never go back to tables. It's a choice that I've made and I'll stand firm in my belief that, for my group, it's what serves us best from both a creative and business stance. To what degree? To the point that I would not hire anyone that didn't feel the same way because it would simply be counter to the development process. I want more than output. I want to see people grow and develop their skills.
The one thing generally like about people who prefer CSS is that they are passionate about it. You just don't hear people gush about their tables are do you?
Good list. However, I disagree with the following: "# What are a few of your favorite development tools and why? If they say notepad you've obviously got the wrong person for the job." I don't use Notepad, but after putting together the template for the page and general HTML with Dreamweaver, I'll usually switch to NoteTab Pro to put together the ASP. I find that a plain Jane editor allows me to format the code the way I want, as opposed to having Dreamweaver decide how things should be formatted.
George - don't make the assumption that by knocking notepad I'm endorsing use wysiwig publishers or bloated IDEs. I personally hate DW. I meant it more in the sense that most serious developers use a real text editor (ultraedit, editplus, notepad++, crimson, bbedit, vim,etc)
Finally I see the old Michael Martinez poking out!! :)
I thought you'd been largely tempered or mellowed out - glad to see the fire's still there. I'm anxiously awaiting your next blog post... ;)
To everyone else - beware the beast! Michael's infamous for his debating - I see our first 100+ comment thread upcoming...
Look, there's no debate.
Whether the developer is going to be tied to a kernel or a GUI, there is simply no excuse not to use a text editor other than Notepad/Wordpad.
Great, you have proper line return handling with Wordpad. But while you reach for the mouse to manipulate text, I'll be grabbing a cup of coffee -- because I took the time to master an advanced editor like (g)Vim (or Emacs!) and finished what you were attempting in half of the time. If text manipulation is part of your career (developer/programmer/et al) then you need to use a powerful editor. You'll become amazingly efficient, and make fewer mistakes (Notepad/Wordpad don't have native syntax highlighting or indenting).
I'm glad we have an old stalwart hell-bent on keeping the web tied to tables. Awesome.
Well sir, while your sites suck bandwidth and client-side CPU (unless you're specifying widths/heights for each table cell), I'll be laughing behind my Vim window, thumbing through my copy of CSS Mastery.
If you think that tables are easier to manage than standards-based div/span style markup then that's because you're just not equipped to write good code. If you can't cut down on the amount of markup, you're doing something wrong.
You may be a great marketer, a sub-par SEO expert (without embracing semantic markup, you are in no way qualified to dole-out SEO advice), and even a good debater -- but there is no debate.
You are arrogant, Mr. Martinez. Your websites that you referenced should be sent to /dev/null/ (if you don't get the joke, you are not a web developer). Do you not have anything better to do than troll this board, defending your opinions? When's the last time you made the effort to better yourself by learning something new?
Web standards and semantics will win. That's why MS finally caved to the demands of developers with IE7 (well, the ones yelling "CSS").
Standards and semantics are faster in both file transfer and render time, they are more accessible to search engines and the impaired, and they are far more flexible. Done properly, you can redesign an entire site just by changing a stylesheet. I'd like to see your tables do that.
Some countries have accessibility and web publishing laws in place that your tables would fail gloriously.
https://www.csszengarden.com https://www.webstandards.com
While I agree with much of what you say, Michael (Thomson), that one piece is dead wrong. Code has such a negligible impact on SEO that it's barely worth worrying about (except as a way to get good links from the webdev community). I think Mike Davidson did some public testing on the subject.
(so many Michaels -ahhh!!!)
Umm, you really should take a close look at the sites that do well in various SERPs. You'll find plenty of sites that don't fit your vision of how sites should be developed. Code has next-to-nothing to do with it.
uh, I'm pretty sure I remember reading about the way Google ranks pages by their construction...
like this
because "search engines" basically means Google, right?
I've earned my arrogance. And is that the best retort you can muster? And why are you still trolling? Sheesh, go outside and get some fresh air!
As far as SEO goes: I am a programmer for one of the top three in the world -- trust me when I say that semantics matter. (I do freelance design on the side, sort of a sex/money career situation)
Again with the feeble attemp at discrediting an author. Why not put some of your hot-air behind your points above and actually defend your Wordpad/table combo which you seem to hold so near and dear?
I'm leaving. Mr. Martinez can continue his little quips, this conversation is going nowhere.
Drop me an email if you pull your tail from your legs and decide you'd truly like to debate these issues.
michael.nospam (at) gmail.com
Great stuff. Forwarded that to my partner, he's the one who "qualifies" our staff. Personally the first selection we do usually discard 75-90% of the appliants by looking at their portfolio and looking at their CV. But to distinguish the good from the great, those 20 questions are a killer :D
"Personally the first selection we do usually discard 75-90% of the appliants by looking at their portfolio and looking at their CV."
how?