Being a technologist, I love seeing the integration of technology into our everyday lives to make things more efficient. I love seeing the coolest new tech and what it can do to better the world. What better way to understand technology than to learn how to speak its language. Coding promotes logical thinking, creativity, and most-importantly problem solving skills. Creating projects through coding is also a great way to promote STEM, art, and entrepreneurial thinking. If you go to code.org/promote, you can see several interesting infographics, including startling statistics about females involved in computer science versus males. The main infographic on that page is the one that leads this post. In 2020, there will be an estimated 1.4 million computing jobs, while at that same time there will only be an estimated 400,000 computer science students. In a field that is underserved and has salaries that are much higher than average we have, in general terms, failed to teach the current generation of students how important computer science is. Beyond just the computing jobs, teaching kids critical-thinking skills, how to approach a problem from different points of view, and how to create a solution will make them more well-rounded adults, that have a more opportunities to make a positive impact on their communities, both locally and globally, regardless of their field.
I have taken great interest in the hour of code project, the growth of the maker-movement, and the development of the personal learning model that is becoming prevalent on the net. I want to push some of these ideas in my district, and I know that the best way to get others on board with any initiative is to model it. To be fair, it would be hypocritical to tell children that this is important, you need to learn this, when we as adults don’t completely comprehend it. So, I am going to learn to code. I have to admit, this is also a very self-serving statement. I have always wanted to learn to code, but I didn’t have the resources growing up to pursue it (Full disclosure- see next paragraph for my experience). As I get older I find that I have the urge to create meaningful content, and teach others to create the same. Today, the resources are endless and a lot of them are free.
So how am I going to teach myself to code? Well, to start, I am using the same tools freely available to teach kids. I enrolled in the CS50 program at Harvard through their extension school at edX.org. This program is awesome. This is the Intro to Computer Science class at Harvard, and anyone can take it online for free. It includes all the materials that would be included if you were taking the course as a Harvard student. Syllabus, recorded lectures, problem sets, even tutoring/walkthrough videos, and a student forum. You could even pay a fee and get a certificate of completion if you wanted. I am in week 2 of the program, and I love it. Here is a simple game called Star Battles that I created using scratch for my week 0 problem set. I know it is trivial, but actually making myself take the time to learn and create something is a very rewarding feeling.
I will also be using the site CodeAcademy.com moving forward. I have already started using it as a refresher for HTML and CSS. It is a great free resource if you want to teach kids to code. It is has simple to use, web-based walk throughs for learning to code in several different languages.
Here are just a few good resources for learning and teaching to code-
- Code.org (Home of the Hour of Code)
- CS50 HarvardX Program– edx.org (Now available on iOS and Android App)
- Scratch- MIT (Simple, web-based, graphical programming platform for teaching coding)
- ScratchEd- Harvard (Resources for teaching and learning with Scratch)
- Code Academy (Free web-based coding lessons)
- Kahn Academy (Free web-based lessons on many subjects including hour of code and computer science)
I know there a a lot more resources. If you have one that you think should be on the list, leave a comment and I will add it.