Seemingly every day there’s a new article or blog post imploring you to learn how to code. “Those who code have the power to transform their dreams into reality.” “Coding will help you keep [your job], or help you make a case for a raise.” “You should learn to program because it’s easy, it’s fun, it will increase your skill set, and… it will fundamentally change your perspective on the world.” What’s more, “If you want to start a technology company, you should learn to code.” New York City Mayor Michael Bloomberg’s New Year’s resolution was to learn how to code. The courses below offer everything from HTML to Python and beyond. HTML and CSS are good, because they’re the basic building blocks of Web design, and in my opinion, Python is useful, because it’s the most universal in many respects.
In any case, each program below emphasizes different pedagogical techniques and philosophies, and they are all mass market in the sense that anyone is welcome. No previous experience is necessary.
MIT Courseware Online
MIT has long been a pioneer of online courseware. One course is their Intro to
Computer Science & Programming class, thought by many to be the best, most encompassing intro computing course offered. Taught by tenured MIT faculty, the online course is structured via taped lectures, written assignments, and self-assessment quizzes.
The course itself is quite rigorous as it was an intro course for MIT students. This isn’t a sort of online class you can do some parts and not the other. It requires a certain amount of pre-existing math knowhow to be truly successful. The course description says it only requires high school algebra as a prerequisite but I don’t buy this. I remember being pretty stumped by the second assignment, and I passed AP Calc with flying colors. This doesn’t mean the math is terribly high-level, but that it probably requires a certain amount of mathematical aptitude beyond algebra unless you want to spend the entire course scouring forums for help. As with any MIT course, there is an expectation that you not only know how to do a function, but why that function is performed and from where it stemmed. After attempting to follow this courseware for two sessions, I was officially stumped and dropped it.
edX
MIT and Harvard partnered up to create
edX. It is a conglomeration of all of their available open courseware, along with a new department for the two institutions to perform research about the future of online courses and new pedagogical technologies. For MIT courseware, you can watch the lectures anytime, read the assignments, and self-assess. EdX has you follow the course in real time and complete the assignments and exams to receive a physical certificate from the program. It currently offers numerous classes in more subjects than just coding and far beyond the purview of Computers Science.
Codecademy
Codecademy.com is something slightly different than the last two. It uses a curriculum of exercises to teach the basics of coding in a variety of languages (PHP, JScript, Java, Python, Ruby, etc.). It has a text box to write different codes, and a number of tasks written alongside as a way to teach different skill sets. It’s a useful program for people who want to dive in to coding and learn the basics from a more pragmatic level. Wired.com, in fact, listed it as one of the more successful venues for learning code. However, some of the pitfalls lie in its simplicity: it’s a series of exercises, and doesn’t teach you much beyond rote tasks. It attempts to provide some context, but it just scratches the surface (at least for the beginner courses). You are able to learn the commands, their meanings, etc., and sometimes that’s just it. Codecademy teaches you these basics; and what logically follows is the statement: “I learned code.” Beyond that, it doesn’t teach a deeper type of literacy, other than learning helpful coding tricks, for better or for worse.
Google University Consortium
Much in the same vein as Harvard and MIT, Google used to offer various online courses for its progam Google Code University. GCU has since retired, but Google has
archived its Python and C++ classes, along with providing ways to search for other online university curricula. It is now displaying a wide range of other courses not from Google, and calling it the Google University Consortium in Google’s developers page. The offerings for coding and computing are scant. All I could find was
a course on “Programming with Go”, and when I went to begin that course it was a YouTube video.
PHP Academy
PHP Academy is similar to Codecademy in that it’s a private, community-based site working to educate the world on web development. Its methods are a series of courses, that is, videos and forums for all who want to participate. The appearance is more scaled down than Codecademy and seems to target those who have some familiarity with coding. In that regard, PHP generally approaches coding as something you already know, or are at least familiar with, so its approach to literacy is that some foundation of it is already there.
Coursera
Coursera has been getting some real press these days. Started by a few Stanford Professors last year as a way to offer online courses from myriad universities for free, it has courses for credit and wide-ranging course offerings. In terms of computing, it has an Intro to Programing course from the University of Toronto, which is similar to what edX offers. However, Coursera offers other, more specialized code courses. I signed up to take a Social Networking Analysis course last year taught by a leading professor in that field. Others include “Programming Languages” “Web Intelligence, and Big Data”.
Coursera is similar to edX in that courses are on a real schedule, with a curriculum, requiring a lot of your personal time. With both Coursera and edX you are taking a college-level course, that level of intellect is therefore required. In that regard it is leading the brigade in the thought that not only digital literacy is important, but that general education can be maintained through digital means. The onus is not necessarily that everyone needs to know coding, but that digital spaces can be used for positive, educational means.
Khan Academy
Khan Academy is, in some ways, an amalgam of Coursera and Codecademy. It claims to be working to change education “for the better by providing a free world-class education for anyone anywhere,” listing numerous subjects from computing to the humanities. The “Programming Basics” course has a similar format to Codecademy: read instructions and complete coding activities on a text screen to learn the necessary skills. Like Codecademy it progresses in a linear fashion toward mastering a basic repertoire. Khan has
gotten scads ofthe press coverage, and I wouldn’t be surprised if it developed a more well-rounded curriculum around its original pedagogical style.
Codingbat
For a different approach there’s
codingbat, which is simply a series of live coding problems. This site is tailored toward those with some previous knowledge of the subject, and has a bare bones interface pleasing to any hacker-in-training. The problems give immediate feedback to help improve skills, and were developed by Stanford CS lecturer, Nick Parlante. The two languages offered are Java and Python, and it now seems to be offering a theory course to teach skills in “small” coding so as to have the foundation to do longer pieces of code. The approach is educational at its core, but is difficult to delve in for the completely uninitiated.