Here is a checklist of knowledge and abilities which I consider a must for a good web programmer.
- HTML, w3.org standards and validator
- 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:
- Shell scripting: bash, grep, sed, awk, find, netstat …
- File-system permissions
I’ll be adding to the list as soon as I remember anything important enough.
Suggestions for additional points are welcome.