Ask Slashdot: Scientific Research Positions For Programmers?
An anonymous reader writes "I recently (within the past couple years) graduated from college with a bachelor's degree in Computer Science and currently work as a programmer for a large software consulting firm. However, I've become gradually disillusioned with the financial-obsession of the business world and would like to work for the overall betterment of humanity instead. With that in mind, I'm looking to shift my career more toward the scientific research side of things. My interest in computer science always stemmed more from a desire to use it toward a fascinating end — such as modeling or analyzing scientific data — than from a love of business or programming itself. My background is mostly Java, with some experience in C++ and a little C. I have worked extensively with software analyzing big data for clients. My sole research experience comes from developing data analysis software for a geologic research project for a group of grad students; I was a volunteer but have co-authorship on their paper, which is pending publication. Is it realistic to be looking for a position as a programmer at a research institution with my current skills and experiences? Do such jobs even exist for non-graduate students? I'm willing to go to grad school (probably for geology) if necessary. Grad school aside, what specific technologies should I learn in order to gain an edge? Although if I went back to school I'd focus on geology, I'm otherwise open to working as a programmer for any researchers in the natural sciences who will take me."
The term is usually "research programmer" or something similar. However they're often time-limited positions rather than indefinite. A common arrangement is that a university gets a big grant, and needs to bring in some extra programmers to help out on the project for the ~3 years of a typical grant. The best-funded labs do keep some programming staff on semi-permanent payroll, though, because they always get a new round of grants before the previous ones run out.
I'd just start looking at job listings in the area you care about and see what skills or experience they ask for. Familiarity with data-analysis tools is often a plus, e.g. be conversant in R, be able to make some nice visualizations of data, etc. But that's only one area; there are plenty of others.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I think a solution a lot of people find is to split their day: they pay their bills with a job they can (just about) tolerate, and then use their free time to focus on their passion, perhaps in a small community (cf. FOSS development).
Also, academia is no paradise either: it's not so much about focusing on what you are interested in, but rather focusing on where there is funding, and where you can find your own niche. It's surprising and depressing how many niches are already filled: it's like trying to find an empty shell on the ocean floor.
If you want to get into scientific research programming with big data, you are probably going to have to engage with statistical programming. R is probably the lang of choice at least in the biological arena, due to FOSS and all the prebuilt packages. People also I've seen using Matlab quite a bit, but I think you wouldn't go wrong with R. You might also want to get engaged in something like Kaggle or the DREAM challenges, build yourself a bit of a profile on those arenas, and eventually try to team up with some guys on one of the challenges there, as a way of making contact with people in the big data research area. Any graduate training (postgrad as it would be called in Europe), would only help - there are many positions that just won't be available to you until you have had a 'research training' which means Masters as a minimum or preferably a PhD eventually.
Korma: Good
The NSA do all kinds of interesting mathematics. Betterment of humanity though? Eh...
systemd is Roko's Basilisk.
I reckon academia is heading towards hiring more programmers. We often have research grants where one of the employed researchers could be a statsy person with publications in the learned journals, or a computery person with lots of stuff shared in github and contributions to open-source projects and so on. The prof as PI on the grant is impressed by the former, I'm (as CI) impressed by the latter. Currently we tend to favour the statsy people, and they are often very poor programmers with little knowledge of version control, testing, Makefiles, awk, all that nerdy stuff that could make their life simpler. So I teach them...
I can only really talk confidently about statistics here (sample size = 1) but I know a bit about other places. University College London has a Research Software Development Team, for example: http://blogs.ucl.ac.uk/research-software-development/ and the whole development of programming skills for researchers is being pushed by the SSI (software.ac.uk) of which I am a fellow.
You might also want to look at Software Carpentry, a programme for training researchers in programming skills - there may be opportunities there.
So currently there's a few opportunities, but its getting better. A final thought though - you want to leave "the financial-obsession of the business world and would like to work for the overall betterment of humanity instead". Hahahaahha rofl. Academia is just as financially-obsessed as any trading house. I'm spending today doing paperwork for expenses claims, travel, grant proposals... Its all about the money... Oh do I sound disillusioned? Okay, I have probably stopped some people catching malaria, but not today...
I work for a national research organization ( small country, higher-income part of Europe ). It is different here:
* Research staff and non-research staff, here, too ( non-research = secretaries, lawyers... )
* All software engineers are research staff
* You must not have a PhD, although it helps
* Software engineers can lead in research, especially in our dept., which focuses on networks, security and some types and aspects of software / programming
* Direct connections to the good of mankind are not so rare. One of the specializations of this institute is environment; another one is crisis and disaster management
* Most projects are, indeed, rather small. 2 - max. 5 people for about 1 - 2 years is the standard
* You will mostly produce demonstrators / alphas. You will never produce software above TRL 6, for sure.
* I second the part about financial obsession
* It is NOT the same as working with Google, IBM, et al.: it is more laid-back here, you can actually take time to think, and although mgmt. is generally as stupid and incompetent as elsewhere, there is not as high a pressure upon programmers as elsewhere.
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
I can tell you that with out a PhD, your are viewed as little more than a trained chimp. Masters in both CS and Applied Math seemed to mean nothing, the fact that these so called doctors were incapable of writing more than 4 lines of intelligible code was beside the point.
It was fairly annoying, and none of my work is cited in their papers.
I am very small, utmostly microscopic.
Three words: Math, math, and math.
If you don't have the advanced math skills, your use to a scientific research effort will be limited.
Cloned foods give the statement "We had that last week!" a whole new meaning.