Does anyone have any advice for a computer science student seriously looking at the field of computational biology as a place for a career? I'd all but forgotten about biology until reading The Diamond Age right before seeing a video of ATP synthase in action [1].
Now, I know stuff like that doesn't have a lot to do with what is done in computational biology, but it did fire the imagination. I'm working my way through Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology by Dan Gusfield [2], and have implemented (with tests) all of the algorithms encountered thus far in addition to some of the exercises [3]. So far, I really enjoy all the material.
Clearly reading a textbook is not enough to break into a field, but my degree is one in computer science and pure math with an internship in the HPC field. It's getting bit late to throw in a minor in biology or anything like that. However, all of my research-leaning friends in physics and such tell me that what everyone wants is someone who knows how to code, which is certainly something I know well. Is that similar to the situation in computational biology?
Any other advice or knowledge of what it's like to work in the field would also be greatly appreciated :)
It's pretty hard to give good advice without knowing if you want to go into industry or academia. The job market for computational biologists in industry is tight and problem-specific, and you'll generally need some research experience before you can land a gig -- there's not much computational biology going on that isn't considered "research" (even in industry).
That said, I'd recommend you start off by looking for a programmer gig in a good research lab. It's not as difficult to get one of these jobs because good CS students usually go into other fields, and academic labs are more willing to train. Spend a few years there learning the process of research, and you'll be much better qualified for an industry job. You'll also have a better idea if you really want to pursue computational biology as a career.
Other posts in this thread recommend applying for engineering jobs at biomedical startups (23andMe, Counsyl, etc.) That could be a decent option, but remember: if you're working on the website (or the robots, or...), you're not learning how to do computational biology. So it may not be the best long-term choice if you're interested in the science. Make sure that the position fits your long-term goals.
Finally, the general rule in computational biology is that "biology" is the most important word. From the perspective of a biology researcher, programmers are a commodity -- an expensive commodity, but still generic and interchangeable -- but biologists who know computer science are rare. The only way to ensure long-term success in this field is to be the latter. So regardless of what kind of job you pursue, make sure that you're spending at least as much time learning the problem domain as you are learning about computers. You really do need to become a domain expert. Being a computer scientist isn't enough.
I would definitely want to go into industry. This is not to say I am averse to getting a masters degree, but I am having great fun in my internship in the private sector.
I believe I'll have one more summer left in my degree, so that's 4 months open for an internship. Do you suppose it would be possible to get a meaningful feel for the field in practice by finding an internship at a lab or company somewhere?
It's not much time, but it's better than nothing. You'll get a taste for the field, but that's about it. Start looking now.
If you have another school year before graduation, you should also seriously consider doing some work in a campus biology lab. If you're at a larger school, there will be at least one lab that does computational biology work, and if not...well, it's important to know something about biology. A winter spent in a lab will be a learning experience, either way.
And if you're having trouble getting your foot in the door, here's an easy way to get a gig in a campus lab: work for free. Tell them that you're a CS student interested in computational biology, and that you'll be free, eager labor if they'll let you learn about biology research. It's a time-honored tradition -- nearly everyone in the field gets their start this way.
You can consider just volunteering to do a project for a biology lab. You have the tools (quantitative thinking, programming, etc) but to work in biology you need to know about some specific biology knowledge domain. There is shortcut, you need to read text-book and then review articles in a sub-discipline until you are comfortable with the area. After that, reading current research papers will get you to the cutting edge and you will start to see where you can contribute. It is possible to do this on your own but it would be much faster to get guidance, either through a course or as I said above to work directly in a lab that is doing some biological research. You would also have to figure out what areas of biology you want to work on.
Many bioinformaticians come from either biology or CS so this is a common question. In general if you are from CS you have to learn the biology, and if you are from biology you will have to learn to program. Both types will also usually have to learn some statistics as this is important for research.
You mention that you enjoy the field which is perhaps the most important thing. I recommend finding a good masters degree in bioinformatics which should introduce you to many of the basic topics. A bioinformatics masters degree will also make you more competitive than with a degree alone. You'll need a PhD if you want to stay and go further in Academia.
I'd prefer to end up in the private sector. A masters in bioinformatics would be interesting... what universities have good programs for that? Are they very competitive to get into? Would it be reasonable for me to attempt a bioinformatics masters with zero non-self-taught knowledge of biology past high school?
Since you're reading that textbook it seems like you want to work on new algorithms for computational biology. In that case, you'll want to get a higher degree in bioinformatics.
Learning bioinformatics algorithms would probably suit me best, yes. On the other hand, I believe there is great inherent value in creating things, so the software dev jobs would be great. Would taking that route eventually limit me? It seems that at a certain level I would need the knowledge that comes with a masters in bioinformatics.
Having already started a company, I can say this is true and wish this list I'd had it before.
BUT, the majority of these "commandments" I already knew.
The important point missing here is that until you do it on your own (solo or with partners), you won't get that art & science part right: you'll just think it's luck.
(prior expertise in your field + management/leading experience certainly helps)
I agree with the point, although it's a little "all over the place".
I'm taking it as a "beware sign" for knowing what's ahead; i.e. to consider the big-picture around whatever you are building (it's very easy to get sucked into some "interesting direction" and get side-tracked; us geeks tend to do that).
To answer your question: yes, if I would be an investor, I'd also want to see the prototype/MVP, because:
- less risk taken
- 1 picture == 1000 words => demo == millions words
- you show you can execute what you wish (not getting side-tracked)
from founder point of view because:
- early adopters will help you shape your product (I just pivoted this month)
I see what you mean about it being "all over the place" first they discuss a great product alone is not enough but then instead talk about plans and ideas rather than prototypes/implementations.
I've never started a business so my naive viewpoint is that many of the most successful companies appear to be built on having a great product alone then focusing on profit second, for example Google, Facebook, and Twitter. These are the largest of the the large though, so is the story different for smaller companies?
Never started a company either, but I think the key issue is barrier to entry. Facebook and Twitter have networks which are impossible to duplicate, and Google got a lot of money up front and used it to move really fast. In contrast, the great product they describe in the article is a standalone piece of software by a small group, easily duplicated if it takes off.
That's not even the story for most big companies. Consider Apple, Microsoft, Toyota, Honda and Ford.
In most cases "build great product first then focus on profit later" means you run out of money before anyone buys enough of your product for you to get back in the black.
Now, I know stuff like that doesn't have a lot to do with what is done in computational biology, but it did fire the imagination. I'm working my way through Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology by Dan Gusfield [2], and have implemented (with tests) all of the algorithms encountered thus far in addition to some of the exercises [3]. So far, I really enjoy all the material.
Clearly reading a textbook is not enough to break into a field, but my degree is one in computer science and pure math with an internship in the HPC field. It's getting bit late to throw in a minor in biology or anything like that. However, all of my research-leaning friends in physics and such tell me that what everyone wants is someone who knows how to code, which is certainly something I know well. Is that similar to the situation in computational biology?
Any other advice or knowledge of what it's like to work in the field would also be greatly appreciated :)
[1] http://www.mrc-mbu.cam.ac.uk/node/448
[2] http://books.google.ca/books/about/Algorithms_on_Strings_Tre...
[3] https://github.com/ahelwer/IvoryTower/tree/master/ASTS