By Cale Guthrie Weissman
On April 5, 2013
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. Douglas Rushkoff, who calls coding “the new
literacy of the digital age,” wrote an entire book about it. And
didn’t Marc Andreessen say that “software is eating the world?” As a result, companies from
Codecademy to edx and many others have popped up to meet this rising demand.
As a person who’s grown up in the digital age,
I have often heard the cry, “digital literacy or die.” Conventional wisdom – at
least today – is that in the way you know how to read and write English, “you need to have some understanding of the code that
builds the Web… It is fundamental to the way the world is organized and the way
people think about things these days.” If you buy that then you’ll want to
start now.
But where should you go? I’ve been dabbling in
the black arts, although I am by no means a ninja coder, and am ready to report
back. 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. Others say Java is better to learn, because its so prominent on the
Web. I would rebut that you can learn Java from Python. Potayto. Potahto.
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.
P2PU
Mozilla has entered into the online courseware game with P2PU. In the tradition of
Mozilla, P2PU is completely open, and provided a non-institutionalized,
community-based education experience. It has a “School of
Webcraft,” which includes “Webmaking 101” – a series of seven
challenges aimed at teaching you how to start and code a blog.
The aim is less technical than, say, PHP
Academy, and more community-oriented. Take, for instance, the first two
challenges in “Webmaking 101.” In the first challenge you start a blog,
introduce yourself to your peers, write a “magnificent blog post,” and link
comments to your peers’ blogs. The second is to write simple HTML script by
hand. There is a different emphasis than the rote skill-work taught in the
other courses. Mozilla, in this regard, is working towardfostering a culture shift with digital literacy at the
forefront.
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 of the 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.
GitHub, et. al.
Frequently coders refer me to GitHub, Pastebin, or SourceForge. These
sites, like Codingbat, are not meant for the complete coding luddite and
require an aptitude for “learning by doing”, and knowledge of how to navigate
the confusing sitemap and specific terminology. There is no curriculum or
series of online lectures. It is are a repository for coders to paste their
personal code. Instead of a bottom-up pedagogy, these sites gives you successful
codes from the best developers around. They are meant to foster community and
keep collaborative efforts vibrant in the community. Friends of mine who code
have told me that the best way to learn is to go on GitHub, study a cool code,
and go from there. It is completely different than anything Coursera offers,
and the end result, I think, is on the other end of the computing spectrum as
well.
No comments:
Post a Comment