3 ms·
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
by bjourne 3y ago
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.
- curiousgibbon 3y agoI'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).
- jhp123 3y agoYeah $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.
- clusterhacks 3y agoYes, 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!