Take a few minutes (or a day) to think about the reasons—the real reasons—why you want to learn a programming language. Be honest with yourself. Are you trying to learn the barest minimum to score a promotion? Are you looking to make a big career change? Do you want to create the next greatest app? Thrill your roommates by programming your various smart devices to do something awesome?
By recreating existing projects, you’ll learn more about the inner workings of your highly customizable device. You might even find yourself inspired to create new ways to use your mini-computer and delve further into the world of code. (You can even enroll in UC Irvine’s The Raspberry Pi Platform and Python Programming for the Raspberry Pi Platform class through Coursera, if you want a little help getting started.)
Based out of New Zealand, Code Avengers provides fun and interactive programming lessons for kids 5 to 14; for schoolteachers wanting to teach coding; for people going into coding professionally; and for creators ages 15 and up. Also offered are one- to three-day "code camps" for students up to 17. These day camps are located in multiple states -- and foreign countries.

Khan Academy is a 501(c)(3) nonprofit organization with the mission of providing a free, world-class education for anyone, anywhere. Khan Academy Kids was created by experienced early learning experts who have created 22 other top-selling titles and received 22 Parents’ Choice Awards, 19 Children’s Technology Review Awards, and a KAPi award for Best Children’s App at the International Consumer Electronics Show. The Khan Academy Kids team is a passionate group of engineers, artists, designers, and educators who joined Khan Academy from Duck Duck Moose, a maker of popular educational apps for kids. Khan Academy Kids is 100% free without ads or subscriptions.
Those who use only two fingers often type as slow as 10 words per minute although some are capable of surprising fast speed with this primitive technique. After these lessons you should be able to type at least 35 to 45 words per minute. After some months of experience and regular typing you can reach 90 words per minute or even higher. As with everything else practice makes perfect. You can follow your own progress by pressing the button 'Statistics' in the top right corner, you will be able to follow your progress online after each lesson.
Udemy bills itself as an online learning marketplace, hosting 130,000+ user-created courses on all kinds of topics (including over 2,000 coding-related classes). While some of Udemy’s offerings are paid (costing $20-$200 per course), there are plenty of free coding classes as well, including some shorter Tech 101-type courses that teach code for beginners.
When you reverse-engineer someone else’s code, testing each line to see how it works, you get a better understanding of the big picture. Thanks to the tons and tons of open-source code that’s out there, you can learn just about anything by examining someone else’s (flawless) work. Just remember to share your code back with the community if inspiration strikes and you improve a part of the program you were fiddling with.
Third, Keybr.com lets you introduce as few keys as possible to the lesson, adding more keys automatically when it decides that you are proficient at the current level. When you only start learning it generates lessons with words from a very small alphabet of the most frequent letters. When your typing speed for every key in that alphabet reaches certain threshold, the algorithm adds the next most frequent letter to the alphabet. And so on, until the next letter. This way you will learn the most frequent letters first, and the least frequent ones later.
On the other hand, if you’re a mid-career professional looking to transition into a tech career, a short-term coding bootcamp might make more sense than going into debt for a second degree. If all you want to do is build websites or push your Raspberry Pi to its limits, a combination of interactive tutorials and free online courses might be enough to get you going.