views:

151

answers:

4

Hey,

I'm looking for some advice on how to successfully make the transition from mathematics to CS. My academic background is in mathematics (BS and MSc), and I've taken loads of math courses as well. You name it, and I took it: Measure Theory, Algebra, PDES, Manifolds, Complex Analysis, etc. I progressed quite far along this track, and at one point, I thought I would be a professional mathematician...But around the time I was finishing my MSc, I really got sick of it. Studying very abstract mathematics was fun, but it really lost its appeal to me. Outside of a couple hundred people, I'm not sure if anybody would understand my research. I did not want to be 60 years old and say that my only contribution to the world consisted of published papers.

Anyways, I've been an off and on hobbyist programmer since 2002. I've programmed in C and Java (just small projects), and I really started to be drawn to the area as time passed. There's a real appeal to CS work because, well, it actually means something to other people out there! I enjoy all parts of it: designing webpages (a real artistic appeal). On the other end, I do enjoy toying with compilers and more nitty-gritty stuff as well. Suffice to say, I have broad interests out there. Anyways, I know it's a bit late, but I was wondering if there were other folks out there who made the change, and if so, how I could do so. I know I have some fairly big gaps to fill in terms of data structures, lack of internship experience, etc. But I really would like to make this work. So my question is simply: How can I make the switch from math to CS?

To pay the bills, I'll be doing financial analysis for a company, but I'd like to eventually transition into a developer type position. I've been reading "Algorithm Design" by Tardos and doing all the problems. It's not hard to make progress since the problems are far more concrete than the stuff I've been doing the past six years. I feel I can make fairly rapid progress in picking up all the materials from data structures, etc. but none of it can substitute the past several years I've lost. Anyways, I'm eager to learn but would love some advice/concrete direction.

Thanks, Joseph

A: 

It might be worthwhile to take the time to get a M.Sc. in computer science or to take some classes at a university or community college. In the process of getting the M.Sc. you will have to make up for any defiicencies in undergrad education in comp sci., and at the end of it you will have a solid grounding.

Trying to pick it up along the way might take you a while, just because of the demands of your work. It might be better to just bite the bullet. Although you may lose income now, in the future you will probably get it all back.

Larry Watanabe
+1  A: 

I'm going to focus my reply on getting a job - not on learning to develop - I do believe you can do that.

Which country (and region) are you in?

In my experience, people with math degrees seem to have an easier time obtaining development jobs in countries (or markets) where CS degrees were traditionally given by math departments, and a harder time where CS originated from electrical engineering departments. The idea of standalone CS departments is actually fairly new in many schools. Since most workplaces want someone with a 'CS degree or close by', their tolerance for math to get you in the door and interview (where you can demonstrate skills) varies.

If you live near or can relocate to a major financial market (NYC, Chicago, London, Zurich, Tokyo, etc.), you may want to focus on Quant jobs (there are many names for these). These jobs employ developers with a strong math background (often at least an MS, usually PhD) to build mathematical models for automated trading or for risk management. These are extremely rewarding careers, and having some existing programming skills helps. In fact, it is better to approach these roles with Math degrees rather than CS.

Uri
A: 

Answer questions on stackoverflow - That is something concrete you can show people.

Are you on LinkedIn ? - It is great for contacts.

Look into contract placement firms - Stick with the bigger ones if you are starting out.

It sounds from your qualifications you should do just fine.

Romain Hippeau
A: 

I was not a math major in college; I got my CS degree, but I was out of the field for 6 years. One point I cannot stress enough is that if you have skill, you will always be able to get a job. If you don't have skill it will be a ton harder to.

I'd recommend reading on here every day. Asking questions on here everyday. Doing projects to make what you learn real everyday. And just keep honing yourself to have the skills you need as a professional developer. Then one day you'll look at yourself and realize you are pretty dang good. And then you can go out and get a job from people who value skilled developers, over a piece of paper.

Alex Baranosky