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 Four-Color theorem,
whose problem was formulated in many different ways.

Turn something in form of human language (fuzzier) into some
representation or model that's "well-defined" 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 resources-rich 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.