Getting into coding with a PhD in math

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Getting into coding with a PhD in math

Postby skeptical scientist » Sat Apr 28, 2012 10:43 pm UTC

As I hinted at in the quines thread, I'm thinking about leaving academia and getting a real job, possibly in the computing industry. I am very smart—I graduated summa cum laude in math/physics from a decent college (Brandeis), and have a PhD in mathematics from one of the top schools in the country (University of Chicago). My area of research is basically theoretical CS (computability theory), and most of my research has been analyzing and designing algorithms, and proving that they do what they're supposed to. So I am very strong on the theoretical CS side of things.

On the other hand, I haven't had much formal education in coding (just a few classes in undergrad - one on C, one on Java, and a data structures and algorithms course). I've done some coding for myself (in C and Python), but mostly small stuff designed to solve mathematical problems for me, rather than to be useful software (e.g. project Euler stuff, solving logic puzzles).

I'm wondering a few things:
  • Can I be taken seriously as a candidate for an entry-level job, with this as my resume? Are there companies out there who will be sufficiently interested in someone with my strong mathematical aptitude and theoretical CS background not to be turned off by my limited coding experience? How would I find such a job?
  • If the answer is "no", what would I need to do before getting taken seriously?
  • My current academic job doesn't end for three months. What are the best things for me to be doing right now to help prepare myself?
  • One thing I've been wondering about is jobs where math, rather than coding, is the focus, but which involve some coding. I've heard that some jobs in finance and "big data" may be along these lines. I'm interested in the coding side of things, but a job like this may be a good way to transition. Do you know of any jobs like this?

P.S. I'm particularly interested in living in Seattle, so suggestions specific to the Seattle area would be very much appreciated. But general advice is also useful, and I'm also considering the Boston area.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

User avatar
Sc4Freak
Posts: 673
Joined: Thu Jul 12, 2007 4:50 am UTC
Location: Redmond, Washington

Re: Getting into coding with a PhD in math

Postby Sc4Freak » Sun Apr 29, 2012 12:33 am UTC

I have to ask first: with those qualifications, why not go into research?

If you're interested in the Seattle area, then Microsoft Research is one of the largest and most well respected computer science research institutes around. There are MSR campuses all around the world, including the main Microsoft campus at Redmond. You can apply

