A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
That’s from Robert Heinlein’s character Lazarus Long.
Peter Merel coined this version for developers:
A programmer should be able to fix a bug, market an application, maintain a legacy, lead a team, design an architecture, hack a kernel, schedule a project, craft a class, route a network, give a reference, take orders, give orders, use configuration management, prototype, apply patterns, innovate, write documentation, support users, create a cool web-site, email efficiently, resign smoothly. Specialization is for recruiters.
When I read that it definitely reminds me of some of my favorite colleagues, and something I aspire to myself even though I’m very heavily balanced toward the “lead a team” part right now in my life.
Even as technology is becoming more accessible, modern web development grows more complex. Some might look at that is discouraging, I prefer to think that no matter how far along you get you can still have a lifetime of learning ahead of you.
For interesting debate on the above, check out the c2 wiki Specialization for Insects discussion (last edited March, 2012) and also the page that says “If specialization is for insects then I’d very much like to be a humble insect.” (Last edited November, 2005. I love digging around older parts of the internet.)