I'm a java programmer and I've decided to learn a bit about theoretical computer science. I don't have a degree in that and a little background would help me a lot since I don't know anything other than coding when it comes to software development.

I've searched this website for answers and I've found a lot of people recommending the book "Structure and Interpretation of Computer Programs" but since I don't have the required mathematical know-how to handle this book, I decided to go with "How to Design Programs" instead.

My question here is what would I gain from this experience? Would it teach me about Computer Science like I want? Or am I better off reading about algorithms and data structures instead?


1 Answer 1


That's an introductory CS text... there isn't a lot of math involved. I think you would be best served by picking up the math you need, and going with SICP. Maybe you can pick up what you need from Khan Academy. Part of the beauty of SICP is that it teaches you a mathematical way to think about problems, in a way that only a functional language can (IMO).

  • but how to design programs is supposed to be an enhancement to SICP,I guess,and they both server the same purpose Jan 18, 2011 at 17:17
  • This definitely is not a math intensive text.
    – Rig
    Feb 26, 2012 at 7:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.