Relearning Programming (Python)

Updated 20-Sep-2023

  • First published in 2014, updated in 2021

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-linear fashion. We have much greater needs, and newer tools. So what is a rusty, old PHP hack to do?

Python not Javascript

Yes, Python is old as well, but nevertheless it is continuing to be popular. Javascript obviously is a popular answer, but Python has a number of niches including machine learning, applications and web apps. It's all a bit messy, and of course installing and configuring python is a chore. That said, it is a useful mess in that Python is seen as a robust scripting language for many purposes. Here are some aspects:

Additional Advantages and Uses of Python

  • For early childhood education, Python is also a suggested first language for learning coding for children. I've got two small children and they are getting into Scratch Jr. and Scratch, and Python is the next logical step.
  • Python is a mainstay of Data Science and Machine Learning.
  • Python is a viable platform for creating native applications for mobile and desktop operating systems using Kivy.

More Python resources