Relearning Web Programming (Node)

Back in 1998 I applied for a MS in Information Science at UC Berkeley. There was a programming requirement, so I took a C class. Then in 2000 for my graduate thesis we needed some kind of user interface so I designed that in ColdFusion, an easy-to-learn web scripting language. In 2001 I moved to Hawaii later started a Cold Fusion User Group (CFUG) which was once-per-month meetings with pizza and Macromedia swag (before Macromedia was acquired by Adobe). Good times.

First Real Web Application

In 2002 I began teaching and found grading quizzes incredibly time consuming, not to mention boring. So I wrote a quiz system that the students could use both as self-guided knowledge testing and because we had a computer lab, could have them take in-class quizzes. One great thing besides the automated grading, is that the students got immediate feedback (which they really wanted) knowing their grades. We could also go over the quiz immediately after it was taken, and go over the questions that were more difficult. Later, after taking a statistics course on test design, I realized that the students' performance on questions could be used to analyze the question performance. That is, we could remove poorly performing questions and rescale the students grades.

This was all quite fun, though of course time consuming itself. Building the application (twice), making it scale, hunting bugs, all the good stuff. The system could handle 45 students simultaneously click the take test button, and it would (after a bit of trial and error) provide valuable information and time-savings (as well as removing the boredom issue, perhaps even more importantly).

Learning PHP

When attempting to do the question analysis and recalculate grades, I ran into limitations with ColdFusion which could not deal with three dimensional arrays. This caused me to learn PHP, and rewrite the test application. Later, when I switched from the Business school to the School of Communication, I had to stop using the quiz system because the students just didn't perform well with it. As a group, the students were very different, with much more limited analytic abilities. Therefore, I had to go with essay questions. This was around 2004.

Wither Web Programming Today?

Fast forward 10 years and I need to start programming again, for various reasons. Since I haven't really developed or managed an application since then, other than occasional PHP hacking on WordPress plugins, I'm starting from the beginning. However, that doesn't mean that the art of web development has stood still. Indeed, we have new versions of PHP, mobile web devices (beyond WAP), and new languages, paradigms, and content management systems. Whereas WordPress was a godsend 10 years ago, now it is showing its age and management tasks grow in a non-linnear fashion. We have much greater needs, and newer tools. So what is a rusty, old PHP hack to do?

Modern Web

The modern web is about front-end development, which seems to be extending its technologies into the back end. Enter Javascript, Coffeescript, jQuery, AngularJS, Bootstrap, and the zillion other frameworks, templates, and tools, and of course Node.js. HTML/CS/JS are so dominant, and extending these into server-side systems, not to mention building programming tools with them such as (Atom and Brackets.

It All Starts with Node

Node seems to be the place to start. For one thing, the NPM (Node Package Manager) is how to install things like Coffeescript. Here are my first steps:

Then get the editors in:

And here we go....

More to come

  • NoSQL database
  • Middleware, frameworks, etc., etc.