Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I read an article today that listed some basic questions about web development:

  1. Describe how POST data was submitted to a server by a browser.

  2. Explain a number of HTTP status codes (except maybe 404 and 500).

  3. Explain SOLID or name a design pattern.

  4. Explain ways to improve a page load speed or user experience.

The author says "if you can’t answer the questions above there are a lot of people who wouldn’t think of you as a Senior Web Developer."

My questions are:

  1. How relevant are these questions in respect to real life web programming and scalability?

  2. How true is that statement? In other words, do you consider this knowledge a requirement to be considered a Senior Web Developer?

  3. I was able to answer all the questions, too easily it seemed, so I'm wondering whether it is effective to use these or similar questions to screen developers rather than asking them to write sample code.

share|improve this question

migrated from stackoverflow.com Mar 28 '12 at 11:55

This question came from our site for professional and enthusiast programmers.

9  
For what it's worth, those are examples of questions I ask in interviews for entry/jr level web devs. –  jcmeloni Mar 28 '12 at 12:04
8  
@Baba - I don't think he's saying that only senior developers can answers the questions, but that in order to be considered a senior developer, you should be able to answer them. –  Mike Partridge Mar 28 '12 at 12:34
2  
He doesn't list my top question for web developers - "What information from the client can you trust", or some variation(s) thereof. –  Clockwork-Muse Mar 28 '12 at 20:52
11  
Never memorize something that you can look up. ~ Albert Einstein –  Zirak Jan 22 '13 at 12:11
1  
Instead of asking to explain several status codes, I would ask them to explain why there are many more status codes than 200 and 404. –  Bryan Oakley Jan 22 '13 at 12:15

8 Answers 8

up vote 34 down vote accepted

Those aren't the worst interview questions I've ever heard, but it is possible to be a great Senior Web Developer who gets things done and not know the answer to all of those.

I wouldn't count someone out just for not being able to explain the lower-level details of how a POST works, and I wouldn't think any less of a person who couldn't name some HTTP status code, so why even bother asking these types of questions? These types of things could be explained to the person in the first hour of their first day on the job if necessary, or discovered via Google as needed. That's how I learned them when I needed to.

You can find out much more about a person's abilities by asking them to work out a real problem, either on the whiteboard or in pseudo-code. Then ask them to talk you through some of their past projects, successes, failures, etc. Much more useful than "name this thing, name that thing" questions, which mostly amount to trivia.

share|improve this answer
2  
Wow, how did this become the accepted answer on this question?!?!? The question specifically mentions this is for a senior position. Pretty much all of these questions are so basic they almost are there just to weed out non-programmers, they have nothing to do with memorizing things. Holy shit are web developers considered so poorly that it's okay if they don't understand anything at all about the most basic concepts of their work?! –  RibaldEddie Jan 22 at 15:04
1  
The point is not to see if they know something trivial or not. The point is, if they can't answer those questions, how on earth they've been developing real-world applications? I mean I can't think of a web developer who hasn't come across different known HTTP status codes while coding some real-life applications. –  Saeed Neamati Apr 6 at 8:55
2  
It is possible to be a great Senior Web Developer who gets things done and not know the answer to all of those Can you mention one? –  Tom Sarduy Nov 26 at 6:59
  1. How relevant are these questions in respect to real life web programming and scalability?
    A: All of them are relevant - it only depends on what level of experience you expect from the candidate.

  2. How true is that statement? In other words, do you consider this knowledge a requirement to be considered a Senior Web Developer?
    A: I would not consider 1-3 questions to ask a senior dev. As an interviewer there are other ways of finding if the candidate has basic knowledge about these.
    Number 4 is a very good one. If a candidate can expand on that one (and believe me you can expand for hours on that one), that alone would be enough to determine the level of experience for a candidate.

  3. I was able to answer all the questions, too easily it seemed, so I'm wondering whether it is effective to use these or similar questions to screen developers rather than asking them to write sample code.
    A: It's always hard to say if the questions were effective or not. From the interviewer point of view maybe those were trick questions.
    Think about it this way, Q no 2 seems easy (so... screening question) - BUT what if you start talking about the redirect codes. These are very tricky and sensitive since they impact on user agents and search engine crawlers (not to mention the big discussions in the SEO area with all the pros and cons about them of course).
    On top of that, you can link the answer for Q no 4 very well to things in Q no 2 and Q no 1, thus wisely amending your answers to those questions.

In conclusion:
Not sure if your specific interviewer was actually looking for these things, but in my own opinion, just from these 4 quite simple questions you can build an entire path for the interview.
Just be aware, you as a candidate, not to fall into an awkward blabbering - you need to feel the direction of the interview before expanding on any subject. The interviewer might not look to "trick" you into expanding things... he might actually look for short straight answers... again, you have to FEEL THE FLOW.

