Necessity of learning programming for math major.

How necessary it is for a person planning to do research in pure mathematics to learn programming as an undergrad?

And if it is, then which languages would you recommend to her or him? And why? I am currently a first year undergraduate, and here we have C in the first semester, and no other programming language in the whole course. Is it enough for me learn only this language or do I need to learn other languages too? If so, then which ones?

I apologize in advance if my question does not belong here and please shift it to wherever it does. Or if the similar question has already been asked.

Thanks in advance to all.


Solution 1:

MATLAB, Mathematica, R, Haskell, Ruby, Python and others. There are mathematicians who use different languages. It depends on what you need done.

Solution 2:

Definitely anything higher than C which is the language of system programming - which you ain't gonna do (and I may add, it only still exists for historical reasons). Also avoid C++ which frankly has become too complex and bloated even for the technicians (why not C++).

Forcing C even on computer undergrads was bad in 1989 (we started first semester by attempting to prove algorithms' correctness on paper à la Dijkstra; not sure whether that was a wholly successful approach but it made you think). Forcing C on math undergrads in 2013 is appalling beyond words.

Look at Scheme, Lisp or Clojure, take a look at Coq. Check out Prolog and its derivatives (currently I'm reading up on Flora 2). A Haskell is fine too. Avoid languages that need to be compiled and have no run-time interpreter loops for experimentation.

Somewhat related and because it brings back good memories: "A Parable" by Edsger W.Dijkstra, sometime in 1973