I believe every child should learn to read, write, speak, do algebra, play an instrument, and draw a picture. These are basic building blocks for success. They promote both core capabilities for navigating life, and more importantly, dramatically alter how the brain processes information and reconstitutes it into problem-solving solutions.

I’ll gladly add programming to that list of primary disciplines. I believe everyone should be fluent in the fundamentals of programming. I’m passionate about it. I support it. And I’ll personally share whatever knowledge I can with anyone who is genuinely curious.

Let me define what I mean by “the fundamentals of programming”. This includes teaching everyone in the world to understand at least:

  • Variables
  • Conditionals
  • Loops
  • Functions
  • Arrays
  • Object Oriented Design
  • Debugging
  • Solving puzzles with limited syntax and basic building blocks

LinkedIn founder Reid Hoffman wrote a great piece recently on what happens when we teach the world to code. Many experts assert that kids as young as 3 years old can learn the concepts of algorithms and coding, and studies are being done on the cognitive benefits of such learning. My own 5-year-old son is getting Robot Turtles for Christmas, and programs simple games with me on the Raspberry Pi attached to our living room TV.

For the record, while learning to code is certainly not panacea for society, I don’t believe that introducing kids (and grown-ups for that matter!) to the basics of programming is going to interfere with other learning, or widen the gap between rich a poor. Knowledge is simply not a zero-sum game.