Every piece of software you interact with - at a retail checkout, on a business desktop, at an online banking website or during a game - has been developed using a range of programming languages and, usually, a team of programmers.
Dave O'Rourke, systems integration manager for a retail software developer, says he likes programming because it rarely involves managing other people.
"I tried working as a project manager once and went back to programming pretty quickly. Working for a smaller company is rewarding because you can turn applications around quickly and see the results accepted, deployed, and appreciated," says O'Rourke.
O'Rourke spent 30 years becoming proficient in computer languages, including Assembler, RPG, Cobol, Pascal, C++ and Borland's Delphi. He says the Microsoft C Sharp programming language is popular in today's market.
But the popularity of object-based tools - those that let programmers "drag and drop" icons and application components rather than cut raw code - can be problematic, says O'Rourke.
"Those tools are easy to become proficient in, so developers can bring in more people and turn projects around quickly, but the easier you make a language the more you open the market to people who aren't well skilled in the disciplines of software development," he says.
Sean McBreen, director of developer and platform strategy group for Microsoft New Zealand, says while some of the "science" related to building applications has been lowered over the years, teaching core computing concepts is still important.
"Attending an academic institution is about learning how to learn, not just exposure to the different applications," he says.
Sam Pierson, a self-employed programmer proficient in several computer languages, says raw code cutting will always be important for programmers who want skills that stay in demand.
"Today's businesses want [web-enabled] applications that can come to them wherever they are. More than one programming language is required to get the job done," he says.
Pierson was trained at the-then Auckland Technical Institute, where programming students had to compile on pieces of paper with structured diagrams.
"You had to work out what came first. I'd rather work under the bonnet of an application and achieve the right result than rely on a "push and click" tool to do it for me."
Mark Loveys, director for accounting and point-of-sale software developer Enprise, says he looks at the applications an experienced programmer has worked on and the business models they are familiar with. However, Loveys also employs new graduates.
"They can be 10 times slower than an experienced programmer in getting to grips with a product, but you do need to grow a wider team of people," he says.
O'Rourke says New Zealand universities produce insufficient numbers of programming graduates, making the employment of immigrants necessary.
Microsoft's McBreen says if there is open communication around trends and "must have" core competencies between the business community, teachers and students, programming graduates will be more workplace-ready and inspired to put down roots in New Zealand rather than shifting offshore.
O'Rourke's employer, a software developer with an international programming team, says graduates also need raw talent.
"True programming ability is down to aptitude. We give equally qualified job candidates real world tasks and only a small percentage shine - those few tend to have been trying to program since they were 12," says the employer.
So, while the money isn't bad and the job prospects are generally good, it isn't wise to approach programming on a whim.
Want to be a programmer?
A tertiary degree in computer science majoring in computer programming is the modern day entry point to employment. Entry preference is given to students who have studied computing, science or mathematics to a high secondary school level.
Programmer pay rates start from around $40,000 for a new graduate and rise incrementally to around $60,000 to $80,000 for an experienced programmer and $120,000 for an application development team leader or project manager. Self-employed programming consultants or contract workers can earn much more.
Among the more common programming skills in demand: Microsoft.net; ADO.net; Java; ERP, e-commerce financial and e-commerce application development; relational database management development (SQL, Oracle, DB2); Delphi; C++; C sharp; Visual Basic; graphic user interface (GUI) programming and geometric transformations for games and design applications; Linux.