Programmer: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>OAbot
m Open access bot: url-access updated in citation with #oabot.
 
imported>Septagram
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{pp|small=yes}}
{{Short description|Person who writes computer software}}
{{Short description|Person who writes computer software}}
{{About|people who write computer software}}
{{About|people who write computer software}}
Line 6: Line 5:
{{original research|date=January 2022}}
{{original research|date=January 2022}}
{{cite check|date=September 2020}}
{{cite check|date=September 2020}}
{{llm|date=July 2025}}
}}
}}
{{Use dmy dates|date=September 2018}}
{{Use dmy dates|date=September 2018}}
Line 37: Line 37:
plus broader responsibilities of [[software engineering]] including architecting and designing new features and applications, targeting new platforms, managing the [[Software development process|software development lifecycle]] (design, implementation, testing, and deployment), leading a team of programmers, communicating with customers, managers and other engineers, considering system stability and quality, and exploring software development methodologies.
plus broader responsibilities of [[software engineering]] including architecting and designing new features and applications, targeting new platforms, managing the [[Software development process|software development lifecycle]] (design, implementation, testing, and deployment), leading a team of programmers, communicating with customers, managers and other engineers, considering system stability and quality, and exploring software development methodologies.


Sometimes, a software engineer is required to have a degree in software engineering, [[computer engineering]], or computer science. Some countries legally require an engineering degree to be called ''engineer''.  
Sometimes, a software engineer is required to have a degree in software engineering, [[computer engineering]], or computer science. Some countries legally require an engineering degree to be called ''engineer''.<ref name="UA210729">{{cite web|url=https://bootcamp.ce.arizona.edu/blog/programmer-vs-software-engineer-whats-the-difference|title=Programmer vs. Software Engineer: What's the Difference?|author=<!--Not stated-->|date=11 December 2020|website=ce.arizona.edu|publisher=University of Arizona|url-status=live|archive-url=https://web.archive.org/web/20210729020138/https://bootcamp.ce.arizona.edu/blog/programmer-vs-software-engineer-whats-the-difference/|archive-date=29 July 2021|access-date=29 July 2021}}</ref><ref name="Heinz210223">{{cite web|url=https://builtin.com/recruiting/software-engineer-vs-programmer|title=Software Engineer Vs. Programmer: What's the Difference?|last=Heinz|first=Kate|date=23 February 2021|website=builtin.com|publisher=Built In|archive-url=https://web.archive.org/web/20210729020310/https://builtin.com/recruiting/software-engineer-vs-programmer|archive-date=29 July 2021|access-date=29 July 2021}}</ref><ref name="Jacob200316">{{cite web|url=https://simpleprogrammer.com/differences-software-engineer-and-programmer/|title=6 Key Differences Between a Software Engineer and a Programmer|last=Jacob|first=Freya|date=16 March 2020|website=simpleprogrammer.com|publisher=The Simple Programmer|archive-url=https://web.archive.org/web/20210729020139/https://simpleprogrammer.com/differences-software-engineer-and-programmer/|archive-date=29 July 2021|access-date=29 July 2021}}</ref>
<ref name="UA210729">{{cite web|url=https://bootcamp.ce.arizona.edu/blog/programmer-vs-software-engineer-whats-the-difference|title=Programmer vs. Software Engineer: What's the Difference?|author=<!--Not stated-->|date=11 December 2020|website=ce.arizona.edu|publisher=University of Arizona|url-status=live|archive-url=https://web.archive.org/web/20210729020138/https://bootcamp.ce.arizona.edu/blog/programmer-vs-software-engineer-whats-the-difference/|archive-date=29 July 2021|access-date=29 July 2021}}</ref><ref name="Heinz210223">{{cite web|url=https://builtin.com/recruiting/software-engineer-vs-programmer|title=Software Engineer Vs. Programmer: What's the Difference?|last=Heinz|first=Kate|date=23 February 2021|website=builtin.com|publisher=Built In|url-status=|archive-url=https://web.archive.org/web/20210729020310/https://builtin.com/recruiting/software-engineer-vs-programmer|archive-date=29 July 2021|access-date=29 July 2021}}</ref><ref name="Jacob200316">{{cite web|url=https://simpleprogrammer.com/differences-software-engineer-and-programmer/|title=6 Key Differences Between a Software Engineer and a Programmer|last=Jacob|first=Freya|date=16 March 2020|website=simpleprogrammer.com|publisher=The Simple Programmer|url-status=|archive-url=https://web.archive.org/web/20210729020139/https://simpleprogrammer.com/differences-software-engineer-and-programmer/|archive-date=29 July 2021|access-date=29 July 2021}}</ref>


==History==
==History==
[[File:Ada Lovelace portrait.jpg|thumb|200px|right|[[Ada Lovelace]] is considered by many to be the first computer programmer.<ref name="Fuegi-Francis-2003"/>]]
[[File:Ada Lovelace portrait.jpg|thumb|200px|right|[[Ada Lovelace]] is considered by many to be the first computer programmer.<ref name="Fuegi-Francis-2003"/>]]
British [[count]]ess and mathematician [[Ada Lovelace]] is often considered to be the first computer programmer.
British [[count]]ess and mathematician [[Ada Lovelace]] is often considered to be the first computer programmer.
She authored an [[algorithm]], which was [[Note G|published]] in October 1842, for calculating [[Bernoulli number]]s on the [[Charles Babbage]] [[analytical engine]].<ref name="Fuegi-Francis-2003">{{Cite journal|last1=Fuegi|first1=J.|last2=Francis|first2=J.|date=October–December 2003|title=Lovelace & Babbage and the creation of the 1843 'notes'|journal=IEEE Annals of the History of Computing|volume=25|issue=4|pages=16–26|doi=10.1109/MAHC.2003.1253887}}</ref>  
She authored an [[algorithm]], which was [[Note G|published]] in October 1842, for calculating [[Bernoulli number]]s on the [[Charles Babbage]] [[analytical engine]].<ref name="Fuegi-Francis-2003">{{Cite journal|last1=Fuegi|first1=J.|last2=Francis|first2=J.|date=October–December 2003|title=Lovelace & Babbage and the creation of the 1843 'notes'|journal=IEEE Annals of the History of Computing|volume=25|issue=4|pages=16–26|doi=10.1109/MAHC.2003.1253887 |bibcode=2003IAHC...25d..16F }}</ref>  
Because the machine was not completed in her lifetime, she never experienced the algorithm in action.
Because the machine was not completed in her lifetime, she never experienced the algorithm in action.


In 1941, German [[civil engineer]] [[Konrad Zuse]] was the first person to execute a program on a working, program-controlled, electronic computer.<ref name="Zuse-IEEE">{{cite web|url=https://www.computer.org/profiles/konrad-zuse|title=Konrad Zuse|author=<!--Not stated-->|date=2 April 2018|website=computer.org|publisher=IEEE|access-date=4 February 2023|url-status=live|archive-url=https://web.archive.org/web/20220926131516/https://www.computer.org/profiles/konrad-zuse|archive-date=26 September 2022}}</ref> From 1943 to 1945, per [[computer scientist]] Wolfgang K. Giloi and [[artificial intelligence|AI]] professor [[Raúl Rojas]] et al., Zuse created the first, [[high-level programming language]], [[Plankalkül]].<ref name="Giloi1997">{{cite journal|last1=Giloi|first1=Wolfgang K.|date=1997|title=Konrad Zuse's Plankalkül: The First High-Level 'non von Neumann' Programming Language|url=http://doi.ieeecomputersociety.org/10.1109/85.586068|journal=IEEE Annals of the History of Computing|volume=19|issue=2|pages=17–24|doi=10.1109/85.586068|access-date=|archive-date=23 March 2023|archive-url=https://web.archive.org/web/20230323163140/https://www.computer.org/csdl/magazine/an/1997/02/man1997020017/13rRUIJcWqp|url-status=live|url-access=subscription}}</ref><ref name="Rojas2000">{{cite web|url=https://www.researchgate.net/publication/250809396|title=Plankalkül: The First High-Level Programming Language and its Implementation|last1=Rojas|first1=Raúl|last2=Göktekin|first2=Cüneyt|last3=Friedland|first3=Gerald|last4=Krüger|first4=Mike|date=February 2000|website=ResearchGate |access-date=4 February 2023|url-status=live|archive-url=https://web.archive.org/web/20220612225444/https://www.researchgate.net/publication/250809396_Plankalkul_The_First_High-Level_Programming_Language_and_its_Implementation|archive-date=12 June 2022}}</ref>
In 1941, German [[civil engineer]] [[Konrad Zuse]] was the first person to execute a program on a working, program-controlled, electronic computer.<ref name="Zuse-IEEE">{{cite web|url=https://www.computer.org/profiles/konrad-zuse|title=Konrad Zuse|author=<!--Not stated-->|date=2 April 2018|website=computer.org|publisher=IEEE|access-date=4 February 2023|url-status=live|archive-url=https://web.archive.org/web/20220926131516/https://www.computer.org/profiles/konrad-zuse|archive-date=26 September 2022}}</ref> From 1943 to 1945, per [[computer scientist]] Wolfgang K. Giloi and [[artificial intelligence|AI]] professor [[Raúl Rojas]] et al., Zuse created the first, [[high-level programming language]], [[Plankalkül]].<ref name="Giloi1997">{{cite journal|last1=Giloi|first1=Wolfgang K.|date=1997|title=Konrad Zuse's Plankalkül: The First High-Level 'non von Neumann' Programming Language|url=http://doi.ieeecomputersociety.org/10.1109/85.586068|journal=IEEE Annals of the History of Computing|volume=19|issue=2|pages=17–24|doi=10.1109/85.586068|archive-date=23 March 2023|archive-url=https://web.archive.org/web/20230323163140/https://www.computer.org/csdl/magazine/an/1997/02/man1997020017/13rRUIJcWqp|url-status=live|url-access=subscription}}</ref><ref name="Rojas2000">{{cite web|url=https://www.researchgate.net/publication/250809396|title=Plankalkül: The First High-Level Programming Language and its Implementation|last1=Rojas|first1=Raúl|last2=Göktekin|first2=Cüneyt|last3=Friedland|first3=Gerald|last4=Krüger|first4=Mike|date=February 2000|website=ResearchGate |access-date=4 February 2023|url-status=live|archive-url=https://web.archive.org/web/20220612225444/https://www.researchgate.net/publication/250809396_Plankalkul_The_First_High-Level_Programming_Language_and_its_Implementation|archive-date=12 June 2022}}</ref>


Members of the 1945 [[ENIAC]] programming team of [[Kathleen Antonelli|Kay McNulty]], [[Jean Bartik|Betty Jennings]], [[Betty Holberton|Betty Snyder]], [[Marlyn Meltzer|Marlyn Wescoff]], [[Frances Spence|Fran Bilas]] and [[Ruth Teitelbaum|Ruth Lichterman]] have since been credited as the first professional computer programmers.<ref name="Memorials">{{cite web|url=http://eniacprogrammers.org/eniac-programmers-project/memorials/|title=Memorials|author=<!--Not stated-->|date=16 May 2014|website=ENIAC Programmers Project |publisher=First Byte Productions|access-date=13 March 2021|archive-date=1 April 2018|archive-url=https://web.archive.org/web/20180401075605/http://eniacprogrammers.org/eniac-programmers-project/memorials/|url-status=live}}</ref><ref name="ABC071204">{{cite web|url=https://abcnews.go.com/Technology/story?id=3951187&page=1|title= First Computer Programmers Inspire Documentary|last=Donaldson James|first=Susan|date=4 December 2007 |publisher=ABC News|access-date=13 March 2021|url-status=live|archive-url=https://web.archive.org/web/20130216054335/https://abcnews.go.com/Technology/story?id=3951187|archive-date=16 February 2013}}</ref>
Members of the 1945 [[ENIAC]] programming team of [[Kathleen Antonelli|Kay McNulty]], [[Jean Bartik|Betty Jennings]], [[Betty Holberton|Betty Snyder]], [[Marlyn Meltzer|Marlyn Wescoff]], [[Frances Spence|Fran Bilas]] and [[Ruth Teitelbaum|Ruth Lichterman]] have since been credited as the first professional computer programmers.<ref name="Memorials">{{cite web|url=http://eniacprogrammers.org/eniac-programmers-project/memorials/|title=Memorials|author=<!--Not stated-->|date=16 May 2014|website=ENIAC Programmers Project |publisher=First Byte Productions|access-date=13 March 2021|archive-date=1 April 2018|archive-url=https://web.archive.org/web/20180401075605/http://eniacprogrammers.org/eniac-programmers-project/memorials/|url-status=live}}</ref><ref name="ABC071204">{{cite web|url=https://abcnews.go.com/Technology/story?id=3951187&page=1|title= First Computer Programmers Inspire Documentary|last=Donaldson James|first=Susan|date=4 December 2007 |publisher=ABC News|access-date=13 March 2021|url-status=live|archive-url=https://web.archive.org/web/20130216054335/https://abcnews.go.com/Technology/story?id=3951187|archive-date=16 February 2013}}</ref>
Line 59: Line 58:


==Nature of the work==
==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&nbsp;— advanced computing technologies and sophisticated new languages and programming tools&nbsp;— 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.<ref name="bls-ooh">{{cite web|url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm|title=Computer Programmers : Occupational Outlook Handbook|publisher= U.S. Bureau of Labor Statistics |access-date=13 March 2021|archive-date=3 May 2019|archive-url=https://web.archive.org/web/20190503144645/https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm|url-status=live}}</ref>
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&nbsp;— advanced computing technologies and sophisticated new languages and programming tools&nbsp;— 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.<ref name="bls-ooh">{{cite web|url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm|title=Computer Programmers: Occupational Outlook Handbook|publisher= U.S. Bureau of Labor Statistics |access-date=13 March 2021|archive-date=3 May 2019|archive-url=https://web.archive.org/web/20190503144645/https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm|url-status=live}}</ref>


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 [[Independent contractor|contractors]]. [[License|Licensing]] is not typically required to work as a programmer, although [[professional certification]]s are commonly held by programmers.<ref name="bls-ooh"/> Programming is considered a [[profession]].<ref name="Coursera">{{cite web|url=https://www.coursera.org/articles/how-to-become-a-computer-programmer|title=How to Become a Computer Programmer|author=<!--Not stated-->|date=30 September 2022 |publisher=Coursera Inc.|url-status=live|archive-url=https://web.archive.org/web/20221007024124/https://www.coursera.org/articles/how-to-become-a-computer-programmer|archive-date=7 October 2022|access-date=2 February 2023|quote=Computer programmers often take courses and seek certifications to enter the field and stay current in their skills in this ever-evolving profession.}}</ref><ref name="Indeed">{{cite web|url=https://www.indeed.com/career-advice/finding-a-job/types-of-programming-jobs|title=11 Types of Programming Jobs (With Duties and Salaries)|author=<!--Not stated-->|date=17 October 2022 |publisher=Indeed|access-date=2 February 2023 |archive-date=2 February 2023|archive-url=https://web.archive.org/web/20230202195236/https://www.indeed.com/career-advice/finding-a-job/types-of-programming-jobs|url-status=live}}</ref><ref name="Sartore221222">{{cite web|url=https://www.computerscience.org/careers/computer-programmer/|title=What Is a Computer Programmer?|last=Sartore|first=Melissa|date=22 December 2022|website=computerscience.org|url-status=live|archive-url=https://web.archive.org/web/20230130040334/https://www.computerscience.org/careers/computer-programmer/|archive-date=30 January 2023|access-date=2 February 2023|quote=Explore this profession and discover how you can thrive in a computer programming career.}}</ref>
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 [[Independent contractor|contractors]]. [[License|Licensing]] is not typically required to work as a programmer, although [[professional certification]]s are commonly held by programmers.<ref name="bls-ooh"/> Programming is considered a [[profession]].<ref name="Coursera">{{cite web|url=https://www.coursera.org/articles/how-to-become-a-computer-programmer|title=How to Become a Computer Programmer|author=<!--Not stated-->|date=30 September 2022 |publisher=Coursera Inc.|url-status=live|archive-url=https://web.archive.org/web/20221007024124/https://www.coursera.org/articles/how-to-become-a-computer-programmer|archive-date=7 October 2022|access-date=2 February 2023|quote=Computer programmers often take courses and seek certifications to enter the field and stay current in their skills in this ever-evolving profession.}}</ref><ref name="Indeed">{{cite web|url=https://www.indeed.com/career-advice/finding-a-job/types-of-programming-jobs|title=11 Types of Programming Jobs (With Duties and Salaries)|author=<!--Not stated-->|date=17 October 2022 |publisher=Indeed|access-date=2 February 2023 |archive-date=2 February 2023|archive-url=https://web.archive.org/web/20230202195236/https://www.indeed.com/career-advice/finding-a-job/types-of-programming-jobs|url-status=live}}</ref><ref name="Sartore221222">{{cite web|url=https://www.computerscience.org/careers/computer-programmer/|title=What Is a Computer Programmer?|last=Sartore|first=Melissa|date=22 December 2022|website=computerscience.org|url-status=live|archive-url=https://web.archive.org/web/20230130040334/https://www.computerscience.org/careers/computer-programmer/|archive-date=30 January 2023|access-date=2 February 2023|quote=Explore this profession and discover how you can thrive in a computer programming career.}}</ref>


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 [[Flight training|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.<ref>{{Cite web |title=Computer Programmers |url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm?utm_source=chatgpt.com#tab-2 |access-date=2025-02-15 |website=Bureau of Labor Statistics |language=en-us}}</ref>
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 [[Flight training|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.<ref>{{Cite web |title=Computer Programmers |url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm?utm_source=chatgpt.com#tab-2 |access-date=2025-02-15 |website=Bureau of Labor Statistics |language=en-us}}</ref>


===Types of software===
===Types of software===
Programming editors, also known as [[source code editor]]s, 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 checker|syntax check]], and allows [[plug-in (computing)|plug-in]]s. These features aid the users during coding, [[debugging]] and testing.<ref>{{Cite web|url=https://www.bbc.co.uk/education/guides/zgmpr82/revision/4|title=BBC Bitesize - GCSE Computer Science - Programming software and the IDE - Revision 4|website=www.bbc.co.uk|language=en-GB|access-date=13 March 2021|archive-date=23 September 2017|archive-url=https://web.archive.org/web/20170923141830/http://www.bbc.co.uk/education/guides/zgmpr82/revision/4|url-status=live}}</ref>
Programming editors, also known as [[source code editor]]s, 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 checker|syntax check]], and allows [[plug-in (computing)|plug-in]]s. These features aid the users during coding, [[debugging]] and testing.<ref>{{Cite web|url=https://www.bbc.co.uk/education/guides/zgmpr82/revision/4|title=BBC Bitesize - GCSE Computer Science - Programming software and the IDE - Revision 4|website=www.bbc.co.uk|language=en-GB|access-date=13 March 2021|archive-date=23 September 2017|archive-url=https://web.archive.org/web/20170923141830/http://www.bbc.co.uk/education/guides/zgmpr82/revision/4}}</ref>


==Globalization==
==Globalization==
Line 74: Line 73:


===Market changes in the US===
===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.<ref name="bls-dotcom-2009">{{cite journal|last1=Mann|first1=Amar|last2=Nunes|first2=Tony|title=After the Dot-Com Bubble: Silicon Valley High-Tech Employment and Wages in 2001 and 2008|journal=Regional Report, U.S. Bureau of Labor Statistics|date=August 2009|pages=1–8|url=https://www.bls.gov/opub/btn/archive/after-the-dot-com-bubble-silicon-valley-high-tech-employment-and-wages-in-2001-and-2008.pdf|access-date=13 March 2021|archive-date=18 March 2021|archive-url=https://web.archive.org/web/20210318063742/https://www.bls.gov/opub/btn/archive/after-the-dot-com-bubble-silicon-valley-high-tech-employment-and-wages-in-2001-and-2008.pdf|url-status=live}}</ref><ref name="Charette2013">{{Cite web|url=https://spectrum.ieee.org/the-stem-crisis-is-a-myth|url-access=subscription|title=The STEM Crisis is a Myth|last=Charette|first=Robert N.|date=30 August 2013|website=[[IEEE]]|publisher=IEEE|type=opinion|access-date=7 August 2021|archive-date=7 August 2021|archive-url=https://web.archive.org/web/20210807061059/https://spectrum.ieee.org/the-stem-crisis-is-a-myth|url-status=live}}</ref><ref name="auto1">{{cite web | url=https://spectrum.ieee.org/electrical-engineer-salary | title=Inflation-Adjusted Income for U.S. Engineers Drops - IEEE Spectrum }}</ref> In addition, enrollment in computer-related degrees and other STEM degrees (STEM attrition)<ref>{{Cite web|url=https://nces.ed.gov/pubsearch/pubsinfo.asp?pubid=2014001rev|title=STEM Attrition: College Students' Paths Into and Out of STEM Fields|date=26 November 2013|website=nces.ed.gov|access-date=13 March 2021|archive-date=18 March 2021|archive-url=https://web.archive.org/web/20210318064654/https://nces.ed.gov/pubsearch/pubsinfo.asp?pubid=2014001rev|url-status=live}}</ref> in the US has been dropping for years, especially for women,<ref>{{Cite web|url=https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980s|title=hp's Developer Portal &#124; HP International Women's Week: Women in Computer Science dropping since 1980s|website=developers.hp.com|access-date=13 March 2021|archive-date=26 February 2021|archive-url=https://web.archive.org/web/20210226000310/https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980s|url-status=live}}</ref><ref name="auto1"/> which, according to Beaubouef and Mason,<ref>{{cite journal|last1=Beaubouef|first1=Theresa|last2=Mason|first2=John|title=Why the high attrition rate for computer science students: some thoughts and observations|journal=ACM SIGCSE Bulletin|date=June 2005|volume=37|issue=2|pages=103–106|doi=10.1145/1083431.1083474|s2cid=207157501}}</ref> 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 originally predicted a growth for programmers of 12 percent from 2010 to 2020<ref>{{cite web|url=http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm| archive-url=https://web.archive.org/web/20120915165836/http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm| archive-date=15 September 2012| title=Computer Programmers : Occupational Outlook Handbook : U.S. Bureau of Labor Statistics}}</ref> and thereafter a decline of -7 percent from 2016 to 2026, a further decline of -9 percent from 2019 to 2029, a decline of -10 percent from 2021 to 2031.<ref name="bls-ooh"/> and then a decline of -11 percent from 2022 to 2032.<ref>{{cite web | url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm | title=Computer Programmers : Occupational Outlook Handbook|website= U.S. Bureau of Labor Statistics }}</ref> Since computer programming can be done from anywhere in the world, companies sometimes hire programmers in countries where wages are lower.<ref name="bls-ooh"/> If domestic demand has increased, it is mainly to replace existing programmers who have retired or switched occupations.<ref name="auto"> {{Cite web |title=Software Developers, Quality Assurance Analysts, and Testers |url=https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm |access-date=2025-01-16 |website=Bureau of Labor Statistics |language=en-us}} </ref> However, for software developers BLS projects current growth at 17%<ref name="auto"/> that is down from their prediction from 2019 to 2029 of 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.<ref>{{cite web|url=https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|title=Software Developers, Quality Assurance Analysts, and Testers : Occupational Outlook Handbook : U.S. Bureau of Labor Statistics|website=www.bls.gov|access-date=29 July 2021|archive-date=14 May 2019|archive-url=https://web.archive.org/web/20190514101520/https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|url-status=live}}</ref><ref>{{Cite web|url=http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|archive-url = https://web.archive.org/web/20130901135809/http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|archive-date = 1 September 2013|title = Software Developers : Occupational Outlook Handbook|website= U.S. Bureau of Labor Statistics |date=July 18, 2012 }}</ref><ref name="Charette2013"/> 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.<ref>{{cite web|url=https://www.rasmussen.edu/degrees/technology/blog/computer-programmer-vs-software-developer/ |first1=Ashley |last1=Brooks |date=2019 |title=Computer Programmer vs. Software Developer: Decoding the Differences|website=Rasmussen University |access-date=29 July 2021|archive-date=30 July 2021|archive-url=https://web.archive.org/web/20210730055352/https://www.rasmussen.edu/degrees/technology/blog/computer-programmer-vs-software-developer/|url-status=live}}</ref><ref>{{cite web|url=https://online.maryville.edu/blog/software-developer-vs-programmer/|title=Comparing Two Key Careers: Software Developer vs. Programmer|website=online.maryville.edu|date=31 July 2020|access-date=29 July 2021|archive-date=30 July 2021|archive-url=https://web.archive.org/web/20210730055352/https://online.maryville.edu/blog/software-developer-vs-programmer/|url-status=live}}</ref> 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 (i.e. [[Solution stack|Full-stack developer]]). Then there is the additional concern that recent advances in [[artificial intelligence]] might drastically<ref>{{cite news | last=Van Dam | first=Andrew | title=More than a quarter of computer-programming jobs just vanished. What happened? | newspaper=The Washington Post | date=2025-03-14 | url=https://www.washingtonpost.com/business/2025/03/14/programming-jobs-lost-artificial-intelligence/ | archive-url=https://web.archive.org/web/20250314101535/https://www.washingtonpost.com/business/2025/03/14/programming-jobs-lost-artificial-intelligence/ | archive-date=2025-03-14 | url-status=live }}</ref><ref>{{cite web | last=Tan | first=Kwan Wei Kevin | title=Anthropic's CEO says that in 3 to 6 months, AI will be writing 90% of the code software developers were in charge of | website=Business Insider | date=2025-03-14 | url=https://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3 }}</ref> impact the demand for future generations of Software professions.<ref>{{Cite web|date=2023-04-06|title=Software engineer jobs in danger due to ChatGPT-like tools? Here's what Google CEO Sundar Pichai has to say|url=https://www.businesstoday.in/technology/news/story/software-engineer-jobs-in-danger-due-to-chatgpt-like-tools-heres-what-google-ceo-sundar-pichai-has-to-say-376341-2023-04-06|access-date=2023-05-12|website=Business Today|language=en}}</ref><ref>{{Cite web|date=2023-01-25|title=ChatGPT could make these jobs obsolete|url=https://nypost.com/2023/01/25/chat-gpt-could-make-these-jobs-obsolete/|access-date=2023-05-12|language=en-US}}</ref><ref>{{Cite web|last=Kay|first=Grace|title=Software engineers are panicking about being replaced by AI|url=https://www.businessinsider.com/software-engineers-tech-panicking-golden-age-over-chatgpt-ai-blind-2023-4|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|last=Fowler|first=Gary|title=Council Post: How Will ChatGPT Affect Jobs?|url=https://www.forbes.com/sites/forbesbusinessdevelopmentcouncil/2023/03/16/how-will-chatgpt-affect-jobs/|access-date=2023-05-12|website=Forbes|language=en}}</ref><ref>{{Cite web|last=Ito|first=Aki|title=ChatGPT spells the end of coding as we know it|url=https://www.businessinsider.com/chatgpt-ai-technology-end-of-coding-software-developers-jobs-2023-4|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|first1=Jacob |last1=Zinkula |first2=Aaron |last2=Mok |title=ChatGPT may be coming for our jobs. Here are the 10 roles that AI is most likely to replace.|url=https://www.businessinsider.com/chatgpt-jobs-at-risk-replacement-artificial-intelligence-ai-labor-trends-2023-02|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|last=Cohen|first=Mikaela|title=These are the tech jobs most threatened by ChatGPT and A.I.|url=https://www.cnbc.com/2023/04/15/these-are-the-tech-jobs-most-threatened-by-chatgpt-and-ai.html|access-date=2023-05-12|website=CNBC|date=15 April 2023 |language=en}}</ref>
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.<ref name="bls-dotcom-2009">{{cite journal|last1=Mann|first1=Amar|last2=Nunes|first2=Tony|title=After the Dot-Com Bubble: Silicon Valley High-Tech Employment and Wages in 2001 and 2008|journal=Regional Report, U.S. Bureau of Labor Statistics|date=August 2009|pages=1–8|url=https://www.bls.gov/opub/btn/archive/after-the-dot-com-bubble-silicon-valley-high-tech-employment-and-wages-in-2001-and-2008.pdf|access-date=13 March 2021|archive-date=18 March 2021|archive-url=https://web.archive.org/web/20210318063742/https://www.bls.gov/opub/btn/archive/after-the-dot-com-bubble-silicon-valley-high-tech-employment-and-wages-in-2001-and-2008.pdf|url-status=live}}</ref><ref name="Charette2013">{{Cite web|url=https://spectrum.ieee.org/the-stem-crisis-is-a-myth|url-access=subscription|title=The STEM Crisis is a Myth|last=Charette|first=Robert N.|date=30 August 2013|website=[[IEEE]]|publisher=IEEE|type=opinion|access-date=7 August 2021|archive-date=7 August 2021|archive-url=https://web.archive.org/web/20210807061059/https://spectrum.ieee.org/the-stem-crisis-is-a-myth|url-status=live}}</ref><ref name="auto1">{{cite web | url=https://spectrum.ieee.org/electrical-engineer-salary | title=Inflation-Adjusted Income for U.S. Engineers Drops - IEEE Spectrum }}</ref> In addition, enrollment in computer-related degrees and other STEM degrees (STEM attrition)<ref>{{Cite web|url=https://nces.ed.gov/pubsearch/pubsinfo.asp?pubid=2014001rev|title=STEM Attrition: College Students' Paths Into and Out of STEM Fields|date=26 November 2013|website=nces.ed.gov|access-date=13 March 2021|archive-date=18 March 2021|archive-url=https://web.archive.org/web/20210318064654/https://nces.ed.gov/pubsearch/pubsinfo.asp?pubid=2014001rev|url-status=live}}</ref> in the US has been dropping for years, especially for women,<ref>{{Cite web|url=https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980s|title=hp's Developer Portal &#124; HP International Women's Week: Women in Computer Science dropping since 1980s|website=developers.hp.com|access-date=13 March 2021|archive-date=26 February 2021|archive-url=https://web.archive.org/web/20210226000310/https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980s|url-status=live}}</ref><ref name="auto1"/> which, according to Beaubouef and Mason,<ref>{{cite journal|last1=Beaubouef|first1=Theresa|last2=Mason|first2=John|title=Why the high attrition rate for computer science students: some thoughts and observations|journal=ACM SIGCSE Bulletin|date=June 2005|volume=37|issue=2|pages=103–106|doi=10.1145/1083431.1083474|s2cid=207157501}}</ref> 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 originally predicted a growth for programmers of 12 percent from 2010 to 2020<ref>{{cite web|url=http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm| archive-url=https://web.archive.org/web/20120915165836/http://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm| archive-date=15 September 2012| title=Computer Programmers : Occupational Outlook Handbook: U.S. Bureau of Labor Statistics}}</ref> and thereafter a decline of -7 percent from 2016 to 2026, a further decline of -9 percent from 2019 to 2029, a decline of -10 percent from 2021 to 2031.<ref name="bls-ooh"/> and then a decline of -11 percent from 2022 to 2032.<ref>{{cite web | url=https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm | title=Computer Programmers: Occupational Outlook Handbook|website= U.S. Bureau of Labor Statistics }}</ref> The current prediction for 2024 to 2034 is a decline of -6 percent. Since computer programming can be done from anywhere in the world, companies sometimes hire programmers in countries where wages are lower.<ref name="bls-ooh"/> If domestic demand has increased, it is mainly to replace existing programmers who have retired or switched occupations.<ref name="auto"> {{Cite web |title=Software Developers, Quality Assurance Analysts, and Testers |url=https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm |access-date=2025-01-16 |website=Bureau of Labor Statistics |language=en-us}} </ref> However, for software developers BLS projects current growth at 15%<ref name="auto"/> that is down from their prediction from 2019 to 2029 of 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.<ref>{{cite web|url=https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|title=Software Developers, Quality Assurance Analysts, and Testers : Occupational Outlook Handbook: U.S. Bureau of Labor Statistics|website=www.bls.gov|access-date=29 July 2021|archive-date=14 May 2019|archive-url=https://web.archive.org/web/20190514101520/https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|url-status=live}}</ref><ref>{{Cite web|url=http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|archive-url = https://web.archive.org/web/20130901135809/http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm|archive-date = 1 September 2013|title = Software Developers: Occupational Outlook Handbook|website= U.S. Bureau of Labor Statistics |date=July 18, 2012 }}</ref><ref name="Charette2013"/> 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.<ref>{{cite web|url=https://www.rasmussen.edu/degrees/technology/blog/computer-programmer-vs-software-developer/ |first1=Ashley |last1=Brooks |date=2019 |title=Computer Programmer vs. Software Developer: Decoding the Differences|website=Rasmussen University |access-date=29 July 2021|archive-date=30 July 2021|archive-url=https://web.archive.org/web/20210730055352/https://www.rasmussen.edu/degrees/technology/blog/computer-programmer-vs-software-developer/|url-status=live}}</ref><ref>{{cite web|url=https://online.maryville.edu/blog/software-developer-vs-programmer/|title=Comparing Two Key Careers: Software Developer vs. Programmer|website=online.maryville.edu|date=31 July 2020|access-date=29 July 2021|archive-date=30 July 2021|archive-url=https://web.archive.org/web/20210730055352/https://online.maryville.edu/blog/software-developer-vs-programmer/|url-status=live}}</ref> 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 (i.e. [[Solution stack|Full-stack developer]]). Then there is the additional concern that recent advances in [[artificial intelligence]] might drastically<ref>{{cite news | last=Van Dam | first=Andrew | title=More than a quarter of computer-programming jobs just vanished. What happened? | newspaper=The Washington Post | date=2025-03-14 | url=https://www.washingtonpost.com/business/2025/03/14/programming-jobs-lost-artificial-intelligence/ | archive-url=https://web.archive.org/web/20250314101535/https://www.washingtonpost.com/business/2025/03/14/programming-jobs-lost-artificial-intelligence/ | archive-date=2025-03-14 | url-status=live }}</ref><ref>{{cite web | last=Tan | first=Kwan Wei Kevin | title=Anthropic's CEO says that in 3 to 6 months, AI will be writing 90% of the code software developers were in charge of | website=Business Insider | date=2025-03-14 | url=https://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3 }}</ref> impact the demand for future generations of Software professions.<ref>{{Cite web|date=2023-04-06|title=Software engineer jobs in danger due to ChatGPT-like tools? Here's what Google CEO Sundar Pichai has to say|url=https://www.businesstoday.in/technology/news/story/software-engineer-jobs-in-danger-due-to-chatgpt-like-tools-heres-what-google-ceo-sundar-pichai-has-to-say-376341-2023-04-06|access-date=2023-05-12|website=Business Today|language=en}}</ref><ref>{{Cite web|date=2023-01-25|title=ChatGPT could make these jobs obsolete|url=https://nypost.com/2023/01/25/chat-gpt-could-make-these-jobs-obsolete/|access-date=2023-05-12|language=en-US}}</ref><ref>{{Cite web|last=Kay|first=Grace|title=Software engineers are panicking about being replaced by AI|url=https://www.businessinsider.com/software-engineers-tech-panicking-golden-age-over-chatgpt-ai-blind-2023-4|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|last=Fowler|first=Gary|title=Council Post: How Will ChatGPT Affect Jobs?|url=https://www.forbes.com/sites/forbesbusinessdevelopmentcouncil/2023/03/16/how-will-chatgpt-affect-jobs/|access-date=2023-05-12|website=Forbes|language=en}}</ref><ref>{{Cite web|last=Ito|first=Aki|title=ChatGPT spells the end of coding as we know it|url=https://www.businessinsider.com/chatgpt-ai-technology-end-of-coding-software-developers-jobs-2023-4|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|first1=Jacob |last1=Zinkula |first2=Aaron |last2=Mok |title=ChatGPT may be coming for our jobs. Here are the 10 roles that AI is most likely to replace.|url=https://www.businessinsider.com/chatgpt-jobs-at-risk-replacement-artificial-intelligence-ai-labor-trends-2023-02|access-date=2023-05-12|website=Business Insider|language=en-US}}</ref><ref>{{Cite web|last=Cohen|first=Mikaela|title=These are the tech jobs most threatened by ChatGPT and A.I.|url=https://www.cnbc.com/2023/04/15/these-are-the-tech-jobs-most-threatened-by-chatgpt-and-ai.html|access-date=2023-05-12|website=CNBC|date=15 April 2023 |language=en}}</ref>


===Market changes in Japan===
===Market changes in Japan===
As of 2024 in [[Japan]], the demand for programmers is increasing rapidly due mainly to the [[Aging of Japan|aging demographics]] of their workforce and their low birth rate not being sufficient for replacement has led to more use of [[AI]] to help fill the gap.<ref>{{cite web | url=https://japan-dev.com/blog/programming-in-japan | title=Programming in Japan: What's It Really Like? }}</ref><ref>{{cite web | url=https://www.jetro.go.jp/en/invest/insights/japan-insight/ai-utilization.html | title="AI Utilization": Japan′s Unique Position to Become a World Leader &#124; Japan Insight - Insights - Investing in Japan - Japan External Trade Organization | date=2025 }}</ref> On the other hand, despite the fact that there are more than 1.2 million programmers in Japan as of 2020, more than 40% of Japanese companies say they do not have enough skilled and qualified IT personnel, including programmers; by 2030, the number of programmers will exceed 1.6 million, but about 800 000 people, including programmers, a shortage of engineers is expected to occur.<ref>{{Cite web |title=2030年に不足する79万人のIT人材は、 技術者・専門家だけとは限らない DX推進に欠かせない「3種の人財」の重要性 {{!}} ログミーBusiness |url=https://logmi.jp/brandtopics/330138 |access-date=2024-11-13 |website=logmi.jp |language=ja}}</ref><ref>{{Cite web |last=kotamat |date=2022-09-15 |title=ITエンジニアが「人手不足」な理由 – 日本のITエンジニア人口と今後の不足見通し - 人材紹介マガジン |url=https://media.agent-bank.com/categories/strategy/itengineer |access-date=2024-11-13 |website=ITエンジニアが「人手不足」な理由 – 日本のITエンジニア人口と今後の不足見通し - 人材紹介マガジン |language=ja}}</ref>
As of 2024 in [[Japan]], the demand for programmers is increasing rapidly due mainly to the [[Aging of Japan|aging demographics]] of their workforce and their low birth rate not being sufficient for replacement has led to more use of [[AI]] to help fill the gap.<ref>{{cite web | url=https://japan-dev.com/blog/programming-in-japan | title=Programming in Japan: What's It Really Like? }}</ref><ref>{{cite web | url=https://www.jetro.go.jp/en/invest/insights/japan-insight/ai-utilization.html | title="AI Utilization": Japan′s Unique Position to Become a World Leader &#124; Japan Insight - Insights - Investing in Japan - Japan External Trade Organization | date=2025 }}</ref> On the other hand, despite the fact that there are more than 1.2 million programmers in Japan as of 2020, more than 40% of Japanese companies say they do not have enough skilled and qualified IT personnel, including programmers; by 2030, the number of programmers will exceed 1.6 million, but about 800,000 people, including programmers, a shortage of engineers is expected to occur.<ref>{{Cite web |title=2030年に不足する79万人のIT人材は、 技術者・専門家だけとは限らない DX推進に欠かせない「3種の人財」の重要性 {{!}} ログミーBusiness |url=https://logmi.jp/brandtopics/330138 |access-date=2024-11-13 |website=logmi.jp |language=ja}}</ref><ref>{{Cite web |last=kotamat |date=2022-09-15 |title=ITエンジニアが「人手不足」な理由 – 日本のITエンジニア人口と今後の不足見通し - 人材紹介マガジン |url=https://media.agent-bank.com/categories/strategy/itengineer |access-date=2024-11-13 |website=ITエンジニアが「人手不足」な理由 – 日本のITエンジニア人口と今後の不足見通し - 人材紹介マガジン |language=ja}}</ref>
 
== Programming education ==
{{See also|List of educational software#Computer science|l1=Programming educational software|List of free and open-source software packages#Programming language support|l2=List of open-source programming resources|List of free and open-source software packages#Cypherpunk software|l3=List of open-source cryptography and hacking tools|List of programming languages|Comparison of integrated development environments|Comparison of online source code playgrounds|List of open source code libraries|List of mathematical art software|Comparison of source-code-hosting facilities|Stack Overflow|List of computer books|List of computer magazines|List of software programming journals|List of programmers|Hackathon|Hackathon#Datathon|l16=Datathon|Competitive programming|Game jam}}
 
[[File:GitHub Codespaces side by side terminal.webp|thumb|[[GitHub Codespaces]] is an [[online integrated development environment]] that requires minimal setup to get started programming.]]
 
Programming education involves the teaching and learning of [[computer programming]] concepts, [[Programming language|languages]], and [[Coding best practices|practices]]. It is offered through various formats, including formal [[Bachelor of Computer Science|computer science degree programs]], [[Vocational education|vocational training]], [[Career and technical education|career and technical education centers]], [[coding bootcamp]]s, [[libraries]],<ref>{{cite web | title=Hour of Code: How We Did It, What We Learned &#124; Programming Librarian | url=https://programminglibrarian.org/articles/hour-code-how-we-did-it-what-we-learned }}</ref> [[List of online educational resources|online courses]], and [[Autodidacticism|self-directed learning]]. Educational initiatives often focus on [[Problem solving#Computer science|problem-solving]], [[computational thinking]], [[logical thinking]], and the development of [[Algorithm|algorithms]]. In [[Primary education|primary]] and [[secondary education]], programming is increasingly integrated into [[computer literacy]] curricula through initiatives such as [[Hour of Code]], [[Code Club]], [[Learn to Code]], and by getting [[computers in the classroom]].<ref>{{Cite web | title=Computer Science Club leads 'Hour of Code' activities {{!}} Fredonia.edu | url=https://www.fredonia.edu/news/articles/computer-science-club-leads-%E2%80%98hour-code%E2%80%99-activities | access-date=2025-08-11 | website=www.fredonia.edu}}</ref><ref>{{cite web | title=Computers in the Classroom &#124; EBSCO Research Starters | url=https://www.ebsco.com/research-starters/computer-science/computers-classroom }}</ref> At the [[higher education]] level, programming instruction may include coursework in [[software engineering]], [[data structures]], [[debugging]], [[software design]], and specialized domains such as [[game development]], [[artificial intelligence]], [[cryptography]], or [[data science]].  Numerous platforms and resources like [[List of chatbots|AI chat bots]], [[List of educational software#Computer science|educational programming software]], and [[online integrated development environment]]s have expanded access to programming education.<ref>{{cite journal | last1=Ou | first1=Q. | last2=Liang | first2=W. | last3=He | first3=Z. | last4=Liu | first4=X. | last5=Yang | first5=R. | last6=Wu | first6=X. | title=Investigation and analysis of the current situation of programming education in primary and secondary schools | journal=Heliyon | date=2023 | volume=9 | issue=4 | article-number=e15530 | doi=10.1016/j.heliyon.2023.e15530 | doi-access=free | pmid=37151627 | pmc=10161691 | bibcode=2023Heliy...915530O }}</ref><ref>{{cite web | title=GitHub educator: Our biggest mistake, and our opportunity | website=[[ZDNet]] | url=https://www.zdnet.com/education/github-educator-mistakes-opportunities/ }}</ref><ref>{{cite web | title=The best AI for coding in 2025 (Including a new winner - and what not to use) | website=[[ZDNet]] | url=https://www.zdnet.com/article/the-best-ai-for-coding-in-2025-including-a-new-winner-and-what-not-to-use/ }}</ref>


==See also==
==See also==
Line 83: Line 89:
* [[List of programmers]]
* [[List of programmers]]
* [[List of programming languages]]
* [[List of programming languages]]
* [[Lists of programming software development tools]]
* [[Software development process]]
* [[Software development process]]
* [[Software engineering]]
* [[Software engineering]]
* [[Systems architect]]
* [[Systems architect]]
* [[Video game programmer]]
* [[Video game programmer]]
* [[996 working hour system]]
* [[:wikibooks:Category:Subject:Computer programming|Wikibooks computer programming resources]]
{{Clear}}
{{Clear}}


Line 94: Line 103:
==Further reading==
==Further reading==
* [[Gerald Weinberg|Weinberg, Gerald M.]], ''The Psychology of Computer Programming'', New York: Van Nostrand Reinhold, 1971
* [[Gerald Weinberg|Weinberg, Gerald M.]], ''The Psychology of Computer Programming'', New York: Van Nostrand Reinhold, 1971
* An experiential study of the nature of programming work: {{cite journal |last1=Lucas |first1=Rob |url=http://www.newleftreview.org/?view=2836 |title=Dreaming in Code |journal=New Left Review |issue=62 |date=March–April 2010 |pages=125–132 |url-status=dead |archive-url=https://web.archive.org/web/20120424111807/http://www.newleftreview.org/?view=2836 |archive-date= Apr 24, 2012 }}
* An experiential study of the nature of programming work: {{cite journal |last1=Lucas |first1=Rob |url=http://www.newleftreview.org/?view=2836 |title=Dreaming in Code |journal=New Left Review |issue=62 |date=March–April 2010 |pages=125–132 |article-number=2836 |doi=10.64590/0pv |archive-url=https://web.archive.org/web/20120424111807/http://www.newleftreview.org/?view=2836 |archive-date= Apr 24, 2012 |url-access=subscription }}
* {{cite book|title=Coders: The Making of a New Tribe and the Remaking of the World|year=2019|first=Clive|last=Thompson|publisher=Penguin Press|isbn=978-0735220560}}
* {{cite book|title=Coders: The Making of a New Tribe and the Remaking of the World|year=2019|first=Clive|last=Thompson|publisher=Penguin Press|isbn=978-0-7352-2056-0}}


==External links==
==External links==
Line 105: Line 114:


[[Category:Computer occupations]]
[[Category:Computer occupations]]
[[Category:Digital labor]]
[[Category:Software industry]]
[[Category:Software industry]]
[[Category:Information technology]]
[[Category:Information technology]]

Latest revision as of 04:15, 17 December 2025

Template:Short description Script error: No such module "about". Script error: No such module "redirect hatnote". Script error: No such module "Unsubst". Template:Use dmy dates Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters".

A programmer, computer programmer or coder is an author of computer source code

  1. REDIRECT Template:En dash

Template:R protected someone with skill in computer programming.

The professional titles software developer and software engineer are used for jobs that require a programmer.

Identification

Sometimes a programmer or job position is identified by the language used or target platform. For example, assembly programmer, web developer.

Job title

The job titles that include programming tasks have differing connotations across the computer industry and to different individuals. The following are notable descriptions.

A software developer primarily implements software based on specifications and fixes bugs. Other duties may include reviewing code changes and testing. To achieve the required skills for the job, they might obtain a computer science or associate degree, attend a programming boot camp or be self-taught.

A software engineer usually is responsible for the same tasks as a developer plus broader responsibilities of software engineering including architecting and designing new features and applications, targeting new platforms, managing the software development lifecycle (design, implementation, testing, and deployment), leading a team of programmers, communicating with customers, managers and other engineers, considering system stability and quality, and exploring software development methodologies.

Sometimes, a software engineer is required to have a degree in software engineering, computer engineering, or computer science. Some countries legally require an engineering degree to be called engineer.[1][2][3]

History

File:Ada Lovelace portrait.jpg
Ada Lovelace is considered by many to be the first computer programmer.[4]

British countess and mathematician Ada Lovelace is often considered to be the first computer programmer. She authored an algorithm, which was published in October 1842, for calculating Bernoulli numbers on the Charles Babbage analytical engine.[4] Because the machine was not completed in her lifetime, she never experienced the algorithm in action.

In 1941, German civil engineer Konrad Zuse was the first person to execute a program on a working, program-controlled, electronic computer.[5] From 1943 to 1945, per computer scientist Wolfgang K. Giloi and AI professor Raúl Rojas et al., Zuse created the first, high-level programming language, Plankalkül.[6][7]

Members of the 1945 ENIAC programming team of Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman have since been credited as the first professional computer programmers.[8][9]

The software industry

Script error: No such module "Labelled list hatnote". 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.[10]

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.[11]

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.[12]

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.[13]

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.[13] Programming is considered a profession.[14][15][16]

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.[17]

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.[18]

Globalization

Script error: No such module "Unsubst".

Market changes in the UK

According to BBC News, 17% of computer science students could not find work in their field six 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.[19]

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.[20][21][22] In addition, enrollment in computer-related degrees and other STEM degrees (STEM attrition)[23] in the US has been dropping for years, especially for women,[24][22] which, according to Beaubouef and Mason,[25] 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 originally predicted a growth for programmers of 12 percent from 2010 to 2020[26] and thereafter a decline of -7 percent from 2016 to 2026, a further decline of -9 percent from 2019 to 2029, a decline of -10 percent from 2021 to 2031.[13] and then a decline of -11 percent from 2022 to 2032.[27] The current prediction for 2024 to 2034 is a decline of -6 percent. Since computer programming can be done from anywhere in the world, companies sometimes hire programmers in countries where wages are lower.[13] If domestic demand has increased, it is mainly to replace existing programmers who have retired or switched occupations.[28] However, for software developers BLS projects current growth at 15%[28] that is down from their prediction from 2019 to 2029 of 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.[29][30][21] 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.[31][32] 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 (i.e. Full-stack developer). Then there is the additional concern that recent advances in artificial intelligence might drastically[33][34] impact the demand for future generations of Software professions.[35][36][37][38][39][40][41]

Market changes in Japan

As of 2024 in Japan, the demand for programmers is increasing rapidly due mainly to the aging demographics of their workforce and their low birth rate not being sufficient for replacement has led to more use of AI to help fill the gap.[42][43] On the other hand, despite the fact that there are more than 1.2 million programmers in Japan as of 2020, more than 40% of Japanese companies say they do not have enough skilled and qualified IT personnel, including programmers; by 2030, the number of programmers will exceed 1.6 million, but about 800,000 people, including programmers, a shortage of engineers is expected to occur.[44][45]

Programming education

Script error: No such module "Labelled list hatnote".

File:GitHub Codespaces side by side terminal.webp
GitHub Codespaces is an online integrated development environment that requires minimal setup to get started programming.

Programming education involves the teaching and learning of computer programming concepts, languages, and practices. It is offered through various formats, including formal computer science degree programs, vocational training, career and technical education centers, coding bootcamps, libraries,[46] online courses, and self-directed learning. Educational initiatives often focus on problem-solving, computational thinking, logical thinking, and the development of algorithms. In primary and secondary education, programming is increasingly integrated into computer literacy curricula through initiatives such as Hour of Code, Code Club, Learn to Code, and by getting computers in the classroom.[47][48] At the higher education level, programming instruction may include coursework in software engineering, data structures, debugging, software design, and specialized domains such as game development, artificial intelligence, cryptography, or data science. Numerous platforms and resources like AI chat bots, educational programming software, and online integrated development environments have expanded access to programming education.[49][50][51]

See also

Script error: No such module "Portal".

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. a b Script error: No such module "Citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "Citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "Citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. a b c d Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. Script error: No such module "citation/CS1".
  16. Script error: No such module "citation/CS1".
  17. Script error: No such module "citation/CS1".
  18. Script error: No such module "citation/CS1".
  19. Script error: No such module "citation/CS1".
  20. Script error: No such module "Citation/CS1".
  21. a b Script error: No such module "citation/CS1".
  22. a b Script error: No such module "citation/CS1".
  23. Script error: No such module "citation/CS1".
  24. Script error: No such module "citation/CS1".
  25. Script error: No such module "Citation/CS1".
  26. Script error: No such module "citation/CS1".
  27. Script error: No such module "citation/CS1".
  28. a b Script error: No such module "citation/CS1".
  29. Script error: No such module "citation/CS1".
  30. Script error: No such module "citation/CS1".
  31. Script error: No such module "citation/CS1".
  32. Script error: No such module "citation/CS1".
  33. Script error: No such module "citation/CS1".
  34. Script error: No such module "citation/CS1".
  35. Script error: No such module "citation/CS1".
  36. Script error: No such module "citation/CS1".
  37. Script error: No such module "citation/CS1".
  38. Script error: No such module "citation/CS1".
  39. Script error: No such module "citation/CS1".
  40. Script error: No such module "citation/CS1".
  41. Script error: No such module "citation/CS1".
  42. Script error: No such module "citation/CS1".
  43. Script error: No such module "citation/CS1".
  44. Script error: No such module "citation/CS1".
  45. Script error: No such module "citation/CS1".
  46. Script error: No such module "citation/CS1".
  47. Script error: No such module "citation/CS1".
  48. Script error: No such module "citation/CS1".
  49. Script error: No such module "Citation/CS1".
  50. Script error: No such module "citation/CS1".
  51. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

Further reading

  • Weinberg, Gerald M., The Psychology of Computer Programming, New York: Van Nostrand Reinhold, 1971
  • An experiential study of the nature of programming work: Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".

External links

Template:Authority control