Full disclosure: I work for Microsoft, but not in MSR (I'm just a regular developer). I'd point you to MSR's website but it looks like it's down for maintenance. :?

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Re: Getting into coding with a PhD in math

Postby skeptical scientist » Sun Apr 29, 2012 3:53 am UTC

That's a possibility, but those jobs are rare and highly competitive, so not really something I can count on.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

Ben-oni
Posts: 278
Joined: Mon Sep 26, 2011 4:56 am UTC

Re: Getting into coding with a PhD in math

Postby Ben-oni » Sun Apr 29, 2012 7:28 am UTC

I think it comes down to how you brand yourself. Generally speaking, employers look for mathematicians and programmers separately, something I find profoundly unsettling: the mathematician writes up the algorithm, and the programmers are asked to implement it. Part of the reason for this is the (false) belief that any interesting algorithm must have a difficult implementation, so a specialist should be given the task. (I hear things like: "You can't do FFT's in realtime on embedded hardware", so there may be some truth to the matter after all.) If anyone has anecdotal experience, I'd be happy to hear how this is dealt with elsewhere.

As for my own experience, having branded myself as a mathematician, I'm told to do all my coding in Matlab. I hate Matlab. And this despite my vast credentials as a programmer.

Anyways, for things you can do to make yourself more attractive: prepare your website with examples of your code. This shows that you actually can code, what your basic style looks like, and, hopefully, shows off your algorithms knowledge. If you write a "Traveling Salesman" program with some modern approach (your own, perhaps), all the better. Provide code in a variety of languages, to demonstrate your knowledge of them. If your C++ code uses unusual (by some definition of unusual) and elegant features of the language, it may get someone's attention. (For extra brownie points, write a solution to "Traveling Salesman" that runs entirely within the C++ template system. Nevermind, I think I might want to save that one for my own resume...)

I guess my point is this: it's the PhD that matters; after that, for an entry-level position you just need to prove you can code and that you can learn new languages. CS grads will have their thesis projects to show off, proving they can code real usable programs, so don't try to compete toe-to-toe with them in that regard. Brand yourself as an outlier, which you are. This will make your resume stand out, which can only increase your odds of getting a position.

User avatar
WarDaft
Posts: 1583
Joined: Thu Jul 30, 2009 3:16 pm UTC

Re: Getting into coding with a PhD in math

Postby WarDaft » Sun Apr 29, 2012 6:17 pm UTC

It only takes 6 months to a year to fully learn most languages, from there it's the concrete understanding of algorithms that's actually what's important, and the practice of writing maintainable clear code. Low level hacks that many people consider important optimizations only ever speed up your program by a constant multiple. If you can implement and maintain a more sophisticated algorithm (not necessarily sophisticated code) that has a fundamentally better run time and you've proven it correct, your code is going to be a better product, and it sounds like your background is ideal for that.

Becoming fluent in C/C++ or Java should not be difficult for you at all, and you could probably be close enough in 3 months that no one could tell in an interview - though it might be tiresome or tedious it will give you the largest market by far. Python and Ruby are quite practical and have fairly mature web development histories, building a portfolio website with some impressive features in one of those could be a very good demonstration. Haskell probably has one of the the smallest job markets of all the languages that actually have job markets, but might be the most interesting for you given your researching in analyzing and proving properties about algorithms - though it's probably only something you could pursue in your spare time.

I can't give much for specifics in terms of where or how to job hunt though.
All Shadow priest spells that deal Fire damage now appear green.
Big freaky cereal boxes of death.

User avatar
Jplus
Posts: 1721
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: Netherlands

Re: Getting into coding with a PhD in math

Postby Jplus » Mon Apr 30, 2012 7:48 pm UTC

"In computing" is a very broad concept. It's not necessarily programming; you could, for example, also design hardware. Your insight in algorithms can be very valuable in such a field.

If you're going to do programming, however, the thing that matters most is that you understand how to program. Just that. Experience and education are important, but if at least you can prove that you understand sequence and assignment (and you seem like a reasonable person who will behave well otherwise), many employers will already trust that you can learn anything they want you to do.

Like in any skill, real mastery of programming comes only after 10k hours of practice.
"There are only two hard problems in computer science: cache coherence, naming things, and off-by-one errors." (Phil Karlton and Leon Bambrick)

coding and xkcd combined

(Julian/Julian's)

User avatar
Yakk
Poster with most posts but no title.
Posts: 11129
Joined: Sat Jan 27, 2007 7:27 pm UTC
Location: E pur si muove

Re: Getting into coding with a PhD in math

Postby Yakk » Mon Apr 30, 2012 10:35 pm UTC

There are areas of programming that require a decent amount of mathematics outside of algorithm design.

How is your linear algebra? You could probably get up to speed doing computer graphics rather fast with your backing.

"Practical" analysis skills -- in particular, Signal theory (Fourier, etc)? Signal processing is a pretty math intensive branch of programming.

The higher reaches of computability theory are probably beyond most job requirements, but some of the foundational mathematics you'll have waded through on the way to your PhD could easily be quite applicable.

Getting experience in software is something valuable, but being able to parlay your mathematics and physics knowledge into an advantage should be possible.
One of the painful things about our time is that those who feel certainty are stupid, and those with any imagination and understanding are filled with doubt and indecision - BR

Last edited by JHVH on Fri Oct 23, 4004 BCE 6:17 pm, edited 6 times in total.

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Re: Getting into coding with a PhD in math

Postby skeptical scientist » Tue May 01, 2012 12:39 am UTC

Yakk wrote:How is your linear algebra? You could probably get up to speed doing computer graphics rather fast with your backing.

Linear algebra is easy. I can do applied projective geometry, whether it's called math or computer graphics.

"Practical" analysis skills -- in particular, Signal theory (Fourier, etc)? Signal processing is a pretty math intensive branch of programming.

I know a bit of the theory behind Fourier transforms and so forth; not a huge amount. I could probably learn it.

The higher reaches of computability theory are probably beyond most job requirements, but some of the foundational mathematics you'll have waded through on the way to your PhD could easily be quite applicable.

Well, I wasn't expecting computability itself to be useful. :P Mostly just the ability to design algorithms, and understand their complexity, and choose efficient algorithms when efficiency is needed. But it is a good point that there's lots of math that computers are needed for, besides just the math of computing, and I'll have a big leg up on the competition in that area.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

Divinas
Posts: 57
Joined: Wed Aug 26, 2009 7:04 am UTC

Re: Getting into coding with a PhD in math

Postby Divinas » Wed May 02, 2012 3:07 pm UTC

If this floats your boat, game development, be it graphics, AI, or just gameplay favors math stronger than most day-to-day coding jobs. And, as far as my experience goes, it makes much more use of formal computer science than most other programming jobs that do business software. And it's fun :) On the other hand, it tends to pay less, and is a bit competitive as well, but I'm pretty sure that with your background and if you spend 3 months learning c/c++, you can get such a job easy-peasy.

User avatar
Sc4Freak
Posts: 673
Joined: Thu Jul 12, 2007 4:50 am UTC
Location: Redmond, Washington

Re: Getting into coding with a PhD in math

Postby Sc4Freak » Wed May 02, 2012 5:47 pm UTC

Just be aware that a career in game development generally isn't going to be very pleasant for most people. Game developers are underpaid, severely overworked, and there is a constant stream of young graduates aspiring to be game developers.

User avatar
freakish777
Posts: 354
Joined: Wed Jul 13, 2011 2:14 pm UTC

Re: Getting into coding with a PhD in math

Postby freakish777 » Wed May 02, 2012 7:03 pm UTC

The following companies with operations in Boston that could potentially work out for you (grouped more likely to less likely, but what do I know?):

AMD
Intel
IBM
MathWorks (makes Math Software)
Oracle

HP
Philips Electronics
Raytheon

Red Hat
Monster.com

ZipCar (maybe?)



As for your initial question:

Can I be taken seriously as a candidate for an entry-level job, with this as my resume?


I would maybe suggest not applying for entry-level jobs. A lot of employers could see you as over-qualified with a PhD.

One thing I've been wondering about is jobs where math, rather than coding, is the focus, but which involve some coding. I've heard that some jobs in finance and "big data" may be along these lines. I'm interested in the coding side of things, but a job like this may be a good way to transition. Do you know of any jobs like this?


I'm sure there must be some jobs out there in the Actuary Science field that require programming (especially makers of Actuarial Software).
From what I've heard the majority of finance jobs that require programming, require you to be very good at programming in addition to having a high math aptitude. Also the vast majority of finance programming jobs that require you to be very good at math (in the US) are in NYC.

dockaon
Posts: 24
Joined: Fri Aug 19, 2011 12:21 pm UTC

Re: Getting into coding with a PhD in math

Postby dockaon » Thu May 03, 2012 4:41 pm UTC

I have a fairly similar background to you Math/Physics undergrad and PhD from U of Chicago, except mine is in physics. I left academia right after my PhD and I'm currently in a job which fits into your "half-coder" classification. I do operations research for a government consulting firm. I do programming as part of larger projects, i.e. we're developing a new inventory model for a client so it needs to be implemented in our supply chain simulations. We code primarily in Python and C++, but I don't think that's any sort of industry standard.

My general advice would be that the "half-coding" positions are what you should be looking at and not as a part of a plan to move into coding full time. Basically, you should be looking for positions where your employer will value you having a PhD in Math even if you aren't using that knowledge day to day. Some employers do value that in pure coders, but I think you'll find more rewarding (both financially and professionally) jobs where the coding is part of your job rather than 100% of it.

Finance and "big data" are fields like that. Although, it's my understanding that finance has developped enough of a financial mathematics pipeline for its' quant positions that it's much harder for people without a finance background to find entry level jobs than it used to be. Operations research is another area which seems open to people coming in from related fields. A lot of operations research employers are in the D.C. area doing work for the government. One potential employer in the Seattle area would be Amazon who obviously has lot's of complicated supply chain issues to work on.

If your current academic job is 3 months from ending, what you should be doing is sending out applications. The job market for PhD's is fairly good, but it's thin without a large number of available jobs at any one time. Most employers will be willing to wait for you to complete your current obligations.

Great Justice
Posts: 54
Joined: Sun Aug 15, 2010 5:28 am UTC

Re: Getting into coding with a PhD in math

Postby Great Justice » Fri May 04, 2012 2:10 am UTC

Ben-oni wrote:I think it comes down to how you brand yourself. Generally speaking, employers look for mathematicians and programmers separately, something I find profoundly unsettling: the mathematician writes up the algorithm, and the programmers are asked to implement it. Part of the reason for this is the (false) belief that any interesting algorithm must have a difficult implementation, so a specialist should be given the task. (I hear things like: "You can't do FFT's in realtime on embedded hardware", so there may be some truth to the matter after all.) If anyone has anecdotal experience, I'd be happy to hear how this is dealt with elsewhere.

A large portion of programming is designing proper architecture, interconnecting components, and not putting in gaping security holes. Things not math related, but vast disciplines in their own right, which require experience. On complex or larger projects you need specialists.

skeptical scientist wrote:what would I need to do before getting taken seriously

If you're comfortable with the syntax by now, try jumping into an existing open project:
- get familiar with the codebase
- implement a feature
- eliminate a bug
- have your code pass tests
- and have it accepted by the project
These are the steps you will be performing in a professional setting too, so slap that on you resume to prove you're not all theory.
Front-end (web, gui) stuff would be a waste for you. Use your talents to improve a real life product, which benefits you and the world.
It usually isn't Congress or the State that tries to abridge free expression or free speech, [...] actually, in the present situation, the main threat to expression comes from public opinion.
~Christopher Hitchens

Ben-oni
Posts: 278
Joined: Mon Sep 26, 2011 4:56 am UTC

Re: Getting into coding with a PhD in math

Postby Ben-oni » Fri May 04, 2012 10:15 am UTC

Great Justice wrote:A large portion of programming is designing proper architecture, interconnecting components, and not putting in gaping security holes. Things not math related, but vast disciplines in their own right

Not that vast. Programmers who don't know math (and some that do) have a tendency to over-complicate things. There really is a difference between a 5 year programmer and a 20 year programmer: the ability to approach complex problems in a simple manner.

User avatar
darkspork
Posts: 532
Joined: Tue Sep 23, 2008 12:43 am UTC
Location: Land of Trains and Suburbs

Re: Getting into coding with a PhD in math

Postby darkspork » Sun May 06, 2012 6:33 pm UTC

Have you considered Google? From what I understand, a large portion of what they look for in a candidate is a solid understanding of algorithmic efficiency, which makes sense given the sheer amount of data Google processes every minute.

Plus, from what I've heard, it's the most damn awesome place in the universe.
Shameless Website Promotion: Gamma Energy
My new esoteric programming language: GLOBOL
An experiment to mess with Google Search results: HARDCORE PORNOGRAPHY HARDCORE PORNOGRAPHY

poohat
Posts: 230
Joined: Mon Apr 07, 2008 6:21 am UTC

Re: Getting into coding with a PhD in math

Postby poohat » Mon May 07, 2012 4:55 am UTC

I agree with dockaon - as a math PhD from a top university, a 'programmer' or software developer job would be a waste of your specialized talents, and you might as well have not bothered with the PhD. You shouldnt be considering going for an 'entry level programming' job with a PhD from Chicago, until youve exhausted all other options.

You do need to learn how to code for most technical jobs, but imo you want to sell yourself as an applied mathematician who knows how to code, rather than as a programmer who knows some math. With your background and some programming knowledge, it might be possible to (eg) get a job at Google/Microsoft research, or some kind of quant finance position. If youre learning programming from scratch then choice of language is important; I would recommend staying away from application development languages like Java/C# since they are likely to get you typecast as a programmer (and jobs requiring them are unlikely to be interesting). SImilarly, dont learn framework stuff like SQL/XML/etc. For quant finance C++ is the language you'll need to know. Python is generally useful and fun to use, and would be another good choice. Matlab is another you'll find being used often.

It isnt hard to teach yourself programming and from your background you are obviously very smart technically, so just get a book and learn it. You need to work on lots of small projects as well as reading to pick it up though, programming is something you really learn by doing. Becoming a top class programmer is very difficult of course, but thats why you want to market yourself in such a way that you arent directly competing against fresh MIT compsci graduates who have been coding for 5-10 years.
Last edited by poohat on Mon May 07, 2012 5:49 am UTC, edited 15 times in total.

poohat
Posts: 230
Joined: Mon Apr 07, 2008 6:21 am UTC

Re: Getting into coding with a PhD in math

Postby poohat » Mon May 07, 2012 5:13 am UTC

skeptical scientist wrote:[*]One thing I've been wondering about is jobs where math, rather than coding, is the focus, but which involve some coding. I've heard that some jobs in finance and "big data" may be along these lines. I'm interested in the coding side of things, but a job like this may be a good way to transition. Do you know of any jobs like this?[/list]
Quant finance is mainly coding, but the math requirements are very high since the models being implemented usually require stochastic calculus and suchlike. The job market is very competitive (especially since the financial crisis) and a PhD from a top university and very strong C++ skills are required. Usually physics and applied mathematics PhDs have the best chance, but you should be competitive with any math-based PhD from a place like Chicago, as long as you can persuade them you arent a pure theoretician. Starting salaries are around $100-120k (+ 20-30% bonus) and they go up pretty fast, although youre not going to be a multi-millionaire or anything like that and you'll probably have to move to NYC. Whether the job is interesting depends what youre doing; most quant work in banking can be slightly boring (albeit very well paid) but you do get some good research positions, often in hedge funds. If you want to know more then the best place to start is probably the wilmott.co.uk forums

Dont you have a decent contact network from your time at Chicago? Surely some of your cohort went into finance?


Finance and "big data" are fields like that. Although, it's my understanding that finance has developped enough of a financial mathematics pipeline for its' quant positions that it's much harder for people without a finance background to find entry level jobs than it used to be.

Not quite; the MFE (Masters of Financial Engineering) has become a bit of a cottage industry now and most schools are charning out graduates by the hundred, but with the exception of the top 5-10 schools, most of these will end up in glorified IT roles. In my (very limited) experience the bulge bracket banks still tend to prefer (non-finance) PhDs in applied math subjects for front office quant positions, but you do need to have strong C++ skills and know the absolute basics of financial mathematics (John Hull's book is that standard starting point). The industry has contracted hard since the financial crisis though, so getting a job is by no means easy. The standard way in is to teach yourself the basics, and then contact a good headhunter.

gorcee
Posts: 1501
Joined: Sun Jul 13, 2008 3:14 am UTC

Re: Getting into coding with a PhD in math

Postby gorcee » Mon May 07, 2012 5:17 pm UTC

Can I be taken seriously as a candidate for an entry-level job, with this as my resume? Are there companies out there who will be sufficiently interested in someone with my strong mathematical aptitude and theoretical CS background not to be turned off by my limited coding experience? How would I find such a job?
If the answer is "no", what would I need to do before getting taken seriously?
My current academic job doesn't end for three months. What are the best things for me to be doing right now to help prepare myself?
One thing I've been wondering about is jobs where math, rather than coding, is the focus, but which involve some coding. I've heard that some jobs in finance and "big data" may be along these lines. I'm interested in the coding side of things, but a job like this may be a good way to transition. Do you know of any jobs like this?


Plenty of opportunities, if you know where/how to look.

Think small business. Large companies have departments and things. Coders do code, engineers engineer, draftsmen draft, etc. Smaller companies have smaller teams, so people have to assume more responsibilities.

Most applied research programs that require coding don't have a really formal software engineering requirement, so you don't necessarily need to be up to speed on best practices, etc. It's more like you need to know enough to get the prototype working.

I'll maybe send you a PM with some resources/companies that might fit. This is sort of the thing that I do for a living with a private company.

User avatar
skeptical scientist
closed-minded spiritualist
Posts: 6142
Joined: Tue Nov 28, 2006 6:09 am UTC
Location: San Francisco

Re: Getting into coding with a PhD in math

Postby skeptical scientist » Tue May 08, 2012 10:57 am UTC

gorcee wrote:I'll maybe send you a PM with some resources/companies that might fit. This is sort of the thing that I do for a living with a private company.

I would really appreciate that.
I'm looking forward to the day when the SNES emulator on my computer works by emulating the elementary particles in an actual, physical box with Nintendo stamped on the side.

"With math, all things are possible." —Rebecca Watson

gorcee
Posts: 1501
Joined: Sun Jul 13, 2008 3:14 am UTC

Re: Getting into coding with a PhD in math

Postby gorcee » Wed May 09, 2012 2:56 am UTC

skeptical scientist wrote:
gorcee wrote:I'll maybe send you a PM with some resources/companies that might fit. This is sort of the thing that I do for a living with a private company.

I would really appreciate that.


I haven't forgotten -- just been really busy the last few days. I'll try to get you some info tomorrow =)


Return to “Coding”

Who is online

Users browsing this forum: No registered users and 8 guests