share|improve this answer

As the author of the article I can probably add some thought: none of those questions are difficult questions. A web developer who doesn't understand POST vs GET or http status codes is lacking the very foundations of web development. Many of the guys I've interviewed wanting exorbitant salaries can't answer these questions.

I.e they may have "been around" for a while but definitely aren't people I'd hire for senior roles. Apologies if you thought I considered these things as being hard. For context though, a senior dev can take these questions and expand them greatly.

Can you write/explain a POST request as an http request including header? What is your recall like if you had to write this request on a notepad? (ie you've not only seen an http 1.1 header and know what it looks but you've seen it enough that you can semi-remember it) How is a HEAD request different from POST/Get? In .Net land how is a PostBack different from a standard HTTP Post? What are your thoughts about this abstraction (love/hate?) and why? Etc etc.

They are what I call "feeder" questions. I have many of them, and they always start as beginner questions that evolve into discussion pieces. The best part about asking simple things, is you get real insight into the passion, loves/hates, fanatacism/religious thoughts on some topics and much more (ie. if someone starts talking about Nuget and mentions how it is like Ruby gems, this shows me that aren't just .Net devs and have a broader web programming view).

As a disclaimer though, these questions work for me but may not for you.

I also often do written problem solving/live coding tests, but I run mine a little differently from the norm. I like to give them a problem, ask them to talk through how they plan to solve it, and then get them to write (attempt to write?) pseudo-code (on paper with a pen) to solve it. This puts even the best programmers out of their element, and I feel gives me more insight into how they deal with a weird problem under strange conditions. I then ask how they would make their code testable, or how to refactor it. It is more of a discussion piece than anything, as this gives me insight into how they problem solve, what they know of any framework features that could help them, and much much more.

Smart guys are smart whether they know the latest IDE features or not. These are the people I want. I also will always have a brief I need to match though, so if I'm hiring for a web developer and your can't remember some HTTP status codes... well you aren't really a web developer (in my opinion). Again this is based on what I need so it might be different for you.

share|improve this answer
    
This is an excellent interview strategy, especially when interviewing large numbers of candidates. Asking 'trivia' questions is incredibly tiring after the 10th (or 20th or 30th) candidate. My priorities are 1. Problem solving 2. Technology expertise. –  Zachary Yates Jan 23 '13 at 21:11
    
Good insights. I personally think that it's important not to let yourself be thrown off by trivial or simple questions in an interview. As your answer shows, it is your reaction as interviewee that gets the real questions going by showing the scope of your underlying knowledge. "So you use CSS3?" is not a question about knowing border-radiuses but your views on backward compability, polyfills and the browser landscape - if you know to follow the interviewer's lead. –  kontur Jan 30 '13 at 7:44
1  
"What is your recall like if you had to write this request on a notepad?" Never ask questions whose answer can be found within 20 (2?) seconds of good (average?) Googling, unless you give the candidate 20 seconds and a fast laptop on the net, lest you throw away someone who was 20 seconds away from giving you the best answer to your real issue that you'll ever care to hear. –  ruffin Jan 15 at 19:55
    
@ruffin you've totally missed the point. The reason I ask for whether they could write it on a pad it to see how deeply theyve been involved in web request work. If you've had fiddler, or the net panel open lots, and lots, and lots, you could do this without thinking too much - ie you've done a lot of heavy web service work lately. This isn't a "have you ever worked on web services before" fizbin test, its a "I'm looking for a web services guy, someone who's currently really sharp on the tools". –  Doug Jan 15 at 23:47
    
Probably a "back at you". I'm getting to the point when interviewing that I think it's only fair to put a professional in a professional environment if you want to see how well they can do their job. As you yourself said, "The best part about asking simple things, is you get real insight...", which is solid advice. If they blank on which code to return on a failed REST PUT response, I wouldn't send them packing; I'd let them Google. I want to hear their real insights. Perhaps I misread what you meant when you said, "A web developer", but your example sounded litmus testy to me. –  ruffin Jan 16 at 3:59

The questions are very relevant - in my opinion, Seniors are expected to

Demonstrate experience in analyzing problems

  • Improving page load performance issues is a common task on any web project and allows the interviewer to get a good idea of the 'depth' of knowledge - improvements can be gained from browser, server and database alike, so should be a fair assessment of the whole tier / stack.

Demonstrate a hunger for knowledge and the humility to seek advice from the wider profession

  • It is hard to imagine that a Developer working for 5 years or so hasn't run into GoF, the 3 Amigos, Fowler, Evans or Uncle Bob etc somewhere along the line. Not doing your fair share of 'keeping up' is intellectually lazy IMO.

Know how things 'really' work underneath the skin

  • After a few hours worth using Fiddler, Wireshark or Chrome's network analyser, most devs will be able to give a pretty good explanation of how HTTP really works between browser and server. So no problems with the HTTP and 404 errors.

Code writing tests are great for screening junior devs. However, seniors also need to have good communication skills. The interviewer shouldn't need to put the candidate in front of a computer to tell whether or not he / she can write code.

share|improve this answer

It's far more important for a senior developer to know about software architecture than it is for them to know about "nuts and bolts" stuff like the example questions given. The senior developer role has a tendency in a lot of cases to basically be a systems analyst role. The kind of questions you've listed are okay for establishing if a lower level "code monkey" knows the basic tools of their trade, but its entirely possible that a person poorly suited to a senior developer role could answer them all correctly, or that someone who would be great for the role would fail to answer.

You should be more concerned with testing their knowledge of systems architecture. A senior developer will probably be drawing up an overview of the system that the dev team is going to implement, so it's vital that (s)he gets the architectural details right. The rest of the team will basically be implementing his/her design, after all and their work will only ever be as good as his/hers.

You might want to provide your prospective developer with a spec for a simple system (say a blog with multiple users, commenters, etc) and see what kind of design they come up with, how well it's documented, and so on.

share|improve this answer
    
This is a misnomer in my opionion. How can you make architectural decisions, if you don't understand and remember the foundations - i've seen this before in developers that call themselves "architects", and it usually appears that they've lost touch (which is easy to do if you take on senior roles and don't keep the dream alive). –  Doug Jan 30 '13 at 5:11

