Betty Jennings and Fran Bilas, part of the first ENIAC programming team
|Information technology, Software industry|
|Competencies||Writing and debugging computer code|
|Varies from apprenticeship to bachelor's degree|
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.
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, and performing code reviews. They might have a degree in computer science, an associate degree, 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, 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.
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 ENIAC programming team, consisting of Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman, 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 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, system software and programming environments 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, 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 certifications are commonly held by programmers. Programming is widely considered a profession (although some[who?] 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-ins. 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) and the Great Recession (2008), many U.S. programmers were left without work or with lower wages. In addition, enrollment in computer-related degrees and other STEM degrees (STEM attrition) in the US has been dropping 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. For programmers, the U.S. Bureau of Labor Statistics (BLS) Occupational Outlook predicts a decline of 7 percent from 2016 to 2026, a further decline of 9 percent from 2019 to 2029, and a decline of 10 percent from 2021 to 2031. Since computer programming can be done from anywhere in the world, companies sometimes hire programmers in countries where wages are lower. However, for software developers BLS projects for 2019 to 2029 a 22% increase in employment, from 1,469,200 to 1,785,200 jobs with a median base salary of $110,000 per year. This prediction is lower than the earlier 2010 to 2020 predicted increase of 30% for software developers. Though the distinction is somewhat ambiguous, software developers engage in a wider array of aspects of application development and are generally higher skilled than programmers, making outsourcing less of a risk. Another reason for the decline for programmers is their skills are being merged with other professions, such as developers, as employers increase the requirements for a position over time.
- Video game programmer
- List of programmers
- List of programming languages
- Software development process
- Systems architect
- Software engineering
- ^ 
- ^ a b Fuegi, J.; Francis, J. (October–December 2003). "Lovelace & Babbage and the creation of the 1843 'notes'". IEEE Annals of the History of Computing. 25 (4): 16–26. doi:10.1109/MAHC.2003.1253887.
- ^ "Memorials". Eniacprogrammers.org. Retrieved 13 March 2021.
- ^ "ABC News: First Computer Programmers Inspire Documentary". Abcnews.go.com. 4 December 2007. Retrieved 13 March 2021.
- ^ Elmer C. Kubie (Summer 1994). "Recollections of the first software company". Annals of the History of Computing. 16 (2): 65–71. doi:10.1109/85.279238. S2CID 5733812.
- ^ "IBM Archives: 1620 Data Processing System". www.ibm.com. 23 January 2003. Retrieved 17 March 2021.
- ^ Bureau, US Census. "Occupations in Information Technology". The United States Census Bureau. Retrieved 21 March 2021.
- ^ a b "Computer Programmers : Occupational Outlook Handbook: : U.S. Bureau of Labor Statistics". www.bls.gov. Retrieved 13 March 2021.
- ^ "Computer Programmer | ComputerScience.org". Get an Education the World Needs | ComputerScience.org. 13 October 2020. Retrieved 20 September 2021.
- ^ "BBC Bitesize - GCSE Computer Science - Programming software and the IDE - Revision 4". www.bbc.co.uk. Retrieved 13 March 2021.
- ^ Shankleman, Martin (1 July 2010). "'One in 10' UK graduates jobless". BBC News. Retrieved 13 March 2021.
- ^ Mann, Amar; Nunes, Tony (August 2009). "After the Dot-Com Bubble: Silicon Valley High-Tech Employment and Wages in 2001 and 2008" (PDF). Regional Report, U.S. Bureau of Labor Statistics: 1–8. Retrieved 13 March 2021.
- ^ "The STEM Crisis is a Myth". 30 August 2013.
- ^ "STEM Attrition: College Students' Paths Into and Out of STEM Fields". nces.ed.gov. 26 November 2013. Retrieved 13 March 2021.
- ^ "hp's Developer Portal | HP International Women's Week: Women in Computer Science dropping since 1980s". developers.hp.com. Retrieved 13 March 2021.
- ^ Beaubouef, Theresa; Mason, John (June 2005). "Why the high attrition rate for computer science students: some thoughts and observations". ACM SIGCSE Bulletin. 37 (2): 103–106. doi:10.1145/1083431.1083474. S2CID 207157501.
- ^ a b "Computer Programmers : Occupational Outlook Handbook: : U.S. Bureau of Labor Statistics".
- ^ "Software Developers, Quality Assurance Analysts, and Testers : Occupational Outlook Handbook : U.S. Bureau of Labor Statistics". www.bls.gov. Retrieved 29 July 2021.
- ^ "Software Developers, Quality Assurance Analysts, and Testers : Occupational Outlook Handbook: : U.S. Bureau of Labor Statistics". Archived from the original on 1 September 2013.
- ^ "The STEM Crisis is a Myth". 30 August 2013.
- ^ "Computer Programmer vs. Software Developer: Decoding the Differences". www.rasmussen.edu. Retrieved 29 July 2021.
- ^ "Comparing Two Key Careers: Software Developer vs. Programmer". online.maryville.edu. 31 July 2020. Retrieved 29 July 2021.
- Weinberg, Gerald M., The Psychology of Computer Programming, New York: Van Nostrand Reinhold, 1971
- An experiential study of the nature of programming work: Lucas, Rob. "Dreaming in Code" New Left Review 62, March–April 2010, pp. 125–132.
- Thompson, Clive (2019). Coders: The Making of a New Tribe and the Remaking of the World. Penguin Press. ISBN 978-0735220560.
- The US Department of Labor description of:
- Computer programmers
- Software developers