Hi there, I regrettably haven't studied maths since I was 16 (GCSE level), I'm now a 27 year old c# developer. Would it be a fruitless exercise trying to work through this book? What kind of maths standard is expected of the reader?

Thanks in advance for any replies!

+2  A: 

from what i can remember from this book, it talks about some matrix calculations, which might be hard to understand at first. but it is just list of list, or array of array... so you will need to deal with that sooner or later in programming.

if there was any difficult math, i think you can skip it. this book was (and probably still is) used in Berkeley's first year computer science class (many students take it in the first semester), without any need of understanding calculus at all, so i think general understanding of math is good enough to understand the book.

the book talks about a function being a black box... and after reading the book, i think it helps a person's understanding of math in general too.


The Numerical Programming section might require some higher math, but you should be able to digest the rest of the book with high-school math.

Robert Harvey
+4  A: 

I had a ganders at this book. My maths knowledge is not great ... but there is a key:

For understanding things like this, providing you have a creative mind and a good grasp of the abstract nature of structures and mathematical principles you should be fine. My mental arithmatic is pretty poor by anyones standards, but I love reading about discrete mathematics because of it's abstract nature.

I wouldn't consider myself a very good mathematician in the numeric sense, but as a software developer I like to think I have a mathematics (or mechanical) mind.

I wouldn't worry too much about your numeric strength but more about the nature of mathematics and the personality of the concepts underpinning computer science. If you have a good programming mind, maybe try and enhance that with combinatorics/discrete/concrete mathematics (which, besides counting theory, in many cases avoids dry numbers).

I found my love for things like set-theory studying compilers, and I wouldn't want to sit my maths A-level without alot of cramming!

Give it a go, what have you got to lose?

(im 22 and in a similar situation to you)

Good luck

PS: I also found the video lectures interesting. You can torrent them from


Aiden Bell
+2  A: 

It definitely wouldn't be a fruitless exercise, it's an excellent book. On the other hand, it would be kind of tough going, as they do expect you to have some mathematical sophistication, if not tons of advanced math.

You might find How to Design Programs, by Felleisen et al, a bit of an easier start while giving you much the same approach, using Scheme and all.

Charlie Martin
Would "How to Design Programs" teach me a lot of the stuff that sicp would teach?
About programming, yeah. SICP is good too, but can be a little stiff.
Charlie Martin
HTDP covers a lot of the same things, but from a different angle. You'll still get to experience interpreters, recursion, closures, OO, and the like.
Barry Brown
+3  A: 

Its never too late to start SICP. And it doesnt really require any higher maths at all, except perhaps in the signal processing with infinite streams parts. That can be skipped without losing too much though.

The most important thing while reading SICP is solving the problems, IMO. Some of the tougher ones can be mind-expanding and force you to really understand the topic. If you are confident about some solution you can skip it though. And the solutions can be found at - http://eli.thegreenplace.net/category/programming/lisp/sicp/

The danger in reading SICP is that after completing it, you will not like using any programming language other than Scheme. :)

+4  A: 

Having worked through all of SICP, I can tell you with confidence that you don't need a lot of math background to understand it. SICP is (used to be?) a first or second semester course in MIT, for students with practically no college/university level math. Whenever it discusses mathematical topics, it provides sufficient background for any intelligent reader to understand.

From the little you tell about yourself, it's great time to work through SICP. Reading the book and solving (at least some of) the exercises, and playing with the code of the projects, can teach you a lot about programming. Don't worry about math - you'll handle it without any problems. What's really needed is a true, deep curiosity about programming, and some patience.

Eli Bendersky
I've enjoyed reading about your journey through SICP. Congratulations on completing the book!
Bayard Randel