Learning to Code: A Biologist’s Journey
I always saw myself involved in biomedical research, as I enjoyed my science classes and wanted to do work that could potentially have far-reaching impacts. However, it was not until much later in life that I discovered the power of coding and how it could be used to understand biology. It can be use
d to answer questions in epidemiology, genetics, evolution, and ecology. I also learned that I was quite good at coding. I wish I had learned it earlier in my education. Society had impressed onto me that a coder was a certain type of person: a male who liked video games and wanted to develop an app or website. As I did not identify with any of these characteristics, I figured I must not be a coder and was incredibly hesitant to take on that title, even after learning how to code. I hope to encourage others to not make the same mistake and try coding, even if they do not fit the stereotype. Below is some general advice on how to begin your journey to becoming a coder.
Pick A Language To Start With:
I personally started with R programming and have recently learned Python. These are the most common languages people begin with, especially those interested in data analysis, as their syntax is straightforward. I know others who began by learning MatLab, which is also useful for data analysis. Python and R are favored by biologists, while MatLab is often used by engineers. In addition, Python is more of a “Jack of All Trades” programming that can be used in many contexts, while the other two are used specifically for data science.
Find An Online Course for Your Language:
There are a lot of online courses out there (mostly free) to get you familiar with whatever language you are interested in. To learn R, I took a DataCamp course, and for Python, I took a course in Udacity. In addition I found a Python for Biologists Bootcamp, that I found incredibly useful. Other options include coursera, HackerRank, as well as many others. I would recommend doing several courses, as each one will have their own strengths and weaknesses.
Words of caution: do not expect to become confident or even comfortable with the language after completing the courses. Just like a spoken language, comfort will only come after lots and lots of practice.
Find A Project You Are Interested In:
Once you have the basics of a language down, you can start developing your coding skills by working on a project you are interested in. Some project ideas include: analyzing gene expression in disease, mutation rates of viruses, quantifying population changes of species, or studying genome evolution. I personally use data from The Cancer Genome Atlas to study splicing in cancer. Whatever project you are interested in, you should reach out to someone who is in your field of interest and ask where to get data to analyze. There are many publicly available databases out there, but I would recommend having a guide before jumping in there.
Be Exceptionally Stubborn and Meticulous
Once you start writing scripts for your project, mistakes are expected to happen. It is then your job to go find them and try to fix them. Google the error, re-run parts of the script, read through the script over and over again. It can certainly be frustrating, and if you end up yelling at your computer that is ok. I have certainly done it. But once you have solved the problem, it will be one of the most rewarding experiences.
Identify Personal Gurus: They Will Be Lifesavers
In my experience, I was able to solve about 95% of my problems on my own. However, for the other 5%, I would probably still be working out the problem if I had not asked for help. Often, it was a stupid error: like putting code inside a bracket instead of outside or saving a file in the wrong format. While the internet can help you troubleshoot, sometimes it takes someone with experience to look over your code to identify the problem. A guru can be found in a co-worker, advisor, lab-mate, classmate, friends or family. Don't be afraid to ask for help. Most coders actually enjoy troubleshooting problems.
I hope these tips will help you in your coding journey. While it may be frustrating at times, it can open a world of possible discoveries. I now consider myself a coder and love using this tool to answer biological questions.