1. Learn to Code

Learning to code is challenging but it can be fun. Here are some resources if you choose to get on the path to coding.

My courses on codehs.com:

A good way to start coding is to join a visual playground. Scratch is my favorite.

"Scratch is designed especially for ages 8 to 16, but is used by people of all ages. Millions of people are creating Scratch projects in a wide variety of settings, including homes, schools, museums, libraries, and community centers."

From 2017 - out of date: 

Attend my photohacker workshop sponsored by scribe.org in philly area 4 Sessions starts April 6, 2017. Click here for info.

You can also go directly to my photohacker git repo to get workshop material.

Recommendations for learning to code pre-2016:

Here are some resources for learning computer computer science, most recently found listed first. 

Keep a look out for event Computer Science Education Week first Monday in December at csedweek.org

Lots of resources at csedweek.org/educate/3rdparty

Cool processing resource created for Computer Science Education Week: hello.processing.org/

The computer science section of khan academy is a great place to explore  programming in your browser.

Play and Experiment with Code at codecademy.com

Here are a list of resources for mobile application development I gave in Jamaica April and May of 2012.

If you are just starting out, Scratch is a good first step. With it you can learn the core principle common to all programming languages: variables, conditional statements, flow control, and functions. Then if you wish you can build stand alone applications with BlitzMax, or get wildly creative with Processing. All cost zero dollars, except BlitzMax. But the true cost is the time you are willing to dedicated to learning. It may not be easy, but it can be fun.

Here is an article I wrote about my experience learning computer programming: Reflections on Learning.

"BlitzMax is the new, next generation game programming language from Blitz Research. BlitzMax retains the BASIC roots of Blitz3D and BlitzPlus, but adds a ton of cool new features and abilities."

"Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production."

"Processingjs is an open programming language for people who want to program images, animation, and interactions for the web without using Flash or Java applets."
"The http://sketchpad.cc/ is a great way to teach yourself how to write Processing code without all the fuss of downloading the source and setting up your HTML document."


"Codecademy is the easiest way to learn how to code. It's interactive, fun, and you can do it with your friends."