Help Learning JavaScript (Absolute Beginner)

From the preface of Volume 4A:

OK, it’s clear that the field of Combinatorial Algorithms is vast, and I can’t cover it all. What are the most important things that I’m leaving out? My biggest blind spot, I think, is geometry, because I’ve always been much better at visualizing and manipulating algebraic formulas than objects in space. Therefore I don’t attempt to deal in these books with combinatorial problems that are related to computational geometry, such as close packing of spheres, or clustering of data-points in n-dimensional Euclidean space, or even the Steiner tree problem in the plane. More significantly, I tend to shy away from polyhedral combinatorics, and from approaches that are based primarily on linear programming, integer programming, or semidefinite programming. Those topics are treated well in many other books on the subject, and they rely on geometrical intuition. Purely combinatorial developments are easier for me to understand.

Most of this book is self-contained, although there are frequent tie-ins with the topics discussed in Volumes 1—3.

This book has been written for readers with varying degrees of mathematical training and sophistication; as a result, some of the exercises are intended only for the use of more mathematically inclined readers. The rating is preceded by an M if the exercise involves mathematical concepts or motivation to a greater extent than necessary for someone who is primarily interested only in programming the algorithms themselves. An exercise is marked with the letters “HM” if its solution necessarily involves a knowledge of calculus or other higher mathematics not developed in this book.

(Bolded by me.)

His sentences are pleasant and approachable—I guess he wasn’t joking when he coined the phrase literate programming. I’m stuck at page 3 though, when he says:

In other words, 15.5·16 + 14.5·6 + … + 0.5·8 = 0.5·11 + … + 14.5·4 + 15.5·7; and in this particular example we also have another kind of balance, 16 + 6 + … + 8 = 11 + 16 + … + 7, hence also 16·16 + 15·6 + … + 1·8 = 1·11 + … + 15·4 + 16·7.

(He’s refering to a diagram of a lever with weights.)

I think it would take a while before I reach the end of §7 (1st section of the book), which is before §7.1.

By the way, at the end of preface he quotes:

The average boy who abhors square root or algebra
finds delight in working puzzles which involve similar
principles, and may be led into a course of study
which would develop the mathematical and inventive bumps
in a way to astonish the family phrenologist.

— SAM LOYD, The World of Puzzledom (1896)

Maybe he’s suggesting to look at other puzzles for readers not ready.


I found specifically a page Learn web development. In it for example there’s “Server-side website programming”. Near the beginning it suggests reading “What is a web server” so I think the author is good at reading my mind—it looks like I can jump in anywhere.


Edsger Dijkstra—The Man Who Carried Computer Science on His Shoulders:

The EWDs [—private reports prefixed with his initials—] were initially written in Dutch using a typewriter. In 1972, Dijkstra switched to writing exclusively in English, and in 1979 he began writing them mostly by hand.

Denken als discipline bij Noorderlicht (he starts writing with his fountain pen at 4:20):

Exams were always oral and could last a couple of hours. Upon completion of the exam, an informal chat followed during which the student was presented with a signed photo of Dijkstra, and a beer—age permitting.

I’ve no experience with oral exam and only seen it in films but it sounds fun.

2 Likes