How We Learn to Program

The internet has had a profound effect on how we learn to program and the practices we employ as programmers every day. We might call this a shift towards a "digital mind". See Thoughts on the Digital Mind

# Book

Before the internet one would program in a chosen language after having read it's book. One might be expected to already know the kinds of things one might program or be expected to pick this up along the way by example.

Pascal programmers would read Jensen & Wirth's Pascal User Manual and Report, 184 pages. amazon

C programmers would read Kernighan & Ritchie's The C Programming Language, 228 pages. amazon

The book would explain the grammatical forms the language would allow, working up from values, through expressions, to statements and definitions. Both Pascal and C benefited from habits established with Algol that were unavailable to Fortran and Cobol before them.

It was possible to "know" the language completely save possibly the precedence of operators summarized on one turned-down page. For this reason programmers kept their copy of the book handy.

# Query

After the internet one would program in many specialized languages at the same time recognizing that they can't possibly remember every detail of every case so doubt would be overcome by search. Rather than knowing the answer one learns enough lingo to query for the answer.

ruby remove element from array while iterating

While the books of the past might show how to remove an element and how to loop through an array but not address what might go wrong modifying an array while looping. Search knows this problem and suggests this variation after typing the first few words of the query.

The polyglot programmer knows less and less about more and more. Old timers protest: if they don't know how it works, how will they find their bugs? The answer seems to be that bugs don't matter that much. No going back.

I briefly held out hope for a more profound reasoning about programming between book and query. A hint of this is captured in the Story of Advancers

# Ethics

There is a sense that the internet has turned on the people who use it. Who's fault is that? Programmers? Neither book nor query has addressed unforseen ethical issues within their realm. Now computer science programs scramble to add ethics to their curriculum. What is the chance that it will take? nyt