I’d like to work in software. I can graduate next year with a math degree and look for work, or I can study for additional CS-specific credentials, (two or three extra years for a Master’s degree).
On the one hand, I’m told online that programming is unusually meritocratic, and that formal education and credentials matter very little if you can learn and demonstrate competency in other ways, like writing your own software or contributing to open-source projects.
On the other hand, mid-career professionals in other fields (mostly engineering), have told me that education credentials are an inevitable filter for raises, hiring, layoffs, and just getting interesting work. They say that getting a graduate degree will be worthwhile even if I could have learned equally valuable skills by other means.
I think I would enjoy and do well in graduate school, but if it makes little career difference, I don’t think I would go. I’m skeptical that marginal credentials are unimportant, (or will remain unimportant in ten years), but I don’t know any programmers in person who I could ask.
What programming have you done so far? Have you worked on any open-source projects? Run your own web site?
I know a lot of people with math degrees working in software engineering or site reliability in Silicon Valley. So it’s definitely possible … but you have to have the skills.
In school, some of my math courses have been programming intensive, (bioinformatics and statistics, all sorts of numerical methods and optimization courses). I’ve taken most of the CS curriculum as well, but scheduling the remaining class (a senior project) for a double major would take an extra year.
On my own, I’ve written a couple android apps, mostly video games. But that’s about it. No websites and no open-source work.
I have a BS in computer science. I worked at Google for four years. I would guess that your credentials—with a BS in math—would be no bar to getting a programming job. I would focus on direct programming experience instead of further credentialling. Graduate degrees in computer science are generally not required, and not necessarily even useful, for programming jobs in industry. Masters degrees in computer science are especially suspect, because they are often less rigorous than undergraduate degrees in the field. This is especially true of coursework (non-research-oriented) masters degrees.
What type of work in software would you like to do? The rest of my comment will assume that you mean the software technology industry, and not programming specifically.
There are many individual contributor roles in technology companies. Being a developer is one of them. Others may include field deployment specialists, system administrator, pre-sales engineers, sales or the now popular “data scientist”.
I agree that credentials help with hiring and promotions. When I evaluate staff with little work experience graduate credentials play a role in my evaluation.
They say that getting a graduate degree will be worthwhile even if I could have learned equally valuable skills by other means.
If you could have learned equally valuable skills by other means, then the graduate degree almost always comes out on top due to signalling/credentialing factor. However, usually this isn’t the case. Usually the graduate degree is framed as a trade-off between the actual signalling factor, coursework, research and graduate institution vs. work experience directly relevant to your particular domain of expertise. There are newer alternative graduate degrees programs that may be more useful to you with your strong undergraduate mathematics base such as Masters of Financial Engineering*, Masters in Data Science that offer a different route to obtaining an interesting job in the software industry without necessarily going through a more “traditional” CS graduate program.
I think I would enjoy and do well in graduate school, but if it makes little career difference, I don’t think I would go.
I think much will depend on the pedigree of the graduate school and the work that you can showcase (a portfolio of sorts) upon completion that will determine magnitude of career impact.
If you are dead set on being a programmer for the next 10 years, please consider why. The reason I bring this up is because some college seniors I’ve talked to can clearly visualize working as a developer, but find it harder to visualize what it’s like doing other jobs in the technology industry, or worse have uninformed and incorrect stereotypes of the types of work involved with different roles (canonical example are technology sales roles, where anybody technical seems to have a distaste for salespeople).
It you are still firmly aiming to be a developer, it may help to narrow down what type of programming you like to do, such as web, embedded, systems, tooling, etc., and also spend a bit of time at least trying to imagine companies you’d like to work for evaluated on different dimensions (e.g. industry, departmental function, Fortune 500, billing/security/telco infrastructure/mobile, etc.).
One additional point to consider is why not do both by working full-time and immediately embarking on a part-time graduate degree? Granted, some graduate degrees (e.g. certain institutions or program structure) don’t allow for part-time enrollment, but it’s at least something to consider. That way you cover both bases.
* Google MFE or “Masters Financial Engineering”—many US programs have sprung up over the past several years
EDIT: I apologize in advance for the US-centric links in case you are outside of N. America.
Could I get some career advice?
I’d like to work in software. I can graduate next year with a math degree and look for work, or I can study for additional CS-specific credentials, (two or three extra years for a Master’s degree).
On the one hand, I’m told online that programming is unusually meritocratic, and that formal education and credentials matter very little if you can learn and demonstrate competency in other ways, like writing your own software or contributing to open-source projects.
On the other hand, mid-career professionals in other fields (mostly engineering), have told me that education credentials are an inevitable filter for raises, hiring, layoffs, and just getting interesting work. They say that getting a graduate degree will be worthwhile even if I could have learned equally valuable skills by other means.
I think I would enjoy and do well in graduate school, but if it makes little career difference, I don’t think I would go. I’m skeptical that marginal credentials are unimportant, (or will remain unimportant in ten years), but I don’t know any programmers in person who I could ask.
Any thoughts or experiences here?
What programming have you done so far? Have you worked on any open-source projects? Run your own web site?
I know a lot of people with math degrees working in software engineering or site reliability in Silicon Valley. So it’s definitely possible … but you have to have the skills.
So tell me about your skills. :)
In school, some of my math courses have been programming intensive, (bioinformatics and statistics, all sorts of numerical methods and optimization courses). I’ve taken most of the CS curriculum as well, but scheduling the remaining class (a senior project) for a double major would take an extra year.
On my own, I’ve written a couple android apps, mostly video games. But that’s about it. No websites and no open-source work.
I have a BS in computer science. I worked at Google for four years. I would guess that your credentials—with a BS in math—would be no bar to getting a programming job. I would focus on direct programming experience instead of further credentialling. Graduate degrees in computer science are generally not required, and not necessarily even useful, for programming jobs in industry. Masters degrees in computer science are especially suspect, because they are often less rigorous than undergraduate degrees in the field. This is especially true of coursework (non-research-oriented) masters degrees.
What type of work in software would you like to do? The rest of my comment will assume that you mean the software technology industry, and not programming specifically.
There are many individual contributor roles in technology companies. Being a developer is one of them. Others may include field deployment specialists, system administrator, pre-sales engineers, sales or the now popular “data scientist”.
I agree that credentials help with hiring and promotions. When I evaluate staff with little work experience graduate credentials play a role in my evaluation.
If you could have learned equally valuable skills by other means, then the graduate degree almost always comes out on top due to signalling/credentialing factor. However, usually this isn’t the case. Usually the graduate degree is framed as a trade-off between the actual signalling factor, coursework, research and graduate institution vs. work experience directly relevant to your particular domain of expertise. There are newer alternative graduate degrees programs that may be more useful to you with your strong undergraduate mathematics base such as Masters of Financial Engineering*, Masters in Data Science that offer a different route to obtaining an interesting job in the software industry without necessarily going through a more “traditional” CS graduate program.
If you are dead set on being a programmer for the next 10 years, please consider why. The reason I bring this up is because some college seniors I’ve talked to can clearly visualize working as a developer, but find it harder to visualize what it’s like doing other jobs in the technology industry, or worse have uninformed and incorrect stereotypes of the types of work involved with different roles (canonical example are technology sales roles, where anybody technical seems to have a distaste for salespeople).
It you are still firmly aiming to be a developer, it may help to narrow down what type of programming you like to do, such as web, embedded, systems, tooling, etc., and also spend a bit of time at least trying to imagine companies you’d like to work for evaluated on different dimensions (e.g. industry, departmental function, Fortune 500, billing/security/telco infrastructure/mobile, etc.).
One additional point to consider is why not do both by working full-time and immediately embarking on a part-time graduate degree? Granted, some graduate degrees (e.g. certain institutions or program structure) don’t allow for part-time enrollment, but it’s at least something to consider. That way you cover both bases.
* Google MFE or “Masters Financial Engineering”—many US programs have sprung up over the past several years
EDIT: I apologize in advance for the US-centric links in case you are outside of N. America.