Well it’s time for another blog entry. I don’t have too much to add at this point, but in the spirit of blogging and writing more, I’ll try to come up with something to write about.
I’ve been keeping track of my progress in SICP, and so far I’m up to exercise 1.31. I started working through the book around 6/16/2018. So that means I’ve been at it for about two weeks now and I’ve done about 30 of the exercises. Having skipped a few here and there, that still adds up to about two a day. I’ve read up to around section 2.3.
My guess is that there are probably 350 exercies or so in SICP, if not more. I’ve found that typically I read ahead a bit and try to follow along in my paperback copy of the book, while using the online edition to go back and work through the problems. I’ve learned a few things about using Scheme in Dr. Racket, such as how to import other files into a program, and its been a pretty pleasant experience so far.
I’m still enjoying the book. It’s challenging to go through for sure. The last academic-ish work I did was taking an Algorithms course on Coursera (Algorithms part 1) and I can say for sure that this book is more challenging. While I miss the format of having timed exercises to do which are graded that the Algorithms course provided (you would upload your Java code and it would test it and grade it), SICP still seems like a worthwhile challenge.
So if I keep up doing about two exercises a day and there are about 350 problems in the book it should take about six months to work through. I have a feeling some of the future exercises may take substantially longer though – they aren’t getting easier. I think it’s going to take at least a year to work through this book if I can keep up the pace.
In other news I’ve continued to succumb to my book buying addiction. Part of me thinks I just like to have books. I’ve purchased a few in the last month that will keep me busy for a long time, with the exception of a few.
I picked up the following books recently:
- The Little Schemer
- The Seasoned Schemer
- Lisp in Small Pieces
- The Elements of Computing Systems: Building a Modern Computer from First Principles
- Distributed Systems
- Operating Systems: Three Easy Pieces
So my book buying addiction is alive and well.
There is a Coursera course (2 actually) covering the book “The Elements of Computing Systems” which I’m going to sign up for in a month or so. That’s about three or four months of time on Coursera to make it all the way through, and it will probably slow down the SICP work a little, but I do plan on doing both in parallel.
I started poking through “The Little Schemer” and it’s unique compared to any other programming text I’ve had before. It’s written in a question and answer format. In fact, the whole text (it’s not that long) is a series of questions followed by answers. The stated goal of the book is to teach the reader to think recursively. I think between this book and SICP over the next year I’ll definitely be better at doing that.
I couldn’t help but buying “Lisp in Small Pieces” as it contains the implementation for something like 11 or 12 interpreters and a few compilers. I think I plan on working through “Essentials of Programming Languages” first however, afer SICP.
Although I’ve only been keeping track of my “learning plan” for the past few weeks, I’m still slacking on the math part of it. So since I haven’t been going through my old textbooks yet I took some time to explore what Coursera has. I was pleased to find that there is now a specialization in Discrete Mathematics that they offer. I had a lot of success working through the Algorithms course previously on Coursera, and I plan on signing up for this specialization.
So two weeks into tracking my progress I’m about 30 exercies and 120 pages into SICP.
My wallet is also lighter again due to my book buying binges.
Hopefully in another month or so I’ll be at least another 30-40 exercies further along in SICP.