Being a better programmer: learning Python with Udacity.

16 Oct

When I started my “Being a better scientist” project, after reading Gretchen Rubin’s Happiness project, I decided to start with a one month focus on “Being a better programmer”. I made three resolutions.

1. Learn python by finishing Udacity‘s python course.
2. Look it up, write it down.
3. Annotate, annotate, annotate.

Like many biologists, I am a self-taught programmer. I use C++ and R, but for a long time I have wanted to learn a new language. One that is easier than C++ and faster & more suited to my needs than R. I love using R, so I think the new language will not replace R, but I think it could be useful for some of my projects. Plus, I think that by doing a programming course, I will learn stuff that could be useful for working in any language.

A few months ago I already started a python class at the online university Udacity. Even though I enjoyed the course a lot, I got stuck after 3 units (out of 7). This month, I will finish this course. Today, I just finished unit 4. In the next three weeks I will do units 5, 6 and 7.

What I like about the Udacity CS101 course:
1. The course is entirely web based and is VERY interactive. There are tons of little quizzes and programming exercises.
2. In the programming exercises, you can check the answers by executing the code and running some tests, and then have it checked by Udacity. If my code is almost correct, the response may be something like: “Try again, your code didn’t pass the following test …” – which is very useful and motivates me to, indeed, try again.
3. The lecture parts are short (2-7 minutes) which is good. The lectures are also interesting and teach some computer science theory.
4. It is free. I know I should be willing to pay for a useful course, but honestly, I don’t think I would have started it if it wasn’t for free.

What I don’t like about the Udacity CS101 course:
1. Before I started, I had no idea how long it would take to do the course. It is split in 7 units, but I didn’t know if a unit corresponds to an hour of work, a week of work or a semester of work. Turns out it is about 10 hours for me (rough guess).
2. The course lets you build a web crawler and by doing that, you learn all the python you need for the task. Although I think it is good that they focus on a specific task, I am not interested in web crawlers, and I would prefer to build something related to biology. How about some alignment software?
3. The time it takes to execute code (on the Udacity servers) is somewhat long which is slightly annoying.
4. Very few of the Udacity teachers are women. Maybe that’s why the fun examples are about cars and superheroes.

Advertisements

4 Responses to “Being a better programmer: learning Python with Udacity.”

  1. pleunipennings October 23, 2012 at 6:00 pm #

    Comment to myself: I just finished Unit 5. Just two more to go!

  2. Soumabha RayChaudhuri November 16, 2012 at 4:37 am #

    I have recently tried out the Coursera – Learning To Program : The Fundamentals and it was really great !!! EdX’s 6.00x is a bit weak but really delves deep into Python complexities.

Trackbacks/Pingbacks

  1. Blended learning? I do that all the time! | Being A Better Scientist - January 19, 2014

    […] I tend to like new technologies and mostly see the positive in them. Of course, I know that new technologies can bring harm too, but my initial feelings about new stuff are usually positive. In line with this I love the idea of MOOCs (massive open online courses). 100,000 people learning python from some of the best computer science teachers in the world. Isn’t that awesome? (I wrote about this earlier here) […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: