Of all the questions in a job interview, “What do you do for fun” is the one that constantly trips me up. My typical response (after a brief look of panic) is something like this: “Well, I like… the internet… I spend a lot of time on it. I like researching, stuff… Like programming… and internet stuff.”

Yes, I could technically come up with something I don’t do on the computer, but “going to bars and seeing if I can find someone interesting to talk to when I’m lonely and all my friends are busy” doesn’t exactly scream “definitely a team player who would benefit the company.”

Even hobbies that are remotely related to the job (“I love learning about cool new things to do with jQuery!”) seem like a pathetic attempt to suck up. (see also: “My biggest weakness? I work way too much.”)

What this question needs — demands — is a solid, official, work-safe, and productive Hobby with a capital “H.” Fly-fishing, golfing, pottery, competitive quilting, marathon running — these are all fantastic responses. I’ve just never been dedicated enough to ever have a hobby UNTIL NOW.

This is what I do when I get off the computer.

No, no, I’m not making meth. Promise. I’m making that OTHER drug we all know and love — alcohol. And this is a hobby that demonstrates my love for booze, but offers an air of productivity and industry in a way that “going to bars and drinking” doesn’t! Win win!

In all seriousness though, I really think that “what do you do for fun” is one of the questions where major points can be won, but most often aren’t. Even a slightly-tailored answer (Your interviewer has his dog in a Facebook profile photo? Mention that it’s unfortunate your apartment has a no pets policy, but you’ve since replaced your love of dogs with competitive fish breeding.) can lead to a real connection with your interviewer, or at least give you the freedom to throw in a joke and show a different side of your personality.

And, if you’re curious about the best way to make a bitchin’ hopped mead (yes, yes, it’s mead with hops!), just ask 😉

Forget “10 Best CMSs” or “12 open source CMSs” — these things are often better-organized as a rubric than a list. There are three things you need to pay attention to when choosing a CMS: Cost, Application, and Skill-level. Often, a more expensive CMS tends to be either easier to use or more flexible/expandable. Enterprise-class software tends to fall into this category. However, a free CMS can often be used to create an enterprise-class application, with sufficient technical ability.

It’s like the old MIT adage about “work, play, and sleep” — choose any two. Obviously, this diagram isn’t exhaustive, but at least one representative CMS is in each category. Feel free to ping me at ryan.e.mitchell@gmail.com with proposed additions!

FREE

Works out-of-box Need some skills
General-Purpose Joomla Drupal
Radiant
Specific Application WordPress
MediaWiki 
Reddit code
LiteCommerce

NOT FREE

Works out-of-box Need some skills
General-Purpose SquareSpace Sitecore
Specific Application Shopify SharePoint

1. Replace Reddit completely with TED, OpenCourseWare, or an educational podcast.
I’ve been a Redditor for three years, and, while the information gained through the site has been somewhat useful, I’ve lost, literally hundreds of hours in the process. TED talks and online lectures not only provide more structured, higher-quality information, but their discretized nature let’s you stop more easily. (“I’m going to watch this one talk an then go to sleep” vs. “I’m going to Reddit for a bit… oh crap it’s 2am”) In addition, podcasts are great because you can listen to them while doing the dishes, driving, or really anything more useful than staring at pictures of cats

2. Limit Drinks to 3/day or fewer, no more than 10/week
I don’t recall a single morning after a party where I’ve woken up and said “I wish I had been drunker last night.” Although the US is less than understanding about the need for women to have more than one drink a day (According to Wikipedia), other countries take a slightly more lenient view. The UK, for instance, declares that up to 2-3 drinks/day, and 14 drink/week maximum is perfectly healthy.
Interestingly enough, a study that recently made the news rounds shows that moderate drinkers have a longer life span, and those who abstain from alcohol tend to die youngest.
No more than 3/day and no more than 10/week seems like a great rule of thumb, while not impacting my social life or enjoyment of great beer.

