Ask HN: Moving into Academic CS from Industry?
Hi all. I've been a programmer for about 16 years now. I've worked at a lot of different companies and I've mostly not enjoyed the career. At this point I think it's prudent to give up on churning through companies looking for a good fit, and consider more radical changes.
My interests tend towards the more academic side of CS - parsers, type theory, programming languages and so on. So I'm wondering how difficult it would be to transition into the academic career path.
Has anyone done it, or know how it might go from personal experience? What would be the actual steps involved?
17 comments
[ 4.2 ms ] story [ 49.6 ms ] threadThe UK and Scandinavian markets are quite straightforward and will not have any local language constraints. Hiring processes are also simpler, without requirements that are hard to meet for an outsider. The Netherlands and Ireland are also worth considering.
In the US, I think the market is a bit more competitive, especially at R1 institutions. Happy to provide more advice via email.
I work as a programmer at an academic/research institution. But the job is just normal IT and light programming. I think finding a role similar to mine would be easy for you. Your MIT math undergrad will probably be more than enough credential signaling for that type of job to go along with your professional experience.
My path back to this environment for work goes roughly: earned MS in CS directly after BS in CS, two longer tenure jobs in industry (8-ish+ years total) after grad school, returned to academic/research institution because of personal network and also having skills needed for new role at institution. I have been here for 10+ years. Much of that time it seems like my earnings were at least 20% less than market rate for my region. But the pace of the job was easy and many people "settle in" to these jobs.
There is some autonomy here and a little room to stretch your day-to-day work to fit personal interests. But much less than you may expect. The work environment is not THAT different than industry and I personally have found that it is oddly more political here than expected with respect to who gets to do what work. I have been able to be involved more directly with researchers as a "side gig" when my day-to-day job responsibilities allowed. I probably would have left this role but personal+family responsibilities made the flexibility of the job hard to move on from. I am also in an unusual position wrt to funding - our group is heavily funded by hard money, so we are significantly less dependent on grants than even some research/teaching staff at my institution.
Your academic interests are probably going to be hard to fit in - those are "pure-ish" CS topics. I know some PhD applied math guys who do research computing support and their roles are often limited to helping with existing libraries with users of a research compute cluster. They aren't doing much applied math . . .
Are you willing to pull an extra stint of time in grad school for a MS or PhD? Joining a good research team and publishing with them could build up your CV for the academic job market. It isn't super critical unless you want to be research faculty somewhere . . . Some CS programs have a "professor of the practice" job role that could be attractive but it usually involves significant entry-level teaching requirements.
Not sure if any of this is helpful. Good luck figuring it out.
Then there is the financial side too. You're unlikely to ever earn as much in academia as you do now as a developer with 16 years experience. Phd and postdoc salary may be 1/2 or 1/3 of what you're making now. Then there is the age thing (16 years of experience implies you're 35+)... Your professors and supervisors might be younger than you.
But if you fed up of writing crud apps or bug fixing the shittiest t-sql code in the world then maybe it is worth it. If you've done something you didn't like for 16 years then it is time to stop and reconsider.
Also, you may find that PhD salaries are MUCH lower than 1/3 of an experienced developer salary. If you do the standard thing of 20h per week GTA/GRA work and the rest (nominally 20h but likely 40h) independent study, you might get $25k per year plus meagre health benefits. If you're financially independent this is manageable, but relative to developer salary it's poverty in high COL areas of the USA (which is where the good universities are).
I think I do have a unique perspective and a pretty respectable level of knowledge and ability for CS research, obviously I wouldn't know for sure until I tried to enter the field. For example I've written a typed UI system based on monadic coroutines, with typed embedding of invariants around focus behavior, scrolling, and responsive display ... I've seen papers and theses on typed UI programming in Haskell which seemed pretty similar in terms of scope and sophistication.
I was kind of hoping there would be more paths between industry and academia in CS, because the industry is so large compared with other research fields like math or physics.
Somewhat more problematically, "a pretty respectable level of knowledge and ability for CS research" is table stakes for just about every grad student in a CS program. This is especially true at better programs. You might be sadly surprised just how little your industry programming experience is valued in academic CS research - in my grad program, being highly skilled in multiple programming languages was assumed.
By better program, I mean programs like an R1 university CS research program - I am specifically excluding terminal, MS-only CS programs in that statement. Many of those terminal, MS-only programs are actually credential programs for career changers (people who want to upgrade to a SW engineer job and had unrelated undergrad majors).
You might want to look at how the papers and theses you have been enjoying were produced. I strongly suspect that the writers were mostly grad students working under a current professor who had grants to support grad students to do that work. There probably isn't much (any?) demand to hire programmers to do research programming work - that is what research assistantships pay students for.
Maybe a good analogy here would be think about someone who has a physics undergrad, has worked in applied engineering in the energy industry for 16 years, and is now interested in being hired into a university role that allows that person to do more of their day-to-day work directly in particle physics research. What physics department is going to hire that person? Why? Keep in mind there is a verifiable surplus of physics PhD postdocs looking for that gig . . .
All this isn't meant to be overly discouraging, just my thoughts. Honestly, just keep a list of universities you wouldn't mind working at and once a week or so, browse all their job listings to see if something fits your interests and apply if it does!