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 toward fostering 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