So, do you want to learn how to program? Don’t be afraid to say yes! In a world full of revolutionary technology, learning a programming language is almost an important part of being a global citizen. If we know how to read and write, why can’t we learn how to program? Catching fire with Code.org’s Hour of Code initiative that launched a year ago, the revolution to teach programming to kids at an early age has spread rapidly. More and more schools are implementing computer science classes so their kids can learn a valuable skill and stay ahead of the curve. But even as an adult, it’s not too late to learn how to program! I didn’t even know how to write code until my first year of college, so anyone can learn if they have enough motivation and passion. Personally, learning to code has been one of the most rewarding things I’ve learned in my entire life. I’ve made some really cool projects that I spent a lot of time on, but am quite proud of. It’s amazing to see how abstract concepts can be realized into a full-fledged, interactive program that you thought of.
Now, where to start? There are a variety of online resources to help you learn a programming language of your choice. I’ve listed my personal top websites below. Remember, when learning a new programming language, make sure to practice a little bit each day to keep your skills fresh. And don’t worry about memorizing all the syntax or rules needed for each language; not even professional programmers have the entire Java/C++/Python/any programming language’s syntax memorized, especially if they know more than one language. So if it seems hard at first, just remember to keep at it and think of all the amazing things you can do with programming.
Online Resources
- Code Academy (codeacademy.com) – has many courses designed for beginners to help teach you a language as well as the fundamentals of programming. Their tutorials are a lot of fun too! Definitely a first stop on my list.
- Khan Academy (khanacademy.org) – has a series of web videos to help you learn JavaScript, a fundamental language for web design and app programming. Make animations, simulate games and discover the logic behind programming.
- Scratch Programming (scratch.mit.edu/) – learn programming through a visual drag and drop interface. Great for total beginners to play around with, and you can see direct results as you program. Also has a large community to share your projects with online.
- Microsoft Virtual Academy (microsoftvirtualacademy.com) – Pick up a programming language through Microsoft’s Virtual Academy, with a variety of topics for beginners to advanced programmers.
- TouchDevelop (by Microsoft) (touchdevelop.com) – make Windows 8 apps straight from your phone or computer! With a mobile optimized website, TouchDevelop makes it easy for users to make apps while playing around on their phones. Has some starter files for inspiration, as well as a community to share your apps with or ask questions. Check out the getting started page if you’re new to programming.
- CodeHS (codehs.com) – learn simple programming with Karel the Dog and move on to a curriculum step by step tutorials, videos and exercises. CodeHS also provides online tutors if you get stuck.
- KidsRuby (kidsruby.com) – learn Ruby programming through an environment made for kids. Enjoy adorable graphics as you learn this powerful programming language which is often used for web development.
- Udacity (udacity.com/course/cs101) – study CS101 at your own pace and discover the magic of programming.
- Learn Python the Hard Way (learnpythonthehardway.org/book) – don’t let the name fool you. Learning Python can be fun, and this online book takes you through multiple exercises to teach you the language.
Those are my top online resources. There are some great books out there too, if digital just isn’t your thing. And if you have any questions, or want some more advice on how to get started in programming, feel free to email me at nscrimshaw (at) stanford (dot) edu. I spent my whole summer encouraging and teaching kids and teens how to program, and know that anyone can pick up programming if they can get excited by it!