Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Moving into Academic CS from Industry?
5 points by jhp123 on Oct 15, 2023 | hide | past | favorite | 17 comments
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?



Get on the speaking, lecture and conference tour on your topics of interest. If you have talks on youtube or online courses, that will help. Find people to publish some papers with and reach out to dept. heads with your CV. You don't need to show published papers if you're working in defense etc. In general though, get the research/papers conversation started with colleagues and start interviewing (and say you're working on publishing). Assistant/associate prof. bars are kinda lower at lower tier schools, but not by that much. In general, its better to apply to jobs that have listings as internally listed jobs often have a candidate in place for them. Good luck.


most job reqs for these positions seem to say that a PhD is required; are you saying that published papers, conference talks etc. could serve as an equivalent for the PhD?


Per my understanding it depends on the field as experience may count in those, the position, and where you apply. Two-year colleges or community colleges certainly interview Master's candidates, and if your experience is extensive it can be helpful against PhD candidates.


Not impossible, but very difficult. Reading between the lines it seems that you are underestimating the effort involved. You say that you are interested in type theory. Do you know everything about Hindley-Milner systems, lambda calculus, System F, etc? Great! That's the very basics and what you will learn in a CS master program at any reputable university. But to actually do research in this area, you need to know about all major results published in the field since the 1970s. Learning all that takes a lot of time. Then you need to learn the practicalities of research, how to write papers, how to write papers that gets accepted, etc. Phd programs aren't multi-year affairs because academia wants to prevent students from progressing, it's just that these things take time.

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.


I'm an academic. I think you make valid points but get the effect size wrong. It's entirely possible to contribute to academic fields without intimate knowledge of 50 years of past results. Breakthroughs come from hard work, inspiration and luck in different amounts each time. An outsider perspective can be more useful than being highly trained in the dogmatic status quo as you see things differently. I'd caution that raw intellectual talent probably differs more than you tend to notice in industry. Academic field leaders can be frighteningly smart, and while some people enjoy being the slowest person in the room it can be tough to handle.

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).


Yeah $25k a year for five years or more would be very hard to justify, that's leaving at least half a million dollars on the table in terms of lost earning potential.

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.


Yes, the financial trade-offs for getting a PhD versus simply earning median software engineer salary is extreme. So much so that most people should only consider the PhD if that trade-off simply isn't a consideration.

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!


You are right. Still, you need intimate knowledge of the state of the art in whatever field you're approaching to make your dent. And type theory, which TS gave as an example, is a field where all low-hanging fruit were picked decades ago so you'll have a lot of reading and understanding to do to get started. Something more "applied" may be more approachable. Like type theoretic construct X as applied to TypeScript to prevent integer overflows in domain Y (I don't know anything about type theory). A good supervisor could help TS pick a realistic subject. Unfortunately for TS, not every supervisor is good... But even with an awesome supervisor, awesome subject, awesome work ethic, and awesome talent, it's a lot of work.


While it might be better if you better defined what you think the "academic career path" is, I'll throw out my experience . . .

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.


Thanks for sharing your experiences. From what I understand, earning a PhD would take some 5 years or more, with minimal income .. it's hard to justify the lost income unless I could accelerate the process significantly.


Do you have a friend in any of those field? Sometimes academia ask for the number of published papers and if you can collaborate with a friend to publish a few papers it may help. It's also useful to see if you enjoy the process when you know how the sausages are made.


I think lots of European universities, where there is a high demand for CS/SE lecturers and engineers, may easily take someone with your profile for a lecturer (teaching-oriented) or (permanent) research engineer position (R&D-oriented). That is a good way to enter an academic career without a PhD, if you know where to find this kind of positions.

The 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.


What kind of European universities do that and how do I find them? I've been a lab assistant at a university before and would like to evaluate this opportunity


thanks, that's an interesting idea and I didn't realize those markets might be easier.


I'd say take a couple of courses first and see what happens.


If you can learn something for 5 years in your 20s, then it is going to be 10 years in 30s, 20 years in 40s and so on.


I'm not concerned about my ability to handle the coursework or research, just the practicalities of entering the career




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: