How would you describe the attention to craftsmanship of software in scientific computing? The most illuminating thing about Climategate to me was the state of the software: is this kind of code widespread? Is there interest in improvement? If I went to work for a research team and suggested pairing, code reviews, version control, continuous integration, or other accepted good practices from my experience in software development how would that be received?Also, the dilemma in my mind is whether I can stand going back to grad school in my late 20s for a career I don't really know much about. I'm not sure if you can speak to that experience, but would you say it's been rewarding?
PaulHoule|14 years ago
I remember getting a C program from one of the biggest names in both undergrad CS education and machine learning and finding it wouldn't run on 32 bit machines because it had a static array that consumed 4 GB.
Even in computer science, the product is papers, not working software, and the situation is worse in other fields.
As someone who had an academic background, I think going from "pictures of cats" to "math and science" is like going from the frying pan to the fire. Entry level positions in the math and science Juggernaut pay from 2-5x less what a junior or senior person in the social media Juggernaut gets. You can sink anywhere from 5-10 years into getting a PhD, and then you'll find that there are just enough new jobs for the children of yesterday's professors who weren't totally destroyed by their upbringing and that they've got an insurmountable advantage in the game of musical chairs.
Science and Math is a system that uses up young people, especially men, the same way that the racing industry uses thoroughbred horses. There's no realistic career path for 95% of the people who get involved... other than working on "pictures of cats" or whatever it is that pays.
Create|14 years ago
"How should we make it attractive for them [young people] to spend 5,6,7 years in our field, be satisfied, learn about excitement, but finally be qualified to find other possibilities?" -- H. Schopper
What an euphemism. Almost like a scam.
tom_b|14 years ago
In general, you should interview a team when you're trying to get a job and trust your gut on how much those practices you mention will be accepted. It's a little harder here, because for years the model was assign a dev to a project and that dev will own the entire project from start to finish. We still don't do a great job working as a team.
Craftmanship can take a back-seat to schedule. Lots of operational stuff (for grants and administrative purposes) gets pushed off to the last minute. And for research, the focus here is on the results much less than the process. The researchers don't care if you do it in a bash shell script or a clojure jewel as long as it's done - kind of like a startup. So if you can do it fast in a maintainable and cool way, all the better.
We are suffering the effects right now of some bad QC code. A non-insignificant amount of data had to be re-analyzed because of some code bugs. I would say interest is currently much higher in improvement. :-)
I did grad school (MS in CS), went to industry, and then came back. Returning was mainly lucky timing and personal network effects. But I was late 20's when I did grad school, so we're not too different. It was completely worth it for me.
Some PIs are like typical academics - they have MD/PhD (usually both) and can be somewhat dictatorial. But some are great and want your thoughts and expertise.
You could consider simply getting a job doing typical IT work in an organization like this. You're probably right that eventually you'll want some grad school (we are walking around in credential heaven here), but you could always try it out first.