Motivation

On December 8, 2013, US President Barack Obama asked every American to give learning to code a shot, kicking off the Hour of Code campaign for Computer Science Education Week 2013. At the convention, Obama said, "learning these skills isn’t just important for your future, it’s important for our country’s future."

In February of 2013, Mark Zuckerberg, Bill Gates, and several other big names in IT urged kids to learn to code through video messages. I particularly like the quote at the beginning of the video, where Steve Jobs says "Everybody in this country should learn how to program a computer …\ldots because it teaches you how to think."

The message here is that programming is an important skill for this information age.

What is unique about this course?

A typical coding book or course will go through programming concepts and their syntax, followed by demonstrations with simple examples. This course has instead been designed with the Michel Thomas method in mind.

The Michel Thomas method was developed by Michel Thomas for teaching foreign languages. Thomas claimed that his students could achieve in three days what is not achieved in two to three years at any college. Our understanding of this method is that the teacher starts with a simple conversation scenario and then gradually expands it with a few new words each time. This way, the students gain familiarity with the conversation topic and the majority of words or sentences, while learning some new words in interesting conversations.

We believe this teaching method can be applied to programming. People learn better when they get feedback and the satisfaction of seeing their programs running. Thinking and problem solving are much more important in programming than just being familiar with a programming language. There is no better way to learn those skills than writing real programs for practical exercises.

In this course, we've chosen the exercises that are fun and simple to understand. After you finish all the exercises, you'll be able to write working programs with confidence and continue to learn and grow!

In a later section (Web Test Automation), we'll see that what we've learned may lead to a promising career in test automation engineer for web applications. Due to its nature of rapid changes and multi-browser support, automated testing is in demand. However, very few possess that skill. Programming and automated testing skills are highly valued in software companies like Facebook, because all Facebook engineers are responsible for writing automated tests for their code.

Who should take this course?

This course is for anyone looking to (1) develop skills (2) change careers (3) write apps and (4) better understand how a computer program works.

Learning feedback

The course author’s 13-year old daughter Courtney was motivated to learn programming with material presented in this course. In fact, her thoughts and questions, as well as some of her finished code for the exercises, is included in this course. We think the mistakes Courtney made and the hurdles she faced could be helpful to others.

How to study this course

It's highly recommended to learn this course lesson by lesson, coding along with the course as you go. The exercises are organized into categories, and each category gets progressively more challenging.

We’d appreciate your comments and suggestions, as well as reports on errors in the course and code if there are any. You may submit your feedback on the Educative forum.