Code Nation. Michael J. Halvorson
Читать онлайн книгу.administrators eager to provide practical job training (and to mollify prospective students and their parents) broadened the definition of “foreign language” to include instruction in computer languages, algorithms, and database management. The popular press advocated for coding instruction in newspapers and special reports, and computer book and magazine publishers released hundreds of titles to help students build simple applications for time-sharing systems and the first PCs.
No one argued that computer languages were the same as human languages, of course. But programming advocates pointed to the many parallels that they observed in the structure of spoken and computer grammars, and to the ways that basic logic and reasoning were gradually introduced to students. Instruction in programming seemed to permit access to the private world of a computer and its “brain” or CPU.Central processing unit (CPU) Central processing unit (CPU) central processing unit (CPU). Programming was also portrayed as a valuable exercise in logical thinking and problem solving. It was a mental activity that provided a conceptual introduction to how computers worked, as well as a deep dive into logic and syntax. For all these reasons, computer literacy advocates recommended that those who planned to use computers in the future should learn to code as soon as possible. “Even if you don’t write programs yourself,” Nelson, Ted Ted Nelson advised in 1974, “you may have to work with people who do.”5
In the early years of the electronic computer revolution, it was the imposing image of the new machines that seemed to fascinate the public. The physicality of mainframe computers was reinforced by images of large devices whirring and blinking in popular films such as Desk Set (1957), 2001: A Space Odyssey (1968), Colossus: The Forbin Project (1970), Logan’s Run (1976), and War Games (1983). As computers became more reliable and better understood, however, the focus of popular attention turned away from computing machinery to software, the programs that ran on computers, and the coding experts who wrote code in high-level languages like FORTRAN, COBOL COBOL, BASIC, and C. The computer industry went through many transitions in the 1960s and 1970s, adding minicomputers and other special-purpose machines. Gradually, the attention of the computing community shifted from scientific and military systems to the application software that powered new types of businesses and helped them manage information.
By the 1980s and 1990s, it became apparent that there were not enough qualified programmers to design, build, and maintain the software systems needed in the U.S. as the country expanded its computational interests into new areas. Although the academic discipline of computer science had taken shape in America’s colleges and universities, these programs could not graduate enough scientists and engineers to satisfy the industry’s needs. The situation was much the same in the rest of the computerized world, in schools and markets stretching from Europe to Asia. Journalist Clive Thompson has written about it this way: “If you look at the history of the world, there are points in time when different professions become suddenly crucial, and their practitioners suddenly powerful. The world abruptly needs and rewards their particular set of skills.”6 Computer programmers suddenly became this influential group.
The “Big bang” of software construction “big bang” of software construction that took place in the 1970s created waves of demand for qualified programmers that continue to expand up to the present. Even in the Internet age—when learning to manage websites, write blogs, and use social media tools has taken on great importance—learning to code has not lost its appeal. As this book goes to press, the leaders of technology companies such as Amazon, Google, Facebook, Apple, and Microsoft regularly complain to Congress that the U.S. does not have enough qualified software developers to meet its needs. According to these advocates, a special exemption is needed in our national immigration policies to allow more foreign high-tech workers into the U.S. to satisfy the demand for software developers and associated fields, such as hardware engineering, artificial intelligence, data mining, computer security, user interface design, audio engineering, cloud computing, product testing and verification, technical writing, product support, project management, and related fields. Programmers have become the lifeblood of our technical society.
1.3Programmingnew ways of thinkingNew Ways of Thinking
Calls to learn coding techniques abound now from the leaders of our digital economy. So, too, are warnings that if a group does not heed the call, they will miss out on all or part of what the global digital economy has to offer. But where did this urgency to learn programming come from? What has motivated schools and non-profit organizations to devote so many resources to preparing instructions for a computer? When did programming literacy emerge as a national priority? And what were the early experiences of programmers as they tinkered with mainframes, minicomputers, and the first microcomputers? How is this story connected to the development of successful platforms such as CP/M CP/M, MS-DOS MS-DOS, Microsoft Windows Microsoft Windows, the Apple Macintosh (Mac OS) Apple Macintosh, and Unix-based systems Unix-based systems?
Whether past or present, the invitation to become a software maker is an invitation to join a distinctive community within our global society and economy. This computing subculture was founded by a small group of research scientists and academics, but it has expanded into a diverse assortment of hobbyists, students, gamers, artists, musicians, hackers, engineers, career professionals, and part-time workers. Although each of these groups is distinct in socio-economic terms, there is discernable common ground in their understanding of computers and computing technology. Computer programmers share a basic orientation to the world that is shared, despite the differences that they experience in relation to hardware and software systems, learning tools, and historical context.
As a thought experiment, imagine that each subgroup within the programming collective can be conceived of as a concentric circle. In such a model of our programming culture, the entire assortment of circles would be drawn in close proximity to one another, and most of the circles would have points of intersection and overlap. A shared exposure to computational thinking is the overlap, even if the programming languages that people learn (and the tools they write programs with) change over time. Some computer programmers may take up professional work, and others will remain as hobbyists or late-night hackers. Still others may learn programming skills as part of a journey that leads to other types of fruitful work. Despite the differences, and there will be many, the entire set of circles is a model of our nation’s programming culture.7
The call to join ranks with computer programmers is not just an invitation to new ways of thinking (learning computational logic) and new consumer behaviors (buying software and a programming primer), it is also a call to new social relationships, to new ways of seeing and knowing, and to participating in new personal and professional networks. The programming circles that collectively shape America’s technical identity are as much expressions of a distinct subculture as are the ideas and values of Impressionist artists and their admirers in Fin-di-siècle Paris or jazz musicians and their fans during the Swing Era in New York City.
As a social historian with interests in the history of technology, business, and education, I am curious about the experiences of today’s programmers and software creators, and where they received their training, inspiration, and cultural worldviews. (See Figure 1.2.) Although the Internet era has contributed much to the behaviors and identity of contemporary software developers, the core skills and thought patterns of modern programmers were influenced by even earlier commitments and achievements. These included the proliferation of high-level languages in the 1950s, the introduction of software engineering techniques in the 1960s, the idealism of educators, entrepreneurs, and authors in the 1970s and 1980s, and the diffusion of commercial programming techniques in the 1990s and 2000s.
My argument is that the Learn-to-program movement learn-to-program movement gained momentum through each of these important transitions, as programmers, authors, and entrepreneurs created pathways through which Americans might learn programming skills and the fine-points of creating software for specific platforms. Computer book authors, magazine publishers, and influential Programmer/educators programmer/educators played important, if overlooked, roles in the diffusion of these new skills. By establishing an ideological connection to the computer literacy movement, programmer/educators established a framework that made computer programming feel important,