Post

How programmers and actors are alike

I’ve lived in Los Angeles most of my life now, and despite not working directly in entertainment it has overlapped my life here and there. While the city doesn’t dominate the industry as much as it once did it is certainly still a primary focus. Over time I’ve come to have a few friends who work in various parts of the entertainment industry, and even a few actors.

On the surface, and actually beneath the surface, there are not many things shared between programmers and actors. But in my opinion, there is one important thing we share: how we get our work. We both audition.

Some of you may be thinking “WTF are you talking about?!? Programmers interview Matt! In fact we tend to interview in a very well known long drawn out process.” Sure, we call it an “interview”. There are even interviews included in the process. But the core evaluation, is in fact an audition.

I really hate using one of the most beaten down clichés in essays and speaches “… the Miriam-Webster or Oxford dictionary defines X as…”, so I’ll use the American Heritage dictionary (found via search) as my reference instead. They define an audition as “A trial performance, as by an actor, dancer, or musician, to demonstrate suitability or skill.”

“A trial performance” this is key. Let’s see you work just a little bit. Demonstrate your skill, how you work, your reasoning about this character. From this, I will determine if you are a match for the performer I seek. Sound familiar? The code test is this type of performance. And thus, in my mind at least, a code audition.

While this assessment method for performers dates back thousands of years, it was probably only truly formalized in a modern sense in the late 19th or early 20th century. Whichever way you look at it though, it has been solidly used for a long time. One can assume it probably works pretty well. But even so, it is not without it’s criticisms and faults.

Many actors in Los Angeles, and elsewhere, have pointed out how weird and artificial the performance environment of the audition truly is. Perfoming not before an audience on stage or a film or TV set full of equipment and busling crew, as it would normally be. Rather, an empty stage or studio conference room, with a producer or director and their bored assistent. In our modern era, you’re not likely to even be in these environments. More likely, you’re on a Zoom call with these people. In either case, stone faced, watching your every move. Or perhaps worse, ignoring you as they take notes which may or may not be related to your audition, or maybe just checking email. Once again, I’ll let the programmers draw their own parallels here.

If you accept my premise thus far you may still be asking: “Ok, fine. We audition. Then what? Perhaps this other industry parallels ours, but why does this matter?” I think it is relevant to see how another industry addresses or reacts to similar problems and learn from them. In the case of auditions, it is often said by many actors that “Auditioning is its own skill”. It is understood that: “Yeah this process is artificial; so much so that doing well has little to do with your skills as an actor.” I think this applies to our processes just as much. And further, I think it is helpful in preparing for your interview process (a.k.a. code audition), whether you are interviewing or being interviewed, to keep this in mind. Auditioning is its own skill. Prepare and adjust your expectations accordingly.

Given these flaws should we abandon this process? The longevity of the audtion process gives its own kind of answer. One typical across most human activity: “Its not perfect, or even good, but it’s good enough”. Good enough for a few thousand years. You really think you have a better idea? And to be fair, I’m not sure I do. When actors must assess other actors, they still hold auditions. In kind, I have given the same code tests given to me when I was posed with finding new developers. Is a better “bang-to-buck” ratio out there? I don’t know.

One thing I can say is the LLM tools available now are dropping some pretty serious bombs into this process. So much, that “good enough” is in question. It is probably worth thinking about some different paths now. I’ve made my case that we parallel this audition process, but was it the best place to build a foundation for programming assessment? I’ve long thought that the fields of law and medicine do a vastly better job of establishing professional assessments and ongoing education requirements than programming do. There are many understandable reasons for the differences here, but I think we have been around long enough and are in a time where reaccessment makes sense.

In fairness, these LLM bombs are actually effecting all levels and types of assessment from grade schools to colleges to interviews across industries. It will take more than switching to a “Web Development Bar Exam” or “API Board Examination” as primary evaluation processes to address this issue. Some have said maybe we’re past programming now in general. I guess time will tell. But provided this isn’t the case, I think we have special insight and opportunity for addressing LLMs and assessment in particular if we put our minds to it. Who knows, if successful other fields might even copy us.