Hi Folks.

SICPJS Thinking About the Book and Study Plan / Catalog

The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three:

  1. Combining several simple ideas into one compound one, and thus all complex ideas are made.
  2. The second is bringing two ideas, whether simple or complex, together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations.
  3. The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general ideas are made.

Why I read this book and what is the goal of the book

As a CSer, I heard a lot about this book, it is one of the Bible of computer science. I used to read several pages of the original book SICP, which use Scheme as programming language. But I quited so fast that I couldn’t really understood the thought that the book express, at that time I was a freshmen then(BTW, this book server as MIT fresh year text book lol😂 ). But I just skip this book, and read books like Computer Network Top Down Approach, Operating System: Three Easy Pieces.
Time flies, after 3 year, I will soon end my campus time and step into job. Luckily, I get a satisfactory job in Singapore. And I gradually getting familiar with those computer thought like Design Partern, Object-Oriented Programming. As I found that code I wrote is hard to maintain, sometime I don’t even want to look at them after first writing, I know that there is still a big missing on my CS skill, that is, the skill to express my idea elegantly by program, and the ability to predict the process that the program generate, and the way to write more clean code.
So, as the SICP JS edition came out at 2022 by chance, I pick it up and restart my journey. This time, I found that it is more easy and more confident to read and understand this book, also, by using my most skilled language javascript, I do almost all exercise and even try to opitimize them.
I was stock by this book’s thought, and learned a lot from this book, I really grateful to those who leave such teasure with open source.
So, the goal of this book is:

  • To figure out the connection and difference between program, computational processes, and human.
  • Focues on how to express physical or mental processes of real world, exploring human advantage and disadvantage.
  • How to use program to express to processes above, and how to make it clean and elegant.
  • To learn the techniques used to control the complexity of large software systems.


The human mind, collections of computer programs, and computer

  • The human mind:
    • Human works well at naming object, so a good programmer not only programming, but also build vocabulary for further use.
    • Human mind rise a series of real world or mental process, they are so complex and huge that human only can understand a very small part of those processes.
  • Collections of computer programs:
    • The model of every process that rise in human mind of real world or mental.
    • They are to much to understand just like the processes themselves.
    • They are changing as human getting more deep, enlarge, generalize of the processes.
    • Large processes grow from small one.
  • Computer
    • Computer is a harsh taskmaster, every programs it take mush be correct, and what we wish to say mush be said accurately in every detail.
    • Program is getting too large that it s hard to proof the correctness. Thus we must make sure the correctness of every single module.
    • Computer mush obey the laws of physics, shorter distent faster compute.

Those three foci maintain a metastable state and lead a big change to other once they are changed, computer breakthrough leads more massive programs enterprise.

Notes Structure

Got inspired by “a good programmer not only programming, but also build vocabulary for further use”. This note uses Vocabulary, Questions, Notes to record:

  • Vocabulary: new staff of the section, will focues on what is, and new staff offen build upon previous staff.
  • Questions: interesting questions, need to down the rabbit hole, may and may not answer.
  • Notes: to record ideas and exercise.

Catalog & Index


SICPJS 1. Building Abstractions with Functions


SICPJS Open Source Text Book

— Apr 24, 2022