A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates
computer programs — often for larger computer software.
A programmer is someone who writes/creates computer software or applications by providing a specific programming language to the computer. Most programmers have extensive computing and coding experience in many varieties of programming languages and platforms, such as Structured Query Language (SQL), Perl, Extensible Markup Language (XML), PHP, HTML, C, C++ and Java.
A programmer's most often-used
computer language (e.g.,
Assembly
Assembly may refer to:
Organisations and meetings
* Deliberative assembly, a gathering of members who use parliamentary procedure for making decisions
* General assembly, an official meeting of the members of an organization or of their representa ...
,
C,
C++,
C#,
JavaScript,
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lisping ...
,
Python,
Java, etc.) may be prefixed to the aforementioned terms. Some who work with
web programming languages may also prefix their titles with ''web''.
Terminology
There is no industry-wide standard terminology, so "programmer" and "
software engineer" might refer to the same role at different companies. Most typically, someone with a job title of "programmer" or "software developer" might focus on implementing a detailed specification into computer code, fixing
bugs
Bugs may refer to:
* Plural of bug
Arts, entertainment and media Fictional characters
* Bugs Bunny, a character
* Bugs Meany, a character in the ''Encyclopedia Brown'' books
Films
* ''Bugs'' (2003 film), a science-fiction-horror film
* ''Bugs ...
, and performing code reviews. They might have a degree in
computer science, an
associate degree
An associate degree is an undergraduate degree awarded after a course of post-secondary study lasting two to three years. It is a level of qualification above a high school diploma, GED, or matriculation, and below a bachelor's degree.
The fi ...
, or might be self-taught or attended a
programming boot camp. Someone with a job title of "
software engineer" is expected to understand
software engineering principles, more advanced mathematics, and the
scientific method, and may be required to have a degree in software engineering,
computer engineering
Computer engineering (CoE or CpE) is a branch of electrical engineering and computer science that integrates several fields of computer science and electronic engineering required to develop computer hardware and software. Computer engineers ...
, or
computer science. Some countries legally require an engineering degree to be called an engineer. In companies that make a distinction, software engineers might have broader and higher-level responsibilities, like designing or architecting new programs, features, and platforms; managing the
software development lifecycle including design, implementation, testing, and deployment; leading a team of programmers; communicating with business customers, programmers, and other engineers; considering system stability and quality; and exploring
software development methodologies.
History

British
countess and mathematician
Ada Lovelace
Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the A ...
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
Charles Babbage (; 26 December 1791 – 18 October 1871) was an English polymath. A mathematician, philosopher, inventor and mechanical engineer, Babbage originated the concept of a digital programmable computer.
Babbage is considered ...
's
analytical engine
The Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, which was a des ...
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 first person to execute a program on a functioning, modern, electronic computer was the
computer scientist
A computer scientist is a person who is trained in the academic study of computer science.
Computer scientists typically work on the theoretical side of computation, as opposed to the hardware side on which computer engineers mainly focus (al ...
Konrad Zuse in 1941.
The
ENIAC programming team, consisting of
Kay McNulty
Kathleen Rita Antonelli ( McNulty; formerly Mauchly;
12 February 1921 – 20 April 2006), known as Kay McNulty, was an Irish-born American computer programmer and one of the six original programmers of the ENIAC, one of the first general-purp ...
,
Betty Jennings,
Betty Snyder
Frances Elizabeth Holberton (March 7, 1917 – December 8, 2001) was an American computer scientist who was one of the six original programmers of the first general-purpose electronic digital computer, ENIAC. The other five ENIAC programmers wer ...
,
Marlyn Wescoff
Marlyn Wescoff Meltzer (1922 – December 7, 2008) was an American mathematician and computer programmer, and one of the six original programmers of ENIAC, the first general-purpose electronic digital computer.
Early life
Meltzer was born Mar ...
,
Fran Bilas
Frances V. Spence ( Bilas; March 2, 1922 – July 18, 2012) was one of the original programmers for the ENIAC (the first electronic digital computer). She is considered one of the first computer programmers in history.
The other five ENIAC prog ...
and
Ruth Lichterman
Ruth Teitelbaum ( Lichterman; February 1, 1924 – August 9, 1986) was one of the first computer programmers in the world. Teitelbaum was one of the original programmers for the ENIAC computer.
The other five ENIAC programmers were Jean Bar ...
, have been credited as the first regular computer programmers.
The software industry
The first company founded specifically to provide software products and services was the
Computer Usage Company
Computer Usage Company (CUC) (1955–1986), sometimes called Computer Usage Corporation, was the first independent company to market computer software.
History
CUC is generally considered the first company to develop software independently and to ...
in 1955. Before that time, computers were programmed either by customers or the few commercial computer manufacturers of the time, such as
Sperry Rand and
IBM.
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. Computer manufacturers soon started bundling
operating systems
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
,
system software and
programming environments
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools and ...
with their machines; the
IBM 1620 came with the 1620 Symbolic Programming System and
FORTRAN.
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 utility software. This resulted in increased demand for software developers for that period of time.
Nature of the work
Computer programmers write, test,
debug
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve int ...
, and maintain the detailed instructions, called
computer programs, that computers must follow to perform their functions. 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.
Programmers work in many settings, including corporate
information technology (IT) departments, big
software companies, small service firms and government entities of all sizes. Many professional programmers also work for consulting companies at client sites as
contractors.
Licensing is not typically required to work as a programmer, although
professional certification
Professional certification, trade certification, or professional designation, often called simply ''certification'' or ''qualification'', is a designation earned by a person to assure qualification to perform a job or task. Not all certifications ...
s are commonly held by programmers. 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.
Types of software
Programming editors, also known as
source code editors, are text editors that are specifically designed for programmers or developers to write the source code of an application or a program. Most of these editors include features useful for programmers, which may include color
syntax highlighting, auto indentation,
auto-complete, bracket matching,
syntax check, and allows
plug-in
Plug-in, plug in or plugin may refer to:
* Plug-in (computing) is a software component that adds a specific feature to an existing computer program.
** Audio plug-in, adds audio signal processing features
** Photoshop plugin, a piece of softwar ...
s. These features aid the users during coding,
debugging
In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics