Introduction

Steve Jobs

“Everyone in this country should learn how to program because it teaches you how to think”

Why learn programming?

This is a frequently asked question that is why I should learn a programming language. There are multiple merits of having an understanding of the basic framework of computer programs. First, learning a programming language helps us develop logical skills, that’s because programming requires breaking down a problem and approaching a solution in a logical manner. All the computer algorithms are based on the idea that – understand the problem, break it down into different steps, and then go about solving the problem step by step. In the modern world everything is based on computers and having an ability to communicate with computers (via programming language) would help us understand the basis of functioning of any computer program. We’ll be able to “sense” the workflow of a program and to draw a relationship between input(s) and output(s).

Why learn Python?

Another frequently asked question is why should I learn Python programming Python is the modern programming language that is being actively developed. It offers all the features expected out of a high and programming language that too with a rather flat learning curve. The coding syntax is pretty much like writing in plain English so that it makes it easier for a novice to learn this programming language. This advantage is particularly applicable for researchers in the field of Biology because, conventionally, students of biology have little or no exposure to computer related subjects. So to get them started with programming, Python is an ideal choice. There are of course other advantages as well, like Python is an object oriented programming language. It’s an interpreted language i.e. the code is executed line by line which helps a new coder to identify and debug errors somewhat easily. Most importantly, python offers plenty of libraries to add additional functionality specific to a particular domain. For example, libraries like NumPy and Matplotlib can be used for numerical analysis and data visualization, respectively. Active development and a large user community allows exchange of ideas and speed up troubleshooting tasks.

I’m a biologist, why should I learn to code?

Modern Biology research is highly data intensive. Platform technologies are generating data like never before; and to parse the data we need computers. To use computers innovatively and productively, knowledge of programming is a must. Further, there are many software available for bioinformatics research; having an understanding of programming would enable us to interface with these tools in a much better and efficient manner than otherwise. To be a skilled computational biologist we need to understand the workflow that connects – concepts to algorithms to coding. One need not be an expert in all these domains but must have a basic understanding of this workflow. Once you have a vision of the big picture and you are an expert in at least one of these components then you can always collaborate with other experts to do wonderful things together.

In Bioinformatics, particularly in the recent past, a lot of tools have been developed using python, e.g. one of the most popular structure visualization programs PyMol is developed using Python. Similarly, there are many other libraries that facilitate different kinds of analysis using biological data. Considering all these factors, the ability of code in python is definitely an asset for biologists doing data intensive research.