There's a mantra in all leadership and management training with regards to promotions and upward mobility. Simply stated, the lynchpin to your own advancement is in making sure that there's someone else who is either just as or better suited than yourself to take over your current position. So who's taking mine? Who's taking the position of many of my peers? We're all retiring from button-pushing at some point. Some of us are moving on to being full-time designers while others will fulfill other industry pursuits. The transition from programmer to designer is an increasingly popular one and, these days, is simply a natural progression, given the fact that the role of the programmer has led to increased creative responsibilities on just about every production.

As programmers within the industry advance toward their goals of being full-time designers, it is imperative that the new wave of programmers is technically and artistically capable of filling those shoes. The problem that the industry as a whole is being faced with is that the talent pool of up-and-coming programmers is really slim pickings! That's an extremely blunt statement, but the truth sometimes hurts. The fact of the matter is that the new guys just aren't very good. Yeah, I said it. It needed to be said! There seems to be a real talent deficit right now in this extremely sought-after position, and the new guys who are good are snatched up so fast it makes your head spin. The available “A-list” has been whittled down to one that is extremely short, and it feels like the “B-list” is even shorter. You may very well be the exception to the rule — but it's downright foolish to just assume you are and holding that attitude will only limit your goals at some point in your career.

So, from where does this problem stem? Well, I started asking some colleagues of mine at a recent lunch and the consensus was unanimous: Laziness seems to be what is ultimately to blame here. The “kids” today don't seem to realize just how much effort their predecessors put into building their careers.

It used to be that a prospective programmer was a technician of some sort who took an interest in consoles and spent every free, waking moment of his or her time setting up a console in the shop and teaching themselves everything that they could about the desk. It was hard work and quite often a tremendous amount of personal sacrifice, but the old guard of prospective programmers understood what it would take to get the position. They also understood the mental, physical, and monetary payoffs to such a position. In today's advanced computing age, the role of programmer is often filled by the young computer whiz-kid who has a decent grasp of Ethernet networking. He or she knows what an IP address is and knows how to use their laptop to ping other stations on a network. They know how to use their cell phone to download the latest fixture library and jockey that information into the desk via a USB key all the while speaking to someone at technical support on their Bluetooth headset. They're so wired that they're wireless. As Arthur C. Clarke once famously quoted, “Any sufficiently advanced technology is indistinguishable from magic.” And the magical powers of the new guard allow them to slide into the programming seat with relative ease. Sadly, what their “magic” never seems to be able to conjure up is experience. You see, the position of lighting console programmer used to be something that you normally couldn't just slide into because it took an amazing amount of — well, a lot of stuff actually. So what are the things that make a great programmer?

First and foremost, a great programmer has a mastery of several lighting consoles — and I mean mastery in the true sense of the word. Great programmers haven't mastered just one desk, but at the very least three. Most likely those three are the most popular three desks within the industry at any given time. More times than not, this programmer will also know some niche market desk, probably some lighting instrument manufacturer's proprietary console. This latter point is particularly important for the up-and-coming programmer who is looking to break into the industry but finding a hard time of it. Specializing in an unusual desk is a great way to break in because you'll usually end up being recommended directly by a manufacturer when a client asks to find them someone who knows how to run the thing for them. I can personally attest to this method because when I jumped into the freelance world of programming, I specialized in not just the popular Wholehog 2, but also the Martin CASE, High End Status Cue, Pulsar Masterpiece, Celco Navigator, and a brand-new desk at the time that nobody had ever heard about called the grandMA. I recall one job opportunity in particular where I was flown to Brunei for a project because I was the only programmer in the world at the time who had a mastery of both the Pulsar Masterpiece and Martin CASE consoles, both of which were being used on the project.

In a very arguable second place is attitude. A great programmer should be accompanied by a great attitude. I qualify this point with the word “arguably” because many designers will take a programmer who has a great attitude over one who is more technically proficient every day of the week. Attitude is everything because it dictates how everyone around you will react to not just yourself, but the other people with whom you are working. Great programmers can shape-shift their attitude and demeanor in a way that helps them get along with anyone on a production. He or she can hang on the loading dock during a break, chatting happily with a teamster in a forklift or just as easily sit at dinner with the designer and producer discussing creative direction of the show over a glass of fine wine. He or she understands how their crew supports them and has mastered the art of saying “please” and “thank you” just as well as their console keystrokes. Great programmers are easy-going folk who tend to get along with everyone and are understanding of adverse conditions that their co-workers may be facing in supporting them. They roll with the punches and take the good with the bad, producing a minimal amount of fuss.

