Alan Skorkin wrote an interesting post about The Difference Between a Developer, a Programmer, and a Computer Scientist. I’ve always considered myself a software developer.
They write code. Making it well-factored and clean is important, but other factors often take priority. Math skills are very much optional, but it does help to be aware of common problems and solutions related to the domain they are in.
Communication and people skills are paramount. Process and team dynamics are bread and butter skills.
They are consummate generalists without any truly deep specializations. They are expert at finding ways around problems and plugging components together to fulfill a set of requirements.
In their personal time they are either trying to build the next Facebook, or engage in activities that have nothing to do with programming, developing, or computer science.