in reply to
Programming and math
Maybe we could draw some parallelism between mathematician and programmer.

(Pure) Mathematician 
Applied Mathematician / Enginneer 
Programmer 
People skill 
Teaching 
Working with clients, coworkers. 
Working with clients, coworkers. 
Management skill 
Admin. Conference. 
Manage project. 
Manage project. 
Business skill 
Doesn't necessarily need one 
Good to have if they want to be their own boss 
Important if you try to assess if a project is profitable rather than
"interesting" 
Logical & analytic skill 
"What's the best algebraic representation/model for a problem that
can help me prove the theorem easiest?" E.g. the FourColor theorem,
whose problem was formulated in many different ways. 
Turn something in form of human language (fuzzier) into some
representation or model that's "welldefined" and unambiguous. 
E.g. coming up with some sensible database schema, logical data flow,
class diagram, etc. 
Math skill: "algebra,"
"discrete math," etc 
Some mathematicians are more into group theory, graph theory,
combinatorics, etc. 
Optimize traffic flow, flight crew scheduling; make realistic landscape
with fractals on movie, etc. 
Coding replies on group/field theory; cryptography on number theory,
optimization on combinatorics, etc. 
Math skill: "calculus," "analysis,"
"continuous math," etc. 
Others more into ordinary/partial differential equation (ODE/PDE),
fourier/wavelet analysis, etc. 
Model weather, ocean flow with PDE. Digitize analog signals, etc. 
You'll use a lot of fourier/wavelet analysis if you deal with
"signals" 
Programming language used 
None, or mathematica, etc. 
Matlab, SAS, Splus, GIS, spreadsheet, etc. 
A lot. 
Other science (physical or human) skill 
Doesn't necessarily need any, though many know some by association of
the math problems they deal with 
Too numeric and diverse to list 
"Human factor" is important to know (by training or instinct)
for GUI design. You use quite a bit of physics if you do animation.
Biology of course if you're in bioinformatics. 
If you're going to be a programmer, you're going to need skillset that's shared by mathematicians and engineers, even though they may not feel like they're doing the same things. The differences vary probably more by what you actually do than by the nature of your discipline alone.
Many people from arts and social science fields did become good programmers after much practice and persistence.
Java is probably the most resourcesrich and popular among beginners (partly due to its successful marketing). Eventually you'll decide for yourself which tools you feel most comfortable to work with.