Saturday, August 18, 2012

edX: College-quality computer science education

A soft  drum roll can be heard throughout the realm. It slowly grows louder as a herald appears on your screen. The Announcer sounds her trumpet, clears her throat. Drums stop and she exclaims:

    - "The blog heretofore known as 'Damien Learns Perl' is now to be referred to as 'Damien Learns Programming'. This broader title means greater variety and more life (or so it is hoped) to the speculations and musings of an eternal student of computer programming."

Crowd cheers.

    - "No camel was hurt in this process. Go home and spread the good word."

The herald lets out a content sigh then disappears in a puff.


I feel like writing about other topics than just Perl. I contemplated starting a new blog for a few seconds but it made more sense to give a new direction to this site.

Evolve or become irrelevant

This could be the motto of the computing/computer science/IT industry.
Tools keep popping out of thin air, new programming languages are invented, operating systems evolve rapidly, new devices appear that can be programmed, etc.
Those changes answer people's ever demanding requests.

You want to keep up but how to go about updating your skills?

The best motivator is to build something that you need. When my wife became pregnant, I started to build a "Baby Tracker" app to learn C++ and to keep tab on the baby's vaccination schedule, teeth growth, stool color, etc. I eventually abandoned the project because (believe it or not) taking actual care of my first daughter became a higher priority. By the time I had bandwidth again, the "baby tracker" need was moot.
Having a purpose makes you want to keep learning and carry on after you have hit a few too many obstacles.

This self-learning path resembles an obstacle course: the end line is visible but you first have to jump over all those hurdles to attain it.

Another way to learn new skills is through online education. Several sites already exist that put emphasis on learning in a fun way:

  • Codecademy (for beginning web programmers)
  • Khan Academy (originally created to teach mathematics but now proposing many subjects, including computer science)
  • Memrise (to help you learn vocabulary for new languages, including programming languages)
  • LCodeTHW (despite its name, offers a great way to start learning about programming)
  • etc.
Those are quality sites and I encourage you to visit them if you are looking for a first acquaintance with a new topic.
However, I want to share here something that I am truly excited about: online computer science college-quality education for free. Back in 2000 I got involved in the PEOI project whose mission was to bring professional education online to the masses (provided access to an internet link). The site still exists but the design has not evolved since its creation and course content was created by volunteers. Its noble goal though has found a champion today: edX.

Get a quality education

edX is a joint online interactive educational project from MIT, Berkeley and Harvard University, some of the best US universities. You can earn certificates along with knowledge. New classes are about to start this fall and include:

So go forth and upgrade your computing education. 
Evolve and ride the relevance wave!


  1. Are you planning to take a Perl class in edx, Damian ?

  2. Yes, I am actually following 6.00x and learning about Python.
    I have been enjoying this class a lot so far, as it teaches the basics of computer programming in a very structured way. Each lecture builds on the previous one + the finger exercizes and problem sets are quite interesting.