3. Make friends and influence people
A lifelong problem of mine has been to understand and empathize with people who screw something up to my detriment. This isn’t so great on teams — if someone forgets to complete an assignment, or misunderstands the problem, one of the worst things you can do get upset and alienate the person.
But many great leaders, business people, and other successful individuals have been able to empathize with, help, and leverage people who had faulted them in the past.

Although it seems like common sense to work on this, I’ve found that, in engineering especially, it seems like a point of pride to be horrible at these types of skills. Stories like “I was right the whole time, and showed that guy up in the meeting – boy was his face red!” are far more prevalent than “Although my way would have been better, I conceded the point, although I think the manager is really interested in exploring other possibilities after this project’s over.”

This is going to be more difficult to quantify than the other two goals, although there are a great number of books on the subject (besides the obvious one). Reading a few books over the course of the year, and working to integrate them into daily practice would be an excellent start.

And now for something completely different! I wrote this as an assignment for a creative writing class when I was 14 — Looking back, I have no idea how I had any friends either.

I Wish I Were Prime

“I wish I were prime,” said number 9
“instead of divisible by three.
It must be heaven, for 3, 5, and 7,
but the pattern stops with me!

11 and 13 can be disconcerting,
if in the odd primes you delve,
you will soon find many of their kind,
divisible by one and themselves.”

“Don’t be too keen,” said 15
“on becoming what you’re not —
sure it’s fine to be an odd prime,
but look at what you’ve got!

None can compare, you’re a perfect square,
those are very few!
And as for me, 5 by 3,
instead of one prime, I’ve two!”

MIT recently announced that they are offering certificates for select courses through their OpenCourseWare platform. This is, of course, an inevitable development in the rise of increasingly organized, formalized, and freely available, courses, now that Yale, Stanford, Berkeley, and UCLA have jumped on board the uncollege train.

At this point, I’d like to drop the obligatory, and geographically appropriate, Good Will Hunting quote:

“See, the sad thing about a guy like you is in 50 years you’re gonna start doing some thinking on your own and you’re gonna come up with the fact that there are two certainties in life. One, don’t do that. And two, you dropped a hundred and fifty grand on a fuckin’ education you coulda got for a dollar fifty in late charges at the public library”

While a person with a little intelligence, determination, and internet access, may now be able to get a great education for free or little cost, the question remains: What will employers think of all of this, and how does it change the traditional college experience, if at all?

At some point in my sophomore year, I found myself ranting to one of the wisest people I know, about the incredible unfairness, administrative conspiracy, bureaucracy, and pointless rulings against the students at Olin College. This person nodded, smiled, listened, provided insight based on his own experiences at the University of Utah in the late 60’s and early 70’s, and said something to the effect of: “College isn’t just about showing that you know calculus and physics, it’s about showing that you can cope with the stress, regulation, and environment for four years without quitting”

There’s a large amount of truth to this. With US six year graduation rates (the percent of students who graduate from a four year bachelors program within six years) at about 55%, and three year associates rates at 29%, surviving a program certainly says something. Marine basic training wouldn’t quite be the same as an exercise regimen you could complete at home on your own schedule.

Forget graduation even — matriculating at many institutions alone may give employers pause. I suspect that the ability to demonstrate achievement, aptitude, and passion at age 17 is strongly correlated with the ability to succeed in the workforce at age 27.

But the irreplaceability of college as a character-building life experience, and demonstration of self-worth and integrity is a conveniently “Cambridge ivory tower” way of looking at things. The 30 year old taking computing classes at the local community college to buff up her resume doesn’t give a rodent’s bum about lifelong friends and memories of his two evenings a week alma mater, and his employer probably cares as much about the brandname “ACME Community College” on a CV. A prime candidate for free online certificates, and a great example of where this sort of thing could be great.

On the flip side, a 16 year old student in a rural or suburban area may not have access to some of the advanced subjects needed to get a leg up in the admissions process. The existence of OpenCourseWare may not stop him from going to college, but its non-existence might.

