Thursday, December 12, 2013

How You can Learn the Programming Basics in an Hour (Code Week 2013)

This probably would have best been posted a few days ago, but this week is computer science education week, or "code week" (coding just means writing computer programs).  From December 9th to the 15th, over a million people all over the US are promoting computer science for students ranging from elementary school to college, as well as those of us finished with school.  This is not only really cool because it is generating enthusiasm for computer science education, but it is also providing a lot of real educational resources (like online tutorials) for people of all ages to learn how to code (how cool is that?!).  In this post I want to go over some of the cool things about the code week initiative, talk about why it's important, and offer some of my experiences as a biomedical scientist who started computer science work in his graduate thesis lab with little previous computational knowledge.

Many people are intimidated by the prospect of working with computers (programming).  In my experience, one of the biggest things that really turns people off to programming is that they think it is super difficult to learn a computer language and that they can't do it.  I have experienced this multiple times when talking to fellow biomedical researchers who want to start integrating computational biology into their own work.  People are often concerned that they will be unable to learn because they don't have a computational background, and/or they are worried because they don't know where to start or what the learning process will entail.  To this I always respond by telling them that they certainly do not need a computer background to learn programming, and that the basics are surprisingly easier to learn than they think.

For example, when I started working in my graduate thesis lab, which is a microbiome lab that focuses largely on DNA sequencing analysis, I had nearly no computational experience.  I could not even do basic processes on our remote computer server, like making a new folder.  After learning through various online resources and even attending a couple of workshops, I learned the basics and, while I am still constantly learning (I am by no means an expert programmer), I have a pretty decent knowledge which lets me do some really cool and valuable research.  This story is true for most scientists who continue to learn computer programming, so it is definitely possible for you too.  And now the resources are even easier to access and you can start learning the basics in just an hour (I'll provide you the links here in this post).  So don't count yourself out because you know nothing about computers or that it seems too hard, because you will be surprised how quickly you will pick it up.

How can you start to learn the programming basics?  One of the big pushes for code week has been the 'hour of code', which is a collection of lectures/tutorials whose aim is to teach you the basics of coding in an hour.  While programming is difficult, it is also manageable and fun, and you will definitely get
the hang of it with practice, just like learning to play piano or learning how to cook.  So if you want to start learning, or at least get an idea of what programming is all about, this would be a great week to start.  Schools and organizations are providing opportunities for everybody and anybody to start learning about computer languages and, for those of us who are not in school right now, there are other opportunities as well.

This is all great, but how do you start?  The best place to start looking is at the learning section of the code week website.  Here they provide links to lectures given by celebrity computer scientists including Bill Gates and Mark Zuckerberg, interactive games that teach the conceptual basics of programming, interactive coding tutorials, and even university level computer science classes through programs like iTunes U.  And speaking of iTunes, Apple is getting in the spirit of things by providing free 'hour of code' workshops at all of their Apple stores, which is pretty neat.  Many of these lectures start out assuming you know nothing about programming so please check it out to learn more.  Additionally, if you want more information on ways to start learning about computers and programming, leave a comment or even shoot me an email and I would love to get you some information on good tutorials, lecture videos, or other places to start.

Do you already have a programming foundation, or are you a teacher looking to expose your students to computer science?  Check out the code week teaching opportunities to help others learn, or check out the teacher resources you can use to help teach your students.  Additionally, I came across this very interesting paper by Libeskind-Hadas & Bush which outlines a course they setup at their university which exposes biology freshman to computer science basics, which is only increasing in importance (see works cited).

I really can't stress enough how important computer science is, even if you have just an hour's worth of background knowledge.  Understanding computers is important because our current society relies heavily on computer technology, and computer scientists are in very high demand in the job market.  Additionally, and just as importantly, learning a computer programming language really does force you to think in a different way that challenges you to plan, outline solutions to problems, and execute those solutions (just like Steve says in the clip above).  I can also attest to the growing importance of computational biology for all biologists.  Technology is allowing for great amounts of data collection which need to be analyzed using computers, and even if you, the biologist, are not doing that research, the chances are that you are going to come across this kind of research in your field and you are going to want at least some background on how the analysis was done.  So whether you are in biology research or really anything else, understanding computer science and programming is important and at least worth an hour of your time.


Libeskind-Hadas R, & Bush E (2013). A first course in computing with applications to biology. Briefings in bioinformatics, 14 (5), 610-7 PMID: 23449003

*Stock human computer image: source
*Job outlook graphic: source


  1. GEOF! Funny I just saw this now, but about the time this was going on I was maybe going to jump try jumping into programming. Haven't taken any steps yet, but this might be a good starter. Thanks!

  2. Awesome! Hopefully some of these resources will prove helpful. All you need is an hour to take the first step (one of the hour long lectures) and you will be on your way. :)

    Let me know how it all works out for you.