Questions #1 & 2 tell me that the user has a basic knowledge of what's going on behind the scenes of whatever language/framework they are using to do web programming. I stand by the belief that the stateless nature of HTTP makes web development somewhat more tricky (not necessarily more difficult) than thick client programming.

Knowing that the client is submitting a request to the server and expecting a reply (and understanding what that reply means) is necessary to debug low-level problems that inevitably crop up in any web application.

Question 3 to me proves that developer has more than a "copy-paste" mentality, is interested in the app development field and is passionate enough to learn best-practices or a philosophy around app development

Question 4 again shows that a developer has not just created an application but has worked to refactor or improve it - and has a better understanding of the underlying components.

All being said, these are some good questions -- I would ask even a mid-level developer coming in to answer.

share|improve this answer
    
Another very interesting contribution ... Thanks –  Baba Mar 28 '12 at 13:47

Given the general rule of thumb that I prefer to follow, if a question can be answered within ~10 seconds using Google, its a worthless question. Questions 1&2 fall into this category. Question 3 is borderline, it has potential to reveal understanding if taken further, but really only asks for buzzwords that really aren't that necessary to know in order to be a good developer, especially design pattern names. Question 4 is a good question because its asks about higher level thinking not just regurgitation of memorized facts.

Personally I would say questions along the lines of the first three are entirely useless for interviewing a senior developer. You are paying senior developers to think, not be a dictionary, the questions asked should reflect that.

share|improve this answer
2  
Its not just if you know the answer to the question. If you answer a question I dig deeper into why you answered that way and where you learnt it, I ask how it contrasts to other answers, I ask whether you've always done it that way, and if not what changed your view. Interviews aren't multiple choice questions, they are team bonding and chemistry checks, intelligence and problem solving discussions and sometimes also give a "gut feeling" for raw skill and experience. Programming isn't just about having a correct answer. –  Doug Jan 22 '13 at 23:55

How relevant are these questions in respect to real life web programming and scalability?

Most of them seem more or less relevant to me. Remembering HTTP status codes by heart isn't so much, but understanding the reason behind them, their allocation scheme etc. pretty much is.

Design patterns are almost ubiquitous nowadays, and IMHO basic familiarity with these and with SOLID principles is expected from an experienced developer (although not everyone is of the same opinion).

How true is that statement?

100%. If you can’t answer these questions (or any number of other, more or less arbitrarily selected ones) there will certainly be a lot of people who wouldn’t think of you as a Senior Web Developer :-)

How relevant this is to your real problem solving skills is a different issue though. "Senior developer" is a weakly defined term, it can mean a lot of different things to different people at different companies.

I was able to answer all question and it was pretty just too easy so am thinking : Using similar questions as interview questions for screening developers rather then write sample code question be effective or not

Questions like this may be useful for filtering applicants, but definitely not as the only method during the interview.

share|improve this answer

protected by gnat Nov 26 at 7:20

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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