Software Engineering and Computer Science – Part 1

September 27, 2006

I ask a lot of questions when I interview candidates for technical, usually development, positions. I have about thirty pages of questions that I cherry pick from, some closed, some open-ended. The stronger the candidate, the more questions I ask them. If someone says they have built web applications, one of the first filter questions I ask is:

Is HTTP a stateful or a stateless protocol?

It is just amazing how many people, supposedly with many years of experience, do not know the answer to this question.

HTTP is a stateless protocol. It has no notion of remembering client state. It cannot distinguish between one request for http://myhost/foo.htm and the next. In order to know that a request comes from the same client as a previous request, client side cookie technology is used if the browser has cookies enabled, or the technique of URL rewriting can be used, where a session identifier is passed back and forth between the server and the browser in every request and response. That is roughly the answer I’m looking for. But before you get too excited, I have lots more questions and they get a lot more difficult than this. Software engineering is just what is says: it is an engineering discipline. And computer science is just that, a science.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: