Web programmers should know

Here is a checklist of knowledge and abilities which I consider a must for a good web programmer.

  • HTML, w3.org standards and validator
  • AJAX
  • SQL: multiple column indexes, transactions
  • The following programming languages exist: PHP, Python, Ruby.
  • Program in at least one of the languages above
  • Program in C at least a bit
  • What is JVM and bytecode
  • What is SQL injection and how to prevent it
  • How DNS works, at least in general – what server and clients do
  • How routing works, at least in general. Tunneling. NAT. BGP is a plus
  • HTTP and HTTPS
  • Load balancing and it’s session persistence problem and how it’s usually solved
  • HTTP proxy, what it solves and how it works
  • What’s FTP
  • What’s version control and what it solves
  • How SMTP works, at least in general. POP3 and IMAP a plus
  • What’s character encoding and why UTF-8 rules

If it’s someone expected to work with Linux the following applies:

I’ll be adding to the list as soon as I remember anything important enough.
Suggestions for additional points are welcome.