Between 1998 and 1999 I started a course on Computer Science (see here) and learned C. At that time, I was writing codes to solve other problems not related to computational biology.
Last year, I started a postdoc at NESCent. There I was finally able to increase my computer programming skills, but this time solving problems on computational biology.
But why have I decided to increase my skills in programming?
Since I started my course on Microbiology and Immunology I have always been working generating and analyzing DNA sequences of mammals, virus and bacteria. But as time was passing the ability of generating data was increasing at a very high rate. Nowadays, generating hundreds and hundreds of base pairs are cheaper and faster. We have now so much data to analyze that I decided to increase my skills in programming to be able to manipulate and analyze large data set, which are very common in the scientific world these days. We also need to create new methods to efficiently analyze and understand all these data.
At NESCent, I decided to learn Python. The reason for choosing Python was because I took some lessons while in Brazil and I ended up getting along really well with Python. It is a very easy and straightforward language to learn if you are a beginner.
I used and I still use several sources to learn Python and other languages:
1. The Codecademy website is very good for learning the basics in Python. It is not focused to Biological problems, but it does a good job to “teach” the basic you need to know in Python. You can also learn other programming languages using the Codecademy.
2. I also used the book “Practical computing for biologists”. It is a very clear book for biologists, and it explain Python and other stuff useful for computational biologists, including a good explanation on Regular Expressions. I totally recommend this book if you are a biologist and new to computer programming!
3. When starting solving the problem of simulating the replication of endogenous retrovirus, I also used the StackOverflow website. Many common questions are already explained in this website. If not, you can post your own questions.
4. Finally, I have recently decided to learn Java. For that I am using the Udemy website and the course I am doing is here. So far it is very good!
I have also learned R. But after learning Python, R is very straightforward. I did some of the tutorials from the R website, and searching for more information using Google. Usually I use R to make plots and to do some statistical analysis.
Once you learn one language, the others became easier to learn.