Detailed Guide forComputer Programmers in California
May also be called: Programmer Analysts; Programmers; Software Developers or Engineers; Mainframe Programmers; Web Programmers; and Web Application Developers
Specialties within this occupation include: Applications Programmers and Systems Programmers
What Would I Do?
Computer Programmers write, test, and maintain programs or software that tell the computer what to do. They convert project specifications and statements of problems and procedures into detailed, logical flow charts for coding into computer language. They develop and write computer programs to store, locate, and retrieve specific documents, data, and information. They may program Web sites.
Programmers generally know more than one programming language. Since languages use similar concepts and principles, Programmers can usually learn new languages with relative ease. Programmers may use conventional programming languages such as COBOL; an artificial intelligence language such as Prolog; an advanced object-oriented language, such as Java, C++, or ACTOR; or newer languages that work within the Microsoft.NET Framework, such as C# or Visual Basic.NET. Different programming languages are used depending on the purpose of the program. COBOL, for example, is commonly used for business applications, while Fortran is used in science and engineering. C++ is widely used for both scientific and business applications. Extensible Markup Language (XML) has become a popular programming tool for Web programmers, along with Java 2 Platform (J2EE). In addition, many programmers use computer-assisted software engineering (CASE) tools to automate much of the coding process.
Programmers use computer servers, desktop and mainframe computers, and a wide range of software in their work. They may use development environment, object or component-oriented development, compiler and decompiler, or database management system software.
Computer Programmers are frequently grouped into two broad types, Applications Programmers and Systems Programmers:
Applications Programmers write programs to handle a specific job, such as a program to track inventory within an organization. They may also revise existing packaged software or customize generic applications which are frequently purchased from vendors.
Systems Programmers write programs to maintain and control computer systems software, such as operating systems, networked systems, and database systems. They change instructions to determine how the network, workstations, and central processing unit handles various jobs and communicates with peripheral equipment such as terminals, printers, and disk drives. They may use their knowledge of the entire computer system to help Applications Programmers determine the source of problems that may occur with their programs.
Important Tasks and Related Skills
Each task below is matched to a sample skill required to carry out the task.
|View the skill definitions|
|Task||Skill Used in this Task|
|Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.||Deductive Reasoning|
|Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.||Reading Comprehension|
|Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.||Near Vision|
|Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.||Programming|
|Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.||Active Learning|
|Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.||Complex Problem Solving|
|Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.||Critical Thinking|
|Write or contribute to instructions or manuals to guide end users.||Written Expression|
|Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.||Computers and Electronics|
|Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.||Information Ordering|
Below is a definition for each skill.
|View the tasks to skills list|
|Deductive Reasoning||The ability to apply general rules to specific problems to produce answers that make sense.|
|Reading Comprehension||Understanding written sentences and paragraphs in work related documents.|
|Near Vision||The ability to see details at close range (within a few feet of the observer).|
|Programming||Writing computer programs for various purposes.|
|Active Learning||Understanding the implications of new information for both current and future problem-solving and decision-making.|
|Complex Problem Solving||Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions.|
|Critical Thinking||Using logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions or approaches to problems.|
|Written Expression||The ability to communicate information and ideas in writing so others will understand.|
|Computers and Electronics||Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming.|
|Information Ordering||The ability to arrange things or actions in a certain order or pattern according to a specific rule or set of rules (e.g., patterns of numbers, letters, words, pictures, mathematical operations).|
Computer Programmers generally work in an office environment. Most Programmers work a standard 40-hour week; however, they are known to work long hours with intense workloads and tight deadlines. The "debugging" phase of programming can be stressful. Like other workers who spend long periods in front of a computer, Programmers are susceptible to eyestrain, back discomfort, and hand and wrist problems, such as carpal tunnel syndrome. Some Programmers work alone but many are expected to work in teams and interact directly with users. Although telecommuting is already common for computer professionals, the expansion of networks makes it possible to do even more work from remote locations.
Although most Computer Programmers are not represented by unions, unionization varies by industry. Those working for government agencies may join the Service Employees International Union.
Will This Job Fit Me?
The job of Computer Programmer will appeal to those who enjoy activities that involve working with ideas, and that require an extensive amount of thinking. The Computer Programmer occupation satisfies those with investigative interests. Investigative occupations involve searching for facts and figuring out problems. Results-oriented individuals who are independent workers and like making decisions should enjoy this type of job.
What Wages and Benefits Can I Expect?
The median wage in 2016 for Computer Programmers in California was $90,655 annually, or $43.58 hourly. The median is the point at which half of the workers earn more and half earn less.
Most companies offer benefit packages that include sick leave, vacation, holidays, retirement, and stock-option plans.
What is the Job Outlook?
Job growth for Computer Programmers is expected to be much slower than that of other computer professionals. Many factors are contributing to the slow growth. As a result of technological changes in the programming world, fewer Programmers are needed to do routine work while more functions are being transferred to other types of information workers, such as Computer Software Engineers. The outsourcing of these jobs to other countries is also limiting growth. College graduates with knowledge of, and experience working with, a variety of programming languages and tools, should find the best opportunities.
Projections of Employment
In California, the number of Computer Programmers is expected to grow slower than average growth rate for all occupations. Jobs for Computer Programmers are expected to increase by 2.3 percent, or 900 jobs between 2014 and 2024.
|Estimated Employment and Projected Growth|
(Estimated Year-Projected Year)
Due to Net
|View Projected Growth for All Areas|
Annual Job Openings
In California, an average of 90 new job openings per year is expected for Computer Programmers, plus an additional 980 job openings due to net replacement needs, resulting in a total of 1,070 job openings.
|Estimated Average Annual Job Openings|
|Jobs From Growth||Jobs Due to|
|View Data for All Areas|
How Do I Qualify?
Education, Training, and Other Requirements
Although most Programmers have a bachelor’s degree, some employers will accept an associate’s degree or certificates. Because programming tasks are becoming more complex, employers are beginning to require a four-year degree. Employers hiring Programmers for scientific or engineering applications prefer college graduates with a degree in computer or information science, mathematics, engineering, or the physical sciences. Companies that use their systems for business applications favor college graduates with a concentration in management information systems (MIS), or business. Some employers within this industry require a master's degree.
Candidates need substantial specialized experience or expertise to demonstrate programming knowledge. Employers place increasing emphasis on a candidate's experience with newer, object-oriented programming languages and tools such as C++ and Java. In addition, they prefer candidates who have knowledge of newer, domain-specific languages that apply to computer networking, database management, and Internet application development. Employers also seek candidates with knowledge of fourth-generation or fifth-generation languages that involve graphic user interface (GUI) and systems programming. Systems Programmers need an extensive knowledge of a variety of operating systems like Windows NT or UNIX and database systems, such as DB2, Oracle, SQL, or Sybase.
Early Career Planning
High school students interested in this kind of work should take classes in mathematics, computer science, language arts, business, physical science, and engineering technology.
Work Study Programs
Students can improve their job prospects by participating in a college work-study program or internship. There may also be Regional Occupational Programs available for this occupation. To find an ROP program near you, go to the California Association of Regional Occupational Centers and Programs Web site.
Computer Programmers must continuously update their skills and knowledge due to the ever-changing programming field. Employers, hardware and software vendors, colleges and universities, and private training institutions offer continuing education. Professional seminars can also enhance skills and advancement opportunities.
Professional certification is becoming more common in this occupation. Candidates can demonstrate programming knowledge by becoming certified in a programming language such as C++ or Java. Product vendors or software firms also offer certification and may require those who work with their products to be certified. For more information, go to the U.S. Department of Labor's Career InfoNet Web site and scroll down to "Career Tools." Click on "Certification Finder" and follow the instructions to locate certification programs.
Where Can I Find Training?
There are two ways to search for training information:
Contact the schools you are interested in to learn about the classes available, tuition and fees, and any prerequisite course work.
Where Would I Work?
Computer Programmers work in a variety of industries. The largest industries employing Computer Programmers are as follows:
|Industry Title||Percent of Total Employment for Occupation in California|
|Computer Systems Design and Rel Services ||40.9%|
|Software Publishers ||5.5%|
|State Government ||4.3%|
|Employment Services ||3.8%|
|Colleges and Universities ||3.3%|
Finding a Job
Networking is important in this occupation, since many Computer Programmers find work through referrals and word of mouth. Direct application to employers is also an effective job search method. Online job opening systems include JobCentral at www.jobcentral.com and CalJOBSSM at www.caljobs.ca.gov.
To find your nearest One-Stop Career Center, go to Service Locator. View the helpful job search tips for more resources. (requires Adobe Reader).
Yellow Page Headings
You can focus your local job search by checking employers listed online or in your local telephone directory. Below are some suggested headings where you might find employers of Computer Programmers.
- Computer Network Design & Systems
- Computer Software Publishers & Developers
- Computers-Software & Services
- Computers-System Designers & Consultants
- Schools-Colleges & Universities
Find Possible Employers
To locate a list of employers in your area, go to "Find Employers" on the Labor Market Information Web site:
- Select one of the top industries that employ the occupation. This will give you a list of employers in that industry in your area.
- Click on "View Filter Selections" to limit your list to specific cities or employer size.
- Click on an employer for the street address, telephone number, size of business, Web site, etc.
- Contact the employer for possible employment.
Where Could This Job Lead?
For experienced workers, the prospects for advancement are good. In large organizations, Computer Programmers may be promoted to Lead Programmers and be given supervisory responsibilities or may move into Project Management. Some Applications Programmers become Systems Programmers after they acquire additional experience and complete courses in systems software. Both Applications Programmers and Systems Programmers may become Systems Analysts or be promoted to managerial positions. Other Programmers, with specialized knowledge and experience with a language or operating system, may work in research and development for multimedia or Internet technology and may become Computer Software Engineers. As employers increasingly contract with outside firms for programming jobs, those with expertise in a specific area may find opportunities as consultants.
Below is a list of occupations related to Computer Programmers with links to more information.
|Computer and Information Systems Managers||Guide|
|Computer Science Teachers, Postsecondary||Profile|
|Software Developers, Applications||Guide|
|Software Developers, Systems Software||Guide|
|Computer Systems Analysts||Guide|
|Operations Research Analysts||Profile|
These links are provided for your convenience and do not constitute an endorsement by EDD.
For the Career Professional
The following codes are provided to assist counselors, job placement workers, or other career professionals.
|SOC - Standard Occupational Classification||15-1131|
|O*NET - Occupational Information Network|
| Computer Programmers||15-1131.00|
| Interest Codes (RIASEC)||ICR|
|CIP - Classification of Instructional Programs|
| Computer Programming/Programmer, General ||110201 |
| Computer Science.||110701 |
| Web Page, Digital/Multimedia & Information Resources Design ||110801 |
| Computer Graphics ||110803 |
| Web/Multimedia Management and Webmaster ||111004 |
| E-Commerce/Electronic Commerce ||520208 |
|TOP - Taxonomy of Programs (California Community Colleges)|
| E-Commerce (business emphasis)||050970|
| Website Design and Development||061430|
| Computer Graphics and Digital Imagery||061460|
| Computer Science (transfer)||070600|
| Computer Software Development||070700|
| Computer Programming||070710|
| World Wide Web Administration||070900|
| E-Commerce (technology emphasis)||070910|