Content deleted Content added
→Nature of the work: improving Tags: Reverted Mobile edit Mobile app edit Android app edit App section source |
Citation bot (talk | contribs) Altered title. | Use this bot. Report bugs. | Suggested by Лисан аль-Гаиб | Linked from User:WikiDan61 | #UCB_webform_linked 25/32 |
||
(23 intermediate revisions by 14 users not shown) | |||
Line 38:
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''.<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>▼
▲<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==
[[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.
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.
Line 59 ⟶ 58:
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.<ref>{{Cite web|title=Occupations in Information Technology|url=https://www.census.gov/library/publications/2016/acs/acs-35.html|access-date=2021-03-21|website=United States Census Bureau |date= August 16, 2016 |first1=Julia |last1=Beckhusen |language=EN-US|archive-date=22 March 2021|archive-url=https://web.archive.org/web/20210322030738/https://www.census.gov/library/publications/2016/acs/acs-35.html|url-status=live}}</ref>
==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.<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 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===
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>
==Globalization==
Line 70 ⟶ 77:
===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 | 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
== 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|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|l15=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 | 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 | 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 | pages=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==
Line 80 ⟶ 94:
* [[Systems architect]]
* [[Video game programmer]]
* [[996 working hour system]]
{{Clear}}
|