How to Get Started at AV Programming
For those looking for a long-term, rewarding career path in the AV industry, becoming an AV programmer might be the answer. AV programmers have been in demand for decades with the rise of integrated systems requiring ease of operation and intuitive interface design. Whether the solution is custom-programmed or configured, effective control system implementation and quality control system programming remains a critical component for most projects, further validating the critical nature of the AV programmer role.
In the early days of programmable AV control, the AV programmer was the person with the laptop who was relied upon to do mostly everything involving a computer. This included but was not limited to programming and loading control system equipment, updating device firmware, verifying communication among devices, and setting up any equipment that was software configurable. Nowadays, although the use of laptops and computer proficiency have become mainstream, there is still a multitude of responsibilities that programmers are associated with beyond their core competency of writing code.
The role of an AV programmer includes several key components. Of course, the primary skill that should come as no surprise involves being proficient with developing code in one, or likely multiple, control system languages and platforms. Just as important as being proficient in code development is being able to understand all the basics of AV required to make a system function and satisfy users. This list includes knowledge of each of the following AV fundamentals: signal flow, control methods, device functionality, system operation, and addressing user needs.
While programming a system may be complex in and of itself, an AV programmer often plays a large part in not only delivering, but also defining the system functionality and user experience. Taking this concept further, most AV programmers have the responsibility of developing a modern, effective user interface design.
User interface design on its own is a unique skill set and represents a key element in the success of an AV programmer. Although writing code and creating dynamic interface designs seemingly represent opposing strengths, the ability to deliver an effective user experience is dependent on both working in harmony. While there are times when a user interface can be created by one developer with the coding developed by another, an AV programmer needs to be proficient in both areas. A balance of both skill sets, otherwise known as full stack development, is what is needed to prosper as an AV programmer. It’s important to remember that while developing quality code is critical, failure to deliver an effective user experience can overshadow all other programming and technical efforts.
Along with the many aspects of the AV programmer role that are universal and independent of brand or application, there are also areas that vary for different markets, user needs, products and applications, and control system platforms.
The first difference among programmers is their area of expertise related to a specialization in certain vertical markets. The most notable example is the differences in approach, expertise, and knowledge needed to effectively serve the commercial market versus the residential market. Although the action of programming is the same across the board, the solutions and project requirements vary significantly. Everything from the system design, to the equipment used, to the user requirements, to the system operation are vastly different, resulting in the need for a distinctly unique approach to each. As a result, AV programmers tend to specialize and become more apt to serve a certain market or client type over others. Being an expert in both commercial and residential markets is rare, and requires a considerable amount of varied knowledge and experience that is difficult to maintain.
Another component that differentiates AV programmers is their knowledge and proficiency with certain control system platforms and programming languages. In AV, a programmer tends to be labeled by the control system platforms that they know and support. This is further reinforced by the manufacturer certifications that they amass.
Although most control system manufacturers provide comparable products with regard to control capabilities and operation, there are tangible nuances that make each manufacturer’s platform unique. These differences start with the approach to creating system functionality. In most cases, each manufacturer has specific applications, methodologies, and languages that they define for the programming or configuration of their systems. While many of these applications or languages are proprietary, some are derived from known coding syntax, engineering principles, or other concepts familiar to those who write code or are experienced with the AV industry. In order for a programmer to master a control system platform, they must not only get up to speed on the software applications and programming languages, they must also become familiar with the unique aspects and subtleties of the hardware and associated troubleshooting tools.
A programmer’s value will grow with their flexibility and ability to quickly adopt and master multiple control system platforms and programming languages. What becomes more difficult than learning each manufacturer’s system is maintaining a high level of expertise and being able to easily switch between platforms and languages as needed. Learning a new programming language can be a challenge in itself, but the ability to build competency will depend on use, repetition, and experience. Therefore, it can be very challenging to become an expert in multiple control system platforms and languages without consistent exposure and the opportunity to put the knowledge to use.
Without a doubt, an AV programmer’s biggest and most valued asset must be their ability to effectively troubleshoot. Whatever the issue, anything that does not work as expected in a custom integrated system can be deemed a programming issue. Therefore, programmers must contend with the challenge of being presumed guilty before proven innocent. For times when programming is truly the culprit, AV programmers must address the issue efficiently and effectively, being careful to not disrupt unrelated areas of the program. At all times, even when programming issues can be absolved, an AV programmer’s value in helping to troubleshoot and resolve remaining open items is key to attaining a successful project outcome for all involved.
The notion that the requirements and impact of an effective AV programmer stretches well beyond simply writing code begs to question the limitation of the label of “programmer.” This is especially pertinent as the AV industry continues to promote “no-programming-required” solutions as the easier and more cost-effective approach for clients. The role of an AV programmer is often underestimated based on the value it truly provides and what it takes to be successful. Those who aspire to become or desire to build a career as an AV programmer must be skilled in code and user interface development; proficient in the fundamentals of AV, addressing user needs, defining system functionality, and understanding market differences; adaptable to learning various control platforms and languages; and adept at troubleshooting to ensure fully operational systems. Often, the tipping point for client satisfaction and an effective user experience hinges on the effectiveness of the AV programmer.
Steve Greenblatt, CTS, is president and founder of Control Concepts, a provider of specialized software and services for the audiovisual industry.