How do I get started learning a programming language?

There are a number of different ways you can build proficiency in computer programming. Additionally, there are many different programming languages. You may ask: "what is the best language to learn?" Or: "what is the best way to become a good programmer?" The answers you will get back for these questions will be varied (and quite possibly opinionated). The best place to start is to identify the tools and approaches that are most appropriate for your research and your learning style. And don't be hesitant to just jump in by trying an online tutorial or attending a workshop. You will find along the way that some tools are better for you than others. And you will also discover that once you become proficient in one programming language, it is much easier to learn another!

This page contains links to several resources for learning computational biology skills.

  • codeacademy –– On-line, interactive modules for learning HTML & CSS, Javascript, jQuery, Python, Ruby, or PHP
  • Coursera –– An educational platform, partnered with universities and organizations worldwide to provide free, on-line courses on a wide range of topics, including biology, computer programming, and statistics & data analysis.
  • Udacity –– On-line courses in computer programming and other technical skills. Enrolling in the courses requires a fee, but some course materials are freely available (if you create an account on their site).
  • Rosalind –– An on-line platform for learning bioinformatics and programming through practical challenges and problem-solving. Exercises are set up in a game-like environment.
  • Learn Code the Hard Way –– On-line books and tutorials for learning Python, Ruby, C, regular expressions, and SQL.
  • Learn C++ –– On-line tutorial for learning C++.
  • Dive Into Python –– A free on-line book, aimed at experienced programmers interested in learning Python.
  • Course materials from a Python workshop –– The notes and exercises from a week-long workshop on scientific computing and programming in Python
  • tryGit –– On-line, interactive exercises for learning version control with Git. (by GitHub)
  • Pro Git –– A free on-line book for learning about version control with Git.
  • NCBI –– Tutorials and training material for learning the various resources provided by NCBI.
  • Practical Computing for Biologists –– A book by Steven Haddock and Casey Dunn that covers a broad range of tools that are applicable to researchers in the life sciences. (distributed by Sinauer Associates)
  • Unix & Perl Primer for Biologists –– On-line course material for learning Unix and Perl, aimed at people with no prior experience programming. (by Ian Korf)
  • Perl 5 by Example –– An on-line introduction to Perl by David Medinets.
  • Google Developers: Intro to R –– A series of web videos on statistical computing in R
  • Nice R Code –– A blog with tips and exercises targeted at researchers currently programming in R.
  • R for Beginners –– An on-line introduction to R by Emmanuel Paradis.
  • Stack Overflow –– A question/answer site for computer programming.

Are you interested in setting up your own website? It is quite easy using GitHub and that's what we did here. Below are links to information on creating your own GitHub page:

  • How to get started with GitHub Pages.
  • Bootstrap: a HTML, CSS, and JS framework for web projects.
  • PaintStrap: generate (or find) nice color schemes for Bootstrap web pages.
  • Jekyll: a blog-aware, static site generator.