Alan Kay: "What books would you recommend reading to someone who is studying Computer Science"

In short, I would advise reading a lot of books that are not related to computer science.

Alan Kay: "What books would you recommend reading to someone who is studying Computer Science"

It is important to understand what place the concept of “science” occupies in “Computer Science”, and what “engineering” means in “Software Engineering”.

The modern concept of "science" can be formulated as follows: it is an attempt to translate phenomena into models that can be more or less easily explained and predicted. On this topic, you can read "Sciences of the Artificial" (one of the important books of Herbert Simon). You can look at it from this point of view: if people (especially developers) build bridges, then scientists can explain these phenomena by creating models. The most interesting thing about this is that science will almost constantly find new, better ways to build bridges, so friendly relations between scientists and developers may well improve every year.

An example of this from the sphere Computer Science is John McCarthy, thinking about computers in the late 50s, that is, the incredibly wide range of what they can do (maybe AI?), and the creation of a model of computing that is a language, and can serve as its own metalanguage (lisp). My favorite book on the subject is The Lisp 1.5 Manual by MIT Press (by McCarthy et al.). The first part of this book is still a classic of how to think in general and about information technology in particular.

(Later came the book Smalltalk: the language and its implementation, whose authors (Adel Goldberg and Dave Robson) were inspired by all this. Also contains a full description of the practical application of the project, written in the Smalltalk language itself, etc.).

I really like the book "The Art of the Metaobject Protocol" by Kikzales, Bobrow and Rivera, which came out even later than the previous ones. It is one of those books that can be called "serious computer science." The first part is especially good.

Another scientific work of 1970, which can be considered serious Computer Science — “A Control Definition Language” by Dave Fisher (Carnegie Mellon University).

It may seem that my favorite book on computer computing is far from the realm of IT, but it is wonderful and a pleasure to read: Computation: Finite and Infinite Machines by Marv Minsky (circa 1967). Just a wonderful book.

If you need help with "science", I usually recommend a lot of books: Newton's Principia (the foundational book and founding document of science), The Molecular Biology of the Cell by Bruce Alberts, etc. Or, for example, the book with Maxwell's notes, etc.

You need to realize that "Computer Science" is still about achieving, not achieving.

"Engineering" means "designing and constructing things in a principled, expert way." The required level of this skill is very high for all areas: civil, mechanical, electrical, biological, etc. Engineering.

This aspect should be carefully studied in order to better understand what exactly it means to engage in "engineering".

If you need help with "engineering", try reading about creating Empire State Building, Hoover Dam, bridge "Golden Gate" and so on. I like the book "Now It Can Be Told" by Major General Leslie Groves (an honorary title of the Manhattan Project). He is an engineer, and this story is absolutely not about the Los Alamos POV project (which he also directed), but about Oak Ridge, Hanford, etc., and the amazing attraction of over 600 people and huge money to complete the design necessary to create the desired materials.

Also, think about what field doesn't have a "software engineering" part - again, you need to understand that "software engineering" in any "developmental" sense is at best an aspiration to achieve, not achievement.

Computers are also a kind of "media" and "intermediaries", so we need to understand what they do for us and what effect they have on us. Read Marshall McLuhan, Neil Postman, Innis, Havelock, etc. Mark Miller (comment below) just reminded me to recommend Technics and Human Development, vol. 1 of Lewis Mumford's "The Myth of the Machine" series, a great forerunner of both the ideas of the media environment and an important aspect of anthropology.

It's hard for me to recommend a good book on anthropology (maybe someone else will), but understanding people as living beings is the most important aspect of education and should be well studied. In one of the comments below, Matt Gabourey recommended "Human Universals" (I think he's referring to a book by Donald Brown). This book should definitely be read and understood - it is not on the same shelf as books about any particular field, such as Molecular Biology of the Cell.

I love Edward Tufte's Envisioning Information books: read them all.

Bertrand Russell's books are still very useful, if only to think more deeply about "this and that" ("A History of Western Philosophy" is still amazing).

Multiple viewpoints is the only way to fight the human desire to believe and create religions, which is why my favorite history book is Destiny Disrupted by Tamim Ansari. He grew up in Afghanistan, moved to the US at the age of 16 and is able to write a clear, enlightening history of the world since the time of Muhammad from the point of view of this world and without unnecessary calls to believe.

*POV (propagation of variance)

The translation was made with the support of the company EDISON Softwarewho professionally writes software for IoT on an urban scaleAs well as develops software for new tomographs .

Source: habr.com

Add a comment