Yes, there are indeed plenty of resources out there, such as courses from online learning brands such as Khan Academy, Udacity, Coursera, Codecademy, CodeSchool, and edX, but most certainly don't come with an instructor, instead relying on live or recorded videos and possibly supplemental study groups, or "cohort learning," as a colleague of mine has branded it. Whatever the mechanism, it's surely better than pure online tutorials or slaving away over a book, neither of which come with instructors either.
One of them is Scratch, a "jigsaw puzzle"-like programming language created at MIT. Yes, you will do left, right, up, down, etc., but you'll also get to play audio, video, repeat commands, draw graphics, and make sounds. This tool is great for teaching the young learner, who don't need any of the advanced features but which are available for when they're ready to take the next step. It can be used to teach children the concepts of programming without all the syntax that text-based programming languages feature which may make learning those concepts a burden.
If you wish to proceed, go to the website to get started. They've got videos there as well as projects you can copy. As you can see, you snap together puzzle pieces that teach you coding. Better yet, to get started even more quickly, clone one (or more) of the projects, and "tweak" the code a bit to "do your own thing." In time, you may even develop your own fun applications or real games. Another similar graphical learning tool to consider is Alice from the University of Virginia and now Carnegie-Mellon University.
Once you're comfortable with that type of working environment, there's a similar tool from MIT called App Inventor. Leverage your Scratch skills and start building applications that run on Android devices! There's an emulator, so you don't really need an Android device, but it's certainly more rewarding when you can use an app that you built running on a tablet or phone! (Try a family friend who may have an old device they don't use any more.)
- Online Python Tutor
- LearnStreet (login optional)
- CodingBat (login optional)
- SingPath (login required)
- Hello World! Computer Programming for Kids and Other Beginners (Sande & Sande)
- Invent your Own Computer Games with Python (Sweigart)
- Python for Kids: A Playful Introduction to Programming (Briggs)
Here are other online projects and learning resources, including book websites, that you can also try (many are for kids):
- How to Think Like a Computer Scientist (Downey, Elkner, Meyers, Wentworth)
- Learning to Program (Gauld)
- LiveWires Python course
- A Byte of Python (Swaroop)
- Instant Hacking: Learning to Program with Python (Hetland)
- Snake Wrangling for Kids (Briggs)
- Computer Programming is Fun! (Handy)
- Guido van Robot
- An Introduction to Interactive Programming in Python (Rice University)
- Learn to Program: The Fundamentals (University of Toronto)
- Introduction to Computer Science (University of Virginia)
That's it! Hopefully I've given you enough resources you can pass along to friends and family members who are intrigued by your passion for computer programming and wish to see what all the excitement is all about. A young man I met on vacation this summer motivated this post... good luck Mitchell! I hope to see the rest of you on the road as well, perhaps at a developers' conference or sitting in one of my upcoming Python courses!