Using online certificate programs and courses as a supplement or preparation for college, rather than as a “college replacement,” will likely be the main use of these programs. Although I don’t have access to any of the data, I would wager that most of the viewers of these lectures have, or are working towards, a college degree. MIT itself uses OpenCourseWare as a supplementary tool for classes — part of the main motivating factor for its creation.

There is no doubt that OpenCourseWare certificates will increase the amount of knowledge and education circulating around in the world, and the credibility of online programs in general (after all, “MIT” sounds somehow more legit than “University of Phoenix”), but this will likely be in supplement to traditional colleges, or in lieu of shorter programs / individual classes / resume-building activities, that might have been done at a traditional college.

Honestly though, some small part of me is really looking forward to getting proven wrong 🙂

How often do you write a line of code that moves a byte into a specific register? How often do you reference a pointer or write a sorting algorithm? Heck, for some of you in the audience, how often do you actually compile code?

I am not here to argue that none of these are useful. In fact, I was recently given the opportunity to relearn C, and was more than happy to do so. Long live the address-manipulaters and the machine code compilers! But, contrary to CS programs around the country, “programming” is no longer limited to algorithms, processor architecture, or even objects. In fact, I would say that this new programming is so fundamentally different from the traditional view of the subject as to warrant a new label altogether.

“New Programming” is libraries. New Programming is experimental. New Programming is collaboration — between developers, between users, between software, and between machines. New Programming is connecting what has already been done. New Programming is knowing how to find the best tool, and not just how to write it.

It is undeniable that academia is dealing with one end of a rapidly growing subject and completely ignoring the other. From the point of view of a project requiring New Programming, the course catalogs for major CS programs look like a pointless exercise at best, and counter-productive at worst.

So what happens when employers, administrators, even professors and programmers themselves don’t know the difference? When a business needs a developer for a user login feature, the recent Course 6* graduate from MIT, who learned about RSA from Rivest** himself can look tempting. But while he’s sketching out the optimal database architecture, he might have spent the time better by researching content management systems with robust user management capabilities, and modifying the code from there as needed.

One argument for the lack of New Programming in schools is that it is “Googlable-as-needed” and constantly-changing, whereas “Old Programming” (for lack of a better term, not to imply that it’s outdated) is based on mathematics and engineering that must be taught in a rigorous way. Not only is the premise of this argument untrue, but if it were, subjects such as marketing, photography, and history might never be taught either!

The lack of degree programs with a focus on subjects like content management systems, scalability, apps, interface design, user-oriented design, or server-side/client-side scripting, means that many of the tens of thousands of CS graduates every year were not studying what they would ultimately be doing. Not only this but they may not even realize it after landing the job, imbued by the confidence of “computer science” written on their diploma.

A slightly different approach to programming education would, not only produce programmers better-suited to their field, but would ultimately produce better applications, better websites, better software, and a better quality of life for both the users and the programmers.

Modern developers often lean heavily towards one package or language, often based on what they read once, or what they’ve always used. Why not teach them the pros and cons of every major package? Why can’t they be fluent in PHP, Ruby, and ASP.NET? Why does Javascript have to be something you pick up over the weekend? An entire course could be taught on jQuery and its major extensions alone!

As the field grows, the need for differentiation and adaptation increases. Computer science degrees are becoming increasingly good at producing computer science professors, and others who stumble around in the dark for a few years, very slowly writing elegant code that has been written before, just as elegantly. Those who make it out of the dark often emerge with bad habits and a narrow understanding of their new field.

Although academia will eventually change, without a strong push this change will too slow to keep up with New Programming, or NEW New Programming, or the many additions, permutations, convolutions, and revolutions that are likely to happen to the field in the coming years. This push must come from industry, from academia, from the students, and even from the users. With a strong, continuous push, the advancement of computer science will increasingly continue to cause waves in every field in the world.***

*Electrical Engineering and Computer Science
**The “R” in RSA
***This metaphor involves a second-order differential equation. Um, yes, I am an engineer. Why do you ask?