Ask HN: Are there programming jobs for Math PhDs?
I'm no code expert, but I minored in Computer Science as an undergrad. I have experience in C++ and Python, and I'm currently learning Haskell and some web backend with Django. I would estimate that I have coding experience equivalent to someone graduating with a Bachelor's in CS from a small liberal arts college (that is to say, nothing note-worthy).
My question is: would anybody like to hire me? Math grad school has made me excellent at solving problems, learning new technologies, and communicating difficult ideas. But I'm definitely lacking in the experience division. Now I'm wondering if I would be a desirable candidate or not.
And I'm not fishing for job offers or specific companies - just want to know if you know anyone like me who has been hired, or who can't be hired.
[+] [-] charlieflowers|13 years ago|reply
Here's why: programming jobs top out at around $140k (higher or lower depending on your city). That is 99th percentile, I would speculate.
But there is a smaller niche of jobs that prefer or require advanced academic degrees that are math-heavy (such as Physics or Mathematics), that use cooler, more powerful, non-mainstream languages (such as Haskell, Lisp and a few others), and that can pay up to even $400k.
(Disclaimer: I don't have one of those jobs -- yet anyway :) And I don't directly know anyone who does. But I've seen indicators that they exist. Mostly it seems in the Financial sector. And I think $400k is way on the top end ... but that's a nicer top than $140k.)
EDIT - I saw lower down that the OP said he's not so much interested in a "Quant" job. Mostly, that's the kind of job I'm talking about. I understand why some consider it boring -- it doesn't involve creating anything life-changing -- but to me it is very interesting because it seems like you'd be working with some of the best functional programmers in the world on some hard problems. And, of course, the money is intriguing.
[+] [-] dkarl|13 years ago|reply
1. Will you take a pragmatic engineering approach when it's warranted, or will you be a cranky loner scribbling differential equations that supposedly prove which brace style is superior?
2. Will you be bored when you're not doing "real" math?
3. Will you demand a salary that exceeds your current ability to contribute?
Sounds like you are clear on all three counts. Now it's a matter of finding the right opportunities. If you want a job locally, meetups for topics like machine learning are a good place to find out where mathematically inclined programmers are working. (Though you might find that a lot of them are at meetups because they're bored at their current jobs.) If you're targeting a certain city, you can join local mailing lists for (e.g.) functional programming to which local employers might post job opportunities.
You can also check out job postings to see which high-tech companies are hiring programmers. A company that employs a lot of PhD scientists in other positions is more likely to hire PhDs into programming positions, if only for the sake of effective communication and a consistent culture. One of your biggest qualifications to work as a programmer in such an environment is that when the physicists or molecular biologists talk to you about the problems they're trying to solve, you are much better equipped to understand them and build good software for the company than a guy who didn't go beyond undergraduate linear algebra.
You're going to do fine. Finding your way into the right circles might be a slow process, though. Don't be afraid to take a boring job if you can't find a better one, because at least you'll get something to put on your resume, experience dealing with mundane crappy stuff that you might have avoided so far -- things like debugging, messy merge/rebase problems, and working with other people's retarded code. Good programmers have to be efficient at that stuff. Good programmers also have to be good at working with people, and the crappiest jobs have the most challenging people problems. It's better to be getting your hands dirty with that stuff than sitting at home sending out resumes and solving Project Euler problems. HOWEVER, don't lose faith that you are a highly valuable performer with rare capabilities even if that isn't true in the initial crappy jobs you find yourself in. Soon enough you'll find your way into the right companies, meet the right people, and you'll be fine.
[+] [-] alinajaf|13 years ago|reply
On the last Friday pick up the phone and call your three favourite tech companies in the area. In this market, in all likelihood, you will have an offer or three lined up by the next Monday afternoon.
[+] [-] bearmf|13 years ago|reply
[+] [-] jgrahamc|13 years ago|reply
What sort of mathematics did you do? Clearly, if you have a good grounding in statistics there are lots of opportunities and the whole field of machine learning is mathematics that's been implemented in code.
[+] [-] shou4577|13 years ago|reply
My research is in abstract algebra (specifically Lie theory and algebraic geometry), which is pretty far removed from statistics or applied math in general.
[+] [-] nazca|13 years ago|reply
It may be that your thesis topic is far removed from practical applications, but you likely have a strong enough foundation in math that you would be great at working on a lot domain specific applications. Some others mentioned machine learning, and this is likely a good option, but only one of many. Spin this around and think of it from the business side. Where are there opportunities to put more robust analytical solutions in place in the business world? Start thinking about every company you see, buy products from, or otherwise interact with - how could they (or are they) be more effective at what they do with better math? Everything from better sales forecasting at your local supermarket, to better car design.
[+] [-] geofft|13 years ago|reply
The Stripe jobs page (http://stripe.com/jobs) has some programming challenges that are way too ambitious for a usual couple-hour coding challenge, but definitely along the lines of a nontrivial, self-directed project that I'd like to see. Spend some time over a weekend making something like that, and it'll be worth noting to everyone you apply to. I've also seen great websites explaining mathematical concepts in intuitive, interactive ways; maybe there's a paper or something you like that you can turn into an instructional webapp.
Since you've got a couple of years before you'll be applying, another great option is to get involved with some open-source software, preferably something you use already or would want to use.
[+] [-] shou4577|13 years ago|reply
From what I've heard so far, it sounds like there is definitely opportunities for me, and that means that I can justify spending time working on these types of projects over the next couple of years.
[+] [-] swang|13 years ago|reply
The question is do you want a job in your field of expertise? I am not familiar enough with companies looking at practical applications of abstract algebra but it's probably not as abundant as companies looking for people with a focus on statistics. I don't think this will hinder you much though as the industry is looking for smart people despite whatever field you're in.
Maybe this sounds stupid because it may be obvious but I think a big advantage is if you're able to both read math papers and translate them into actual working algorithms. It doesn't seem like there are many who know how to do both.
[+] [-] andrewcooke|13 years ago|reply
1 - try to get a job in a "real" software company where you are "the maths guy" (or, easier, the existing maths guy's understudy), rather than in a company full of people like yourself (ie where most people are software engineers, not maths phds). in my experience that will help you learn how to be a professional engineer, use good practices, etc etc (although the variation between companies is still huge).
2 - you will be amazed at what most people think is "advanced maths". things that are completely basic for you (like, say, simple geometry or trigonometry) seem to be black arts for the majority of software engineers. this has a good and a bad side: the plus is that it makes what you have very valuable; the possible minus is that you could be asked to do quite boring work.
please don't take the second point to mean that there aren't some very smart, very mathematically competent software engineers out there, because there clearly are. but they are exceptions. value them when you find them.
what i am trying to say, i guess, is that your skills and those of a good software engineer are pretty much disjoint (and complementary, in the non-mathematical sense). so you both have much to gain/learn from the other. and if you can learn, then you become more valuable.
[+] [-] taliesinb|13 years ago|reply
As for myself, my degree is pure math, but I consider myself primarily a programmer. Funnily enough, reverse engineering a 3D graphics engine was how I first learned trigonometry and matrix math as a teen.
[+] [-] jdowner|13 years ago|reply
There are a lot of people who will see your PhD as a black mark when it comes to software engineering. There is a belief that you are over-qualified (what ever that is supposed to mean). Whether it is a reasonable belief or not it exists so you will being trying to prove that you produce Quality Code and a Team Player (TM). Once you get your foot in the door, it should become easier.
There are also lots of places that are math PhD friendly :) Like the mathworks for example!
FTR, I have a PhD in applied math and have been a software engineer for about 8 years now. I got my foot in the door by working for free at a game company for a year. Not the way that I advise everyone to take ;) but I lucked out and learned a lot from the experience that it continues to influence my view on software, teams, and leadership to this day.
Good luck!
[+] [-] bethwoltman|13 years ago|reply
My unconventional background: Pre-med/Community Healthcare undergrad, Senior Financial Consultant that participated in taking previous employer through an IPO, recruiter for an international organization, business development for a consulting/advisory firm. I taught myself computer programming which was the foundation for my first software company. I also own another company that is in the computer processing/engineering space but is rather unique; customers include traders, various investment funds, recruiting firms, and individuals in the healthcare industry. I'm also a senior adviser for an angel fund and am just old enough to legally rent a car in the US.
Be open to asking questions and not being good at something. You never know who you will meet and how far it will take you.
[+] [-] ig1|13 years ago|reply
[+] [-] Mikosia|13 years ago|reply
p.s This is a sellers market all through.
[+] [-] yummyfajitas|13 years ago|reply
I wrote a blog post discussing how to leave academia and prepare for work in industry, you might find it helpful.
http://www.chrisstucchio.com/blog/2012/leaving_academia.html
[+] [-] shou4577|13 years ago|reply
[+] [-] actsasbuffoon|13 years ago|reply
I know a few developers with degrees in pure and/or applied mathematics. Without exception they're extremely smart people who are very good at what they do. I doubt you'll have difficulty finding a good job.
[+] [-] cnp|13 years ago|reply
Like the above comments suggest, get a github account together that clearly outlines your interests.
[+] [-] jboggan|13 years ago|reply
Go ahead and think right now how you can transition from grad school to being hired in software development 12 months from now. You're probably being paid to go to school right now so that makes it even easier. Start working on some open source projects, create a side project, get your GitHub account bouncing with meaningful commits.
PhD or no PhD you will need to demonstrate some finished projects to help you get hired at a good position.
[+] [-] Kishin|13 years ago|reply
You definitely have an advantage in many of the more mathematical areas (machine learning, etc.) and your degree will show that you'll likely be able to learn quickly. Your PhD will only help, not hurt. Just do some side projects in a popular language like Ruby, Python, or something else that is relevant and you will be more than fine.
[+] [-] netghost|13 years ago|reply
For instance we're hiring developers at LiquidPlanner. We are doing some cool stuff with probabilistic scheduling/planning, which would really benefit from some more folks with solid math/stats backgrounds:
http://seattle.craigslist.org/see/eng/3264718329.html
So yeah, I'd say finish up your PhD, enjoy academia, and don't worry, there will be jobs out there for you.
[+] [-] mrestko|13 years ago|reply
A math PhD may have better luck but my experience has been negative so far.
[+] [-] infinite8s|13 years ago|reply
[+] [-] shou4577|13 years ago|reply
[+] [-] Paul_Young|13 years ago|reply
We've got a unique hiring method in that we hire Pure Math students exclusively (for development). We don't even look at "programmers" anymore. We take them from basically never writing a line of production code in their life, and turn them into great developers in a very short period of time.
Our company does a lot of theoretical compiler type stuff, so Math students fit well into that. We've done this with a number of people now, and it works pretty well.
Shoot an email to [email protected] if you're interested.
[+] [-] zura|13 years ago|reply