Structure and Interpretation of Computer Programs: JavaScript Edition by Harold Abelson | ReadsToRead