Software Programmers
Education
| Fast Facts* | |
|---|---|
| Recommended Degree Level | Bachelor |
| Salary, Typical | $74,280 |
| Salary Range | |
| Number of Jobs, 2012 | 316,790 |
| Annual Job Growth Rate | 3.3% |
| Job Openings per Year (est.) | 12,800 |
What's Needed:
- Computer programmers usually have a bachelor’s degree in computer science.
- Some employers will consider candidates with an associate degree and work or internship experience.
- Although the computer science curriculum teaches programming languages, students with real-world employment or internship backgrounds have an edge in the job market.
What you study:
Study topics include:
- Systems programming
- High-level languages
- Software engineering
- Computer organization
- Computer networking
- Mathematics
- Web application development
Video Overview
A brief introduction to software programming careers. Produced for the US Dept. of Labor.
A Day in the Life
As a computer programmer, you man the front lines of critical software development. This morning, you find a stack of technical documents on your desk and a worried manager in your chair. She explains that a developer working on a new finance application was abruptly moved to a different project, and you are now lead programmer in his place. Suddenly, the day's schedule changes from updating a Web application module in Python to learning the finance application's design. You will write it in C++, a challenging low-level language that uses object orientation. You cancel your evening plans for the week.
As you are still responsible for your current project, you spend the morning debugging the existing module to find all of the needed changes. You hold a video call with the original programmer who is now at the Germany office. Both of you often work flexible hours to accommodate colleagues in different time zones. The original module uses third-party code libraries that do not handle some new functionality very gracefully, and you need to decide how to code around the issue. You make a note to research alternative libraries although they could mean substantial code changes.
After lunch, you meet with the software team working on the new finance application. Using a white board, the team walks through the high-level program design. You will be in charge of writing the derivatives module. You know nothing about financial derivatives, but fortunately you are quite familiar with several excellent software math libraries that should handle most of the calculations. However, you must still learn the basic principles of derivatives. You remind yourself that this project is an advancement opportunity and a chance to exercise your C++ skills.
Back at your desk, you write a short automation script to test a change you made to the Python Web module. The test will run overnight, and you will review the logs in the morning. You can also access the system from home and poke around. As it stands, you will likely be up quite late learning how to code derivatives in C++.
Certifications and Licensing
Some employers require certification in the vendor products that they use in application development. Computer programmers may also find it helpful to become certified in a specific technology. Most programmers specialize in an area such as Web applications and commit to ongoing training that could lead to certification. Those interested in software development should consider the IEEE Certified Software Development Associate (CSDA) and the Certified Software Development Professional (CSDP) certifications.
Job Flexibility
Full-time versus part-time:
Most computer programmers work full time. Some projects may require overtime or irregular hours to support teams across different time zones.
Work location:
About 44 percent of computer programmers work for computer systems design and information services companies. Many employees code on self-contained projects and are able to telecommute. One quarter of U.S. programming jobs are in California, New York, and Texas.
Recommended Websites
- U.S. Department of Labor, Occupational Outlook Handbook – The site offers an overview of the computer programming field as distinct from software development and engineering. It explains the economic reality of programming jobs moving overseas, which is an important consideration for people exploring the career. For a more in-depth look at the programming life, also visit websites within the software development field.
- IEEE Computer Society – The IEEE Computer Society is a worldwide membership organization for computer professionals. The site offers a wealth of educational and online community resources for students, career changers, and anyone interested in networking with others in the computing field.
- Association for Computing Machinery – The ACM is a membership organization focused on education and advancement in computer science and related professions. The site offers comprehensive career and academic information for those considering the career.
- SANS Institute – The SANS Institute sponsors research and education in the computer security field. As software professionals must know how to write secure programs, the site's abundant training and information resources provide a useful look at this critical skill.
