A programmer should be able to parse a language, review a patch, optimize a database query, make a website, secure a server, debug without sources, write an exploit, grep a log file, build a kernel, write a manual, run efficiently, crash gallantly. Specialization is for insects.