Number of Jobs
|This Job is Ranked in|
|Best Technology Jobs||#9|
|The 100 Best Jobs||#30|
Shhh. Don't tell the machine you're using to read this, but computer programmers are essentially its taskmaster. They boss around our computers via lines upon lines of source code containing high-level algorithms and mind-numbing logic. Computer programmers write these easy-to-follow instructions in one of the many computer languages in existence, the most common of which are C++ and Python. In most cases, this writing process comes after software developers or engineers pass along design specifications for a particular program. The programmer refines the ideas, solving problems while converting the aspect into code. Programmers will also rewrite, debug, maintain and test (and retest) software and programs that instruct the computer to accomplish certain tasks, such as storing or retrieving data, so the computer can perform better and more efficiently. According to Barry Warsaw, Ubuntu platform software engineer for Canonical, a distributor of the Ubuntu Linux operating system, talented programmers have two basic career tracks they can follow: "In some jobs, they traditionally move into management positions, at which point they may program very little or not at all," says Warsaw, who's worked mostly in the free software and open-source world for the past 30 years. "In others, they can retain their programming skills by assuming more technical and project leadership roles."
Programming certainly has its share of stressful days, but it's important to not get worked up. "Being able to stay calm, get enough sleep, eat right and keep your mental clarity is critical to your long-term survival as a programmer," Warsaw advises. He also says that since telecommuting has become a more common perk of computer programmer jobs, it's of vital importance to focus on your work and not get distracted by mundane things like laundry or other errands. "It's also important to step away from the computer when work is done, spend time with family or just recharge your batteries," he says. "The amount of flexibility you will have to do this depends greatly on your job and employer, but there's no doubt that long-term persistent stress will eventually lead to burnout."
Between 2012 and 2022, the Bureau of Labor Statistics projects employment for the industry, which already boasts 316,790 professionals, to grow 8.3 percent. The profession's strong expected growth (as well as high median salary) helped computer programmer place No. 30 in our ranking of The Best Jobs of 2014.
The BLS reports the median annual wage for computer programmers was $74,280 in 2012. The best-paid 10 percent in the field made approximately $117,890, while the bottom 10 percent made approximately $42,850. The highest-paid in the profession work in the metropolitan areas of Santa Fe, N.M., Bethesda, Md., and Anniston, Ala.
Many computer programmer jobs require at least a bachelor's degree, but a two-year degree or certificate may be adequate for some positions. Some programmers hold a college degree in information systems, computer science or mathematics. Students seeking software engineering or programming jobs can improve their employment outlook by getting an internship. Large computer and consulting firms often train new employees in intensive, company-based programs.
In Warsaw's opinion, being able to learn and collaborate are two underestimated, yet critical, skills for a computer programmer to possess. "Learning is crucial to a long career as a programmer because technology changes so quickly. The hot language you are an expert in today may end up being a programming backwater tomorrow," he says. Warsaw, who works with people from all over the world on a daily basis, emphasizes that the ability to clearly communicate ideas and listen to the ideas of others is fundamental to building a successful career. "I think the myth of the lone programmer locked in a dark cubicle is mostly just that – a myth," he says.
|Upward Mobility||good Above Average|
|Stress Level||poor Above Average|
Last updated by Nathan Hellman.