Thirdly, a great programmer is a leader. He or she is not afraid to take control of a situation or entire crew when called upon. The programmer is often at the right hand of the designer, and when the designer is not around to answer a question or make a creative decision, it will almost always be the programmer who is asked to make that decision or take the lead on a particular project. That programmer had better be ready to not only make an educated decision, but also take responsibility for said decision in the eyes of the designer. This is often an extremely intimidating process and is always a test of personal accountability.

Fourth on the list is adaptability. Great programmers have the ability to not only jump between various job types (i.e., theatrical shows, concert touring, one-offs, corporate industrials, retail installations, etc.), but they know how to work with various designers and their work styles. No two designers work the same way, and it's important to be able to adapt to a new style of workflow from day to day. One of the many great pieces of advice Arnold Serame, a legendary programmer-turned-designer, gave me was to practice programming for other designers. That meant forcing yourself to not get locked into one way of programming and laying out your lighting console. You had to practice setting up your desk for various types of shows and work styles. Whereas programming a console for a concert tour and a televised event might be similar, they do have very different and specific needs, and the last thing a programmer wants to be doing is rearranging the philosophy of how the desk is laid out midway through the programming process. Also, different designers have different desires. Some want to have a bit of hands-on control of the desk during the show while others expect the programmer to handle everything. It's important to know how to manage those needs physically on the console. What parameters can you give the designer to play with during the show that won't interfere with your other running cue lists? What information does the designer need to see on an external monitor, etc.?

The fifth of my personal faves is speed and accuracy. One means absolutely nothing without the other. One of the main reasons why you spend personal time learning a console is to produce the muscle memory that's required to hit buttons and touch screens with extreme speed. However, if you have to redo your keystrokes three or four times because you're not accurate, then you're taking up just as much time as a slow programmer would. Another thing that helps with programming speed is having a very efficient start-up disk with which to begin every show. Thanks to the touchscreen technology built into many of today's consoles, you have the ability to customize your desk and its views to your workflow. There's no hard-set way of laying things out, but the main thing to remember is that your access to information on the desk should require the least amount of button presses possible. My personal showdisk layouts for all desks includes a Main view that contains the largest amount of information possible to enable me to create a complete look on stage without hitting any other view button. For the most part, other views on the desk simply become extensions of the Main view, granting me access to more customizable features of the rig. Ergonomics also come into play here, in that it is important to take into consideration the view and palette buttons that you find yourself pressing most often and placing those buttons in areas that are physically close to your fingers so that your hands don't have to move across the screens too wildly. You'd be amazed at how much a simple relocation of a button or palette can improve your speed and accuracy. For a programmer, repetition is the mother of all skills. For a designer, it's deadly.

Sixth but certainly not least, as this list could go on for days, is that you actually have to sit in front of an honest-to-goodness lighting console to practice. Launching the desktop shortcut to the offline editor does not the programmer make! I'm going to go way out on a limb here and harshly proclaim that if working on an offline editor makes up the bulk of your programming experience, then you more than likely stink. Of course, this is not to say that you don't have incredible potential, but you absolutely have to practice on a real lighting console so that you know exactly where the buttons are on the desk from an ergonomic standpoint. I have heard numerous horror stories about companies and designers trying out new programmers only to have their workflows stifled because they learned that the programmer in question was really great on the offline editing software but couldn't find the copy button on the actual desk. Remember that offline editors are amazing tools but that they should be used as just that — tools. You should know how they work and how they can help you to be a better programmer, but they are not replacements for the real thing.

The bottom line is that being a great programmer is hard work that demands a high level of commitment, attention to detail, and respect. It's a fantastic job within our industry and highly sought-after for good reason given the many benefits that come along with it. The old guard of programmers that are starting to move upwards toward new career goals want to see the newbies become great programmers for very selfish reasons. They'll be relying on those new guys to program for them. Those new guys have some very big shoes to fill.