CS learners starting with web programming

January 27, 2012  |  Tags: ,

On his blog, Kent from Anideo has started writing about transitioning from PHP/Rails programming to developing iOS apps. He writes very candidly and it’s a great read, both for web developers looking to dive into iOS, and for anyone teaching introductory programming.

I say the latter because Kent’s perspectives on compiled languages really surprised me (and, perhaps, other programmers who didn’t start with web programming). In this post, he tells us how, prior to doing iOS development, he had no idea what header and implementation files were. Worse, he couldn’t find much helpful information on the web, even on Stack Overflow.

Perhaps it’s a generational thing — many computer science majors before Kent probably cut their teeth entirely on compiled languages, and transitioning to web programming should have come pretty naturally to these folks. Going the other way, however, could seem very strange, even to a seasoned web programmer like Kent. (This could also explain the paucity of good information on SO, assuming that most contributors there are old and cranky enough to be all “WTF? You don’t know what .h files are?”.)

This trend doesn’t look like it’s going away, what with Codecademy, CS101-class and John Resig at Khan Academy all pushing JavaScript as an introductory language. I can’t really tell what Udacity is teaching first, but their CS101 topic, “Building A Search Engine”, seems to hint it’s probably not C (unless they’re really asking students to build Google from scratch, in which case sign up now!).

What do these developments mean? Probably not much to the field — “native” programming isn’t going away, and many more like Kent will figure their way into it — but for programming education, teachers may need to adjust quite a few assumptions about “what students already know” and “what to teach first”. There could also be a market for web-to-compiled textbooks. Oooh. (Watch as I proceed to fire up iBooks Author, fully aware that I’ll close an empty document in a few days.)