Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Computer programming
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Learning to program== Learning to program has a long history related to professional standards and practices, academic initiatives and curriculum, and commercial books and materials for students, self-taught learners, hobbyists, and others who desire to create or customize software for personal use. Since the 1960s, learning to program has taken on the characteristics of a ''popular movement'', with the rise of academic disciplines, inspirational leaders, collective identities, and strategies to grow the movement and make institutionalize change.<ref>{{cite book |last1=Halvorson |first1=Michael J. |title=Code Nation: Personal Computing and the Learn to Program Movement in America |date=2020 |publisher=ACM Books |location=New York, NY |pages=3–6}}</ref> Through these social ideals and educational agendas, learning to code has become important not just for scientists and engineers, but for millions of citizens who have come to believe that creating software is beneficial to society and its members. ===Context=== In 1957, there were approximately 15,000 computer programmers employed in the U.S., a figure that accounts for 80% of the world's active developers. In 2014, there were approximately 18.5 million professional programmers in the world, of which 11 million can be considered professional and 7.5 million student or hobbyists.<ref>{{cite book |title=2014 Worldwide Software Developer and ICT-Skilled Worker Estimates |date=2014 |publisher=International Data Corporation |location=Framingham, MA}}</ref> Before the rise of the commercial Internet in the mid-1990s, most programmers learned about software construction through books, magazines, user groups, and informal instruction methods, with academic coursework and corporate training playing important roles for professional workers.<ref>{{cite book |last1=Ensmenger |first1=Nathan |title=The Computer Boys Take Over: Computers, Programmers, and the Politics and Technical Expertise |date=2010 |publisher=The MIT Press |location=Cambridge, MA}}</ref> The first book containing specific instructions about how to program a computer may have been [[Maurice Wilkes]], [[David Wheeler (computer scientist)|David Wheeler]], and [[Stanley Gill|Stanley Gill's]] ''Preparation of Programs for an Electronic Digital Computer'' (1951). The book offered a selection of common subroutines for handling basic operations on the EDSAC, one of the world's first stored-program computers. When high-level languages arrived, they were introduced by numerous books and materials that explained language keywords, managing program flow, working with data, and other concepts. These languages included [[FLOW-MATIC]], COBOL, FORTRAN, [[ALGOL]], [[Pascal (programming language)|Pascal]], [[BASIC]], and C. An example of an early programming primer from these years is [[Marshal Henry Wrubel|Marshal H. Wrubel's]] ''A Primer of Programming for Digital Computers'' (1959), which included step-by-step instructions for filling out coding sheets, creating punched cards, and using the keywords in IBM's early FORTRAN system.<ref>{{cite book |last1=Halvorson |first1=Michael J. |title=Code Nation: Personal Computing and the Learn to Program Movement in America |date=2020 |publisher=ACM Books |location=New York, NY |page=80}}</ref> [[Daniel McCracken|Daniel McCracken's]] ''A Guide to FORTRAN Programming'' (1961) presented FORTRAN to a larger audience, including students and office workers. In 1961, [[Alan Perlis]] suggested that all university freshmen at Carnegie Technical Institute take a course in computer programming.<ref>{{cite news |last=Perlis |first=Alan |title=The role of the digital computer in the university |work=Computers and Automation 10, 4 and 4B |date=1961 |pages=10–15}}</ref> His advice was published in the popular technical journal ''Computers and Automation'', which became a regular source of information for professional programmers. Programmers soon had a range of learning texts at their disposal. ''Programmer's references'' listed keywords and functions related to a language, often in alphabetical order, as well as technical information about compilers and related systems. An early example was IBM's ''Programmers' Reference Manual: the FORTRAN Automatic Coding System for the IBM 704 EDPM'' (1956). Over time, the genre of ''programmer's guides'' emerged, which presented the features of a language in tutorial or step by step format. Many early primers started with a program known as [[Helloworld|“Hello, World”]], which presented the shortest program a developer could create in a given system. Programmer's guides then went on to discuss core topics like declaring variables, data types, formulas, flow control, user-defined functions, manipulating data, and other topics. Early and influential programmer's guides included [[John G. Kemeny]] and [[Thomas E. Kurtz|Thomas E. Kurtz's]] ''BASIC Programming'' (1967), Kathleen Jensen and [[Niklaus Wirth|Niklaus Wirth's]] ''The Pascal User Manual and Report'' (1971), and [[Brian W. Kernighan]] and [[Dennis Ritchie|Dennis Ritchie's]] ''The C Programming Language'' (1978). Similar books for popular audiences (but with a much lighter tone) included [[Bob Albrecht|Bob Albrecht's]] ''My Computer Loves Me When I Speak BASIC'' (1972), Al Kelley and Ira Pohl's ''A Book on C'' (1984), and [[Dan Gookin|Dan Gookin's]] ''C for Dummies'' (1994). Beyond language-specific primers, there were numerous books and academic journals that introduced professional programming practices. Many were designed for university courses in computer science, software engineering, or related disciplines. [[Donald Knuth|Donald Knuth's]] ''[[The Art of Computer Programming]]'' (1968 and later), presented hundreds of computational algorithms and their analysis. ''The Elements of Programming Style'' (1974), by Brian W. Kernighan and [[P. J. Plauger]], concerned itself with programming ''style'', the idea that programs should be written not only to satisfy the compiler but human readers. [[Jon Bentley (computer scientist)|Jon Bentley's]] ''Programming Pearls'' (1986) offered practical advice about the art and craft of programming in professional and academic contexts. Texts specifically designed for students included Doug Cooper and Michael Clancy's ''Oh Pascal!'' (1982), [[Alfred Aho|Alfred Aho's]] ''Data Structures and Algorithms'' (1983), and Daniel Watt's ''Learning with Logo'' (1983). ===Technical publishers=== As personal computers became mass-market products, thousands of trade books and magazines sought to teach professional, hobbyist, and casual users to write computer programs. A sample of these learning resources includes ''BASIC Computer Games, Microcomputer Edition'' (1978), by [[David Ahl]]; ''Programming the Z80'' (1979), by [[Rodnay Zaks]]; ''Programmer's CP/M Handbook'' (1983), by [[Andy Johnson-Laird]]; ''C Primer Plus'' (1984), by [[Mitchell Waite]] and The Waite Group; ''The Peter Norton Programmer's Guide to the IBM PC'' (1985), by [[Peter Norton]]; ''Advanced MS-DOS'' (1986), by Ray Duncan; ''[[Learn BASIC Now]]'' (1989), by [[Michael Halvorson]] and David Rygymr; ''Programming Windows'' (1992 and later), by [[Charles Petzold]]; ''Code Complete: A Practical Handbook for Software Construction'' (1993), by [[Steve McConnell]]; and ''Tricks of the Game-Programming Gurus'' (1994), by [[Andre LaMothe|André LaMothe]]. The PC software industry spurred the creation of numerous book publishers that offered programming primers and tutorials, as well as books for advanced software developers.<ref>{{cite book |last1=Halvorson |first1=Michael J. |title=Code Nation: Personal Computing and the Learn to Program Movement in America |date=2020 |publisher=ACM Books |location=New York, NY |page=352}}</ref> These publishers included [[Addison-Wesley]], [[IDG]], [[Macmillan Inc.]], [[McGraw-Hill]], [[Microsoft Press]], [[O'Reilly Media]], [[Prentice Hall]], Sybex, Ventana Press, Waite Group Press, [[Wiley (publisher)|Wiley]], [[Wrox Press]], and [[Ziff-Davis]]. [[Computer magazine|Computer magazines]] and journals also provided learning content for professional and hobbyist programmers. A partial list of these resources includes ''[[Amiga World]]'', ''[[Byte (magazine)]]'', ''[[Communications of the ACM]]'', ''[[Computer (magazine)]]'', ''[[Compute!]]'', ''Computer Language (magazine)'', ''[[Computers and Electronics]]'', ''[[Dr. Dobb's Journal]]'', ''[[IEEE Software]]'', ''[[Macworld]]'', ''[[PC Magazine]]'', ''[[PC/Computing]]'', and ''[[UnixWorld]]''. ===Digital learning / online resources=== Between 2000 and 2010, computer book and magazine publishers declined significantly as providers of programming instruction, as programmers moved to Internet resources to expand their access to information. This shift brought forward new digital products and mechanisms to learn programming skills. During the transition, digital books from publishers transferred information that had traditionally been delivered in print to new and expanding audiences.<ref>{{cite book |last1=Halvorson |first1=Michael J. |title=Code Nation: Personal Computing and the Learn to Program Movement in America |date=2020 |publisher=ACM Books |location=New York, NY |pages=365–368}}</ref> Important Internet resources for learning to code included blogs, wikis, videos, online databases, subscription sites, and custom websites focused on coding skills. New commercial resources included [[YouTube]] videos, Lynda.com tutorials (later [[LinkedIn Learning]]), [[Khan Academy]], [[Codecademy]], [[GitHub]], [[W3Schools]], and numerous coding bootcamps. Most software development systems and [[game engine|game engines]] included rich online help resources, including [[integrated development environment|integrated development environments]] (IDEs), [[context-sensitive help]], [[API|APIs]], and other digital resources. Commercial [[software development kit|software development kits]] (SDKs) also provided a collection of software development tools and documentation in one installable package. Commercial and non-profit organizations published learning websites for developers, created blogs, and established newsfeeds and social media resources about programming. Corporations like [[Apple Inc.|Apple]], [[Microsoft]], [[Oracle Corporation|Oracle]], [[Google]], and [[Amazon (company)|Amazon]] built corporate websites providing support for programmers, including resources like the [[Microsoft Developer Network]] (MSDN). Contemporary movements like Hour of Code ([[Code.org]]) show how learning to program has become associated with digital learning strategies, education agendas, and corporate philanthropy.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)