[Ask HN]How to get started with contributing to bio/astronomy software?
This question is coming from the standpoint of somebody who wants to contribute something meaningful using software development preferably in bioinformatics/computational genomics/astronomy. I wish to leverage my existing expertise (software development) into something that will make a difference and might also help in advancing the field.
Why did I choose these fields? Astronomy is something that has always held a fascination. The biology related fields because of two reasons
- I like working with data (true for astronomy also)
- I want to do something that helps improve human life
I am sorry if these sound pretty vague, and biology and astronomy are really different fields, but I hope you will understand the core of my question. Any suggestions on roadmap, study trails, strategies would be really appreciated.
You have interests, and you are interested enough to ask, but are you interested enough to follow through? --That's the tough part.
HN sees a lot of questions similar to yours, and even the best replies can be summed up with three steps:
In your case there would also be step #0 pick a field. In most cases, step #1 seems overwhelming. There is a ton of work in just getting familiar with the basics in a given field. With the fields you mentioned, I'd start with universities. There are tons of universities with departments/schools specializing in the fields you mentioned, and the majority of them have publicly accessible projects. You could literally spend months quickly reading all the various projects/code from universities with Bioinformatics departments, and that doesn't include the related research papers. Take your time, and be patient. Try to quickly cover as many of the projects as you can find, and remember your goal is to just get familiar with all of the work that is currently getting done by all of the related, but separate, groups. Keep Notes.1.) Get Familiar 2.) Get Involved 3.) Get Hacking!Once you're familiar with the bulk of the projects out there, decide on something that interests you a lot, and get involved by contacting the group. Get to know them. Get to know their published research. If you have any difficulty with the people, it won't be any fun working with them, so politely disconnect and move onto another project.
When you find a project that interests you and people you want to work with, then get hacking. Learn the codebase. Since every project has bugs, start with the bug reports, and providing patches. Do not be surprised or upset if your patch is not accepted -- this happens a lot when you're first starting out on a new codebase. Ask for feedback on both your approved patches and your rejected patches. Try to learn from the feedback of people who know the codebase and conventions better than you do, but remember to respect the time of others.
Always stay classy, and civil, and committed. --And if you figure out how to always be classy, civil, and committed, then tell me how. ;)
It really depends on what you mean by contributing and biology/astronomy software.
Many places if you want to write software that is close to the action , performing the computations and correlations that discover new things...then your best bet is some sort of technical credentials, some sort of field credential (get a degree in biology or find an internship/job somewhere) and then find a job in a university or industry lab which is working on something cool.
Then there are the citizen science type projects which take data from NASA and various other places and present it in a more useful manner so new things can be inferred - like Galazy Zoo for example.
Another option are likely to be small independent organizations that are working on smaller research schemes and need help in basic day to day stuff e.g. tools for automatically pulling citations out of pdf files and linking them together for paper discovery or simply just cataloguing and presenting know papers in an easy to digest format for public education. These may seem relatively small but every little bit helps push the boundaries, especially in some underfunded areas.
I am also very interested in how computation can help scientific endeavors. Have you seen Project Marilyn? I reached out there recently (open-source cancer research) to see if I could help but haven't yet heard back.
I'd be interested to hear what you've come across.
For biology, have a look at contributing to http://www.bioconductor.org/