Learn Computer Science with Pasadena Tutor Mike Mossey

Where smart kids have fun programming

Learning to code

How does a student actually go about learning a language like Java, Python, or C++? What knowledge and skill sets are necessary? How do I go about teaching these things to teens?

Two things are needed: knowledge and skill

First, a student needs knowledge: that is, knowing the syntax and commands that a language uses.

But that’s the easy part!

Much harder is acquiring the skill.

In the lessons I give teens, we will probably spend the first few weeks on knowledge, but rapidly we’ll be practicing skills.

What skills are necessary to use a language?

Using a language involves the ability to manipulate code in your head and imagine what your code will do when you run it.

You want to be able to run through several possible configurations of code in your head and determine which ones are most likely to work, even before you write anything down.

You’ll develop this skill in pieces, first being able to think about something like “if” statements, and later incorporating loops into your repertoire of imagination.

It’s like playing the piano. Many individual skills need to be in place before your child will get fluent at it.

To get a better idea of what skills are necessary, we can go over that in our free introductory lesson.

Knowing how to structure larger programs

When you start writing larger programs, there’s more to imagine than “if” statements and loops. Both knowledge and skill come into play here. You’ll need knowledge of many different ways to structure large programs, and you’ll also need the skill to see how the individual pieces will fit into the structure and predict which structure is best ahead of time.

There’s a lot of knowledge to know too

In this article, I focused on skill first because that’s the harder part. But there is an enormous amount of knowledge needed.

  • Of course, how “if” statements and loops work
  • Variables
  • Working with numbers and text
  • Functions
  • Mathematical equations
  • Interacting with the user
  • Graphics

All of this knowledge will eventually be folded into your ability to imagine the possible ways of using it.

To learn more about general approach to tutoring, see my home page.

For a free introductory lesson, contact me.

Learn Computer Science with Pasadena Tutor Mike Mossey


© 2022 Mike Mossey