What every web developer should know before going for an interview

It is very frustrating to interview developers for web development roles and find they don’t understand the basics of the technologies they will be using. All web developers should understand the following.

HTTP

If I had $1 for every person I have interviewed who didn’t understand the difference between GET and POST requests I would be very rich.

Every developer should understand the HTTP protocol and as a minimum be able to explain the differences between GET and POST and any limitations of GET.

http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

HTTP status codes

Every developer as a minimum should understand the core HTTP status codes, e.g. 200, 301, 302, 400, 404, 500, etc.

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

MIME types

They are fundamental to HTTP and developers should understand them. Bonus points for understanding multipart messages

http://en.wikipedia.org/wiki/MIME

Cookies

Cookies are the most common mechanism for maintaining state, storing information client side and tracking users. Developers should understand the differences between, session cookies, persistent cookies, first party cookies, third party cookies, HttpOnly cookies and secure (HTTPS) cookies. Developers should also understand when cookies are sent, which part of HTTP request and responses they are stored in. They should also understand that a cookie can be sent with GIFs, etc., not just HTML.

http://en.wikipedia.org/wiki/Http_cookie

Caching

Developers should understand the following HTTP headers that control caching

  • Cache-Control
  • Pragma
  • Expires
  • ETag

UTF-8

Another fundamental that developers should understand is UTF-8. Many developers I interview think the 8 in UTF-8 represents 8 bytes. When I tell them it is 8 bits this has one of two reactions

  1. they are puzzled as to how 8 bits can store so many characters.
  2. they sit there struggling to work out how many characters can be represented with 8 bits.

http://en.wikipedia.org/wiki/Utf-8

Joel has a good article here
http://www.joelonsoftware.com/articles/Unicode.html

JSON

Developers should be able to explain the differences between JSON and XML and explain when it is best to use one over the other.

http://en.wikipedia.org/wiki/Json

XML

XML is a big subject but developers should have a good appreciation of it.

http://en.wikipedia.org/wiki/Xml
http://en.wikipedia.org/wiki/XML_Schema_(W3C)
http://en.wikipedia.org/wiki/Document_Type_Definition
http://en.wikipedia.org/wiki/Document_Object_Model
http://en.wikipedia.org/wiki/SAX_parser

Web Services

http://en.wikipedia.org/wiki/Web_services

REST webservices

http://en.wikipedia.org/wiki/Representational_state_transfer

WSDL

http://en.wikipedia.org/wiki/Wsdl

SOAP

http://en.wikipedia.org/wiki/SOAP

SQL

Developers should be able to write examples using each of the following

DISTINCT, UNION, MAX, COUNT, TOP/LIMIT, WHERE, LIKE, GROUP BY, HAVING, ORDER BY, JOINS (inner, left, outer), Sub queries and null test

They should also be able to answer the following correctly.

  • Can PrimaryKey’s be integer/number only or can they be strings, dates, etc?
  • Can a PrimaryKey be made from a single column only or from multiple columns?

Bonus points for understanding what is wrong with the following SQL

Assume stored procedure with input1 parameter
LastName is indexed column.
select * from customer where trim(LastName)=trim(input1)

Design Patterns

At least an appreciation for what design patterns are

http://en.wikipedia.org/wiki/Design_Patterns

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: