My graduate adviser told me that he thought there would be a lot of opportunity for someone who could combine theoretical math and computation. I believe he was right. Most of my career has been in that overlap and I’ve had the opportunity to do some interesting things.
The whole interview is in the March issue. Click on the link above to get the magazine.
Some time between my final exams and getting my first job, I’ve been afraid. “What can I do?” came up a lot. I had a double major in Applied Mathematics and Computational Science. I’m not really that good in mathematics, nor am I “qualified” to do programming. The research facilities want PhD’s and MSc’s (in maths). The software companies want graduates with a computer science degree, not a computational science degree. They don’t understand the difference, so it takes more convincing.
Ok, just to clear things up a little. You probably know what computer science is. So what’s computational science? This is the definition I recall from a professor:
We write programs to solve scientific problems
Or something like that. I wrote a program that analysed wave motions (I think). I wrote a MATLAB program to do image texture matching with Fourier Transforms. I wrote a C program to simulate computer virus behaviour.
It’s why I never learned about databases and SQL. My scientific problems and experiments hadn’t required large amounts of data. I understand that my peers in the computer science courses learnt to simulate airline ticket purchasing, and to connect to databases, and to design web interfaces.
I just typed “cc vince.c -o vince” on my Unix command line. Then “vince” to run the program. If segmentation faults didn’t assault me, then I had the output somewhere in a text file.
Luckily, I got hired a few months after graduation. A telecommunications company director interviewed me. Apparently my maths degree was an edge, because all his hires were computer science graduates. One of the departments that the director was in charge of, was the billing support department. Hey numbers! My forte! Supposedly. (No, I mean, yes, definitely my forte! [I needed to eat…]) I found out about that supposed maths edge I had some time after I was hired, when he talked with me (I think).
So John’s answer struck something deep within me. I wished I heard that when I was in university. Then I don’t have to be so afraid that I won’t be of use anywhere.
When I did my honours thesis project (I was working on computer virus behaviour simulation), my adviser suggested I become an epidemiologist. It means I help in the study of epidemics, such as virus outbreaks and stuff. I was more interested in writing code, so I declined his offer to make recommendations to the Singapore CDC (or some health organisation. It was a long time ago. I forget…). I wonder what would’ve happened had I accepted his offer…
So to the (future) mathematicians out there, learn to write code. Programming is actually quite compatible with how you think in maths.
To the (future) programmers out there, learn to broaden your knowledge and skills. (You thought I was going to say maths, didn’t you?) Software is getting more complex and simpler at the same time. That’s because the range of needs from users is getting wider. There’s software that does facial recognition, fingerprint recognition, speech recognition, image matching, and textual analysis. There’s software that does billing, accounting, profit sharing, and banking. There’s also software that just blips 140 characters to some server. There’s software that does all kinds of things that people want or need.
Your skill to write code isn’t in question. Your skill to understand the myriad scenarios and conditions for your software to work, is.