I've always felt that some people were 'coders' who given an algorithm or a task can craft an elegant piece of code which implements that algorithm tweaked in any of a number of directions (fast, robust, testable, portable, Etc.)<p>Other were 'analysts' who took problems and solved them with a combination of coding and process and perhaps hardware.<p>Then there were 'techs' who, given a set of steps, translated those steps into something a machine could consume.<p>Analysts seem to have the widest range in pay, coders are pretty bunched up around various levels of experience.