Hi, my name is ___

One of our most frequent tasks as programmers is assigning names.  It’s hard to go an hour without coming up with a name for a class, a method, or a variable.  But naming things is hard for at least two reasons:

  1. The exact purpose of an item might be not be clear until you’ve written its body or used it in context.  I often use a clearly inappropriate placeholder that will force me to replace it once I have a good name.
  2. Picking appropriate words is tough.  It can be hard to spend time selecting the right word when you’re focused on writing logic, but often the work of naming will help clarify that logic’s organization.

Here are some suggestions for naming rules, born from recent experiences.

Name label (more…)

Can (and Should) Everyone Learn to Program?

Fair warning: The following article is long, rambly, and contains no code. It does, however, contain some rumination on the idea that everyone can and should learn to program. Want to put your two cents in on the topic? Skip straight to the comments – I look forward to reading what you think.

03212012Matitec_entrega_dispositivos_santafe084

So, I was just thinking, it would be really great if you could come present to my CS class – talk about programming in general, as a job, that kind of thing.

Recently an old university friend of mine, now a Math and Physics teacher, was tasked by his administration with teaching computer science to his highschool students.

His experience with CS being limited to the half a dozen or so courses he took years ago to fill out the minor requirements of his degree, and the prescribed curriculum being heavy on the history and ethics of computing and light on actual programming content, he’s been struggling with how best to present the essential concepts in a way that would appeal to typically lethargic teenagers.

They really need to be taking the work home, exploring the concepts on their own – there’s only so much we can do in an hour a day. There’s all sorts of resources out there – I just need a way to spark some excitement about programming in them. Maybe having a ‘real’ programmer come in would be helpful?

I agreed, and began to prepare my presentation. While the Way of the Programmer had been known to me since the childhood discovery of the QBasic interpreter in DOS, it wasn’t until highschool that I truly took the first steps on this Path to Enlightenment – thanks in large part to a wise teacher/mentor, as per the trope. Doing my part to introduce some young minds to this sometimes frustrating, but often rewarding discipline would be a Good Deed®.

I had an additional ulterior motive, however. I had often seen espoused – mostly in various communities populated primarily by programmers (such as Hacker News) – the opinion that programming was/is the new literacy; that is, a basic element of education that everyone can and should learn. Both they and my teacher friend had noted the ever-expanding collection of sites dedicated to teaching programming: Code Academy, Starter League, Code.org, amongst many others. They seemed certain that not only could anyone learn programming, but everyone should learn programming.

I wondered if anyone not already committed to our discipline felt the same way – particularly the students who should apparently be learning their

if, while, foreach

alongside their ABCs.

Here was a chance to find out.

(more…)