I’ve never liked the restrictive classifications imposed by employers: ¶ Programmer: A meaningless, easily replaced translator between someone else’s specifications and source code. ¶ Software Engineer: Marginally more intelligent, but still having detailed algorithmic and structural specifications dictated by management without any real input. ¶ Software “Architect”: An asshole. ¶ Web Developer: Easy programming in “toy” scripting languages for those who can’t write C++. Alternatively, Spiderman. ¶ “Systems” anything: CS graduates who can’t program. ¶ Anything “Analyst”: MBAs who can’t program. ¶ Interaction Designer: Floaty psychology dropouts who conduct expensive tests to determine that the software engineers suck at design. ¶ Web Designer: Finicky artists who don’t understand how difficult that’s going to be in CSS and refuse to budge from their pixel-perfect PSDs.