This article is about people who write computer software.
For other uses, see Programmer (disambiguation).
"Coder" redirects here.
For someone who performs coding in the social sciences, see Coding (social sciences).
For someone who performs medical coding, see Clinical coder.
For the unincorporated community in Pennsylvania, see Coder, Pennsylvania.
|Activity sectors||Information technology, Software industry|
|Competencies||Writing and debugging computer code, documentation tasks. Some design and development work is often performed.|
|Education required||Varies from apprenticeship to bachelor's degree in related field|
A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer software.
The term computer programmer can refer to a specialist in one area of computers, or to a generalist who writes code for many kinds of software.
Some who work with web programming languages also prefix their titles with web.
British countess and mathematician Ada Lovelace is often considered to be the first computer programmer, as she was the first to publish part of a program (specifically an algorithm) intended for implementation on Charles Babbage's analytical engine, in October 1842.
The algorithm was used to calculate Bernoulli numbers.
Because Babbage's machine was never completed as a functioning standard in Lovelace's time, she never had the opportunity to see the algorithm in action.
The software industry
Main article: Software industry
The first company founded specifically to provide software products and services was the Computer Usage Company, in 1955.
The software industry expanded in the early 1960s, almost immediately after computers were first sold in mass-produced quantities.
Universities, governments, and businesses created a demand for software.
Many of these programs were written in-house by full-time staff programmers; some were distributed between users of a particular machine for no charge, while others were sold on a commercial basis.
Other firms, such as Computer Sciences Corporation (founded in 1959) also started to grow.
The industry expanded greatly with the rise of the personal computer (PC) in the mid-1970s, which brought computing to the average office worker.
In the following years the PC also helped create a constantly-growing market for games, applications and utilities software.
From the point of view of producers of some proprietary software, SaaS reduces the concerns about unauthorized copying, since it can only be accessed through the Web, and by definition, no client software is loaded onto the end user's PC.
SaaS is typically run out of the cloud.
Nature of the work
Programmers also conceive, design, and test logical structures for solving problems by computer.
Many technical innovations in programming — advanced computing technologies and sophisticated new languages and programming tools — have redefined the role of a programmer and elevated much of the programming work done today.
Job titles and descriptions may vary, depending on the organization.
Many professional programmers also work for consulting companies at client sites as contractors.
Programming is widely considered a profession (although some authorities disagree on the grounds that only careers with legal licensing requirements count as a profession).
Programmers' work varies widely depending on the type of business for which they are writing programs.
For example, the instructions involved in updating financial records are very different from those required to duplicate conditions on an aircraft for pilots training in a flight simulator.
Simple programs can be written in a few hours, more complex ones may require more than a year of work, while others are never considered 'complete' but rather are continuously improved as long as they stay in use.
In most cases, several programmers work together as a team under a senior programmer's supervision.
Programmers write programs according to the specifications determined primarily by more senior programmers and by systems analysts.
After the design process is complete, it is the job of the programmer to convert that design into a logical series of instructions that the computer can follow.
The programmer codes these instructions in one of many programming languages.
Different programming languages are used depending on the purpose of the program.
Programmers generally know more than one programming language and, because many languages are similar, they often can learn new languages relatively easily.
In practice, programmers often are referred to by the language they know, e.g. as Java programmers, or by the type of function they perform or the environment in which they work: for example, database programmers, mainframe programmers, or web developers.
When making changes to the source code that programs are made up of, programmers need to make other programmers aware of the task that the routine is to perform.
To save work, programmers often use libraries of basic code that can be modified or customized for a specific application.
This approach yields more reliable and consistent programs and increases programmers' productivity by eliminating some routine steps.
Testing and debugging
Programmers test a program by running it and looking for bugs (errors).
As they are identified, the programmer usually makes the appropriate corrections, then rechecks the program until an acceptably low level and severity of bugs remain.
These are important parts of every programmer's job.
Programmers may continue to fix these problems throughout the life of a program.
Updating, repairing, modifying, and expanding existing programs is sometimes called maintenance programming.
Application versus system programming
Computer programmers often are grouped into two broad types: application programmers and systems programmers.
Application programmers write programs to handle a specific job, such as a program to track inventory within an organization.
They also may revise existing packaged software or customize generic applications which are frequently purchased from independent software vendors.
These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives.
Qualifications and skills
A programmer needs to have technical expertise with certain aspects of computing.
Some positions will require a degree in a relevant field such as computer science, information technology, engineering, programming, or other related studies.
Types of software
Programmers may work directly with experts from different fields to create software – either programs designed for specific clients or packaged software for general use – ranging from video games to educational software to programs for desktop publishing or financial applications.
Programming of packaged software constitutes one of the most rapidly growing segments of the computer services industry.
Some companies or organizations – even small ones – have set up their own IT team to ensure the design and development of in-house software to answer to very specific needs from their internal end-users, especially when existing software are not suitable or too expensive.
This is, for example, the case in research laboratories.
In some organizations, particularly small ones, people commonly known as programmer analysts are responsible for both the systems analysis and the actual programming work.
The transition from a mainframe environment to one that is based primarily on personal computers (PCs) has blurred the once rigid distinction between the programmer and the user.
Increasingly, adept end-users are taking over many of the tasks previously performed by programmers.
For example, the growing use of packaged software, such as spreadsheet and database management software packages, allows users to write simple programs to access data and perform calculations.
In addition, the rise of the Internet has made web development a huge part of the programming field.
Programming editors, also known as source code editors, are text editors that are specifically designed for programmers or developers for writing the source code of an application or a program.
These features aid the users during coding, debugging and testing.
Market changes in the UK
According to BBC News, 17% of computer science students could not find work in their field 6 months after graduation in 2009 which was the highest rate of the university subjects surveyed while 0% of medical students were unemployed in the same survey.
Market changes in the US
After the crash of the dot-com bubble (1999–2001), many U.S. programmers were left without work or with lower wages.
In addition, enrollment in computer-related degrees in the US has dropped for years, especially for women, which, according to Beaubouef and Mason could be attributed to a lack of general interest in science and mathematics and also out of an apparent fear that programming will be subject to the same pressures as manufacturing and agriculture careers.
The U.S. Bureau of Labor Statistics Occupational Outlook 2016-26 shows a decline of 7 percent and a decline of 9 percent from 2019 to 2029.
- Game programmer
- List of programmers
- Software development process
- Software engineering
- System administrator
Credits to the contents of this page go to the authors of the corresponding Wikipedia page: en.wikipedia.org/wiki/Programmer.