4 ms·
it assumes a lot of background knowledge What kind of background knowledge is required?
by ananthrk 17y ago
it assumes a lot of background knowledge
What kind of background knowledge is required?
- 10ren 17y agoSome examples from chapter one: the concept of local variables (used but not explained); the conventional meaning of recursion (when they argue that TCO only applies to iteration despite having the form of recursion); and (and IIRC) approaches to mathematical proofs that it argues against (there are also some mathematical examples, like implementing Newtons method, but I think that's OK). There's also a bit of imagery that only makes sense if you already know what it means. As someone who's taught at Uni, I think that's pretty poor in an "introductory textbook". However, the simple truth is that it isn't an introductory textbook at all, but something more advanced and arcane.
- ananthrk 17y agoThanks for the response. So, what would be a good book before SICP?
- dasil003 17y agoI think you just need a couple years of programming under your belt. Books won't really help with the proper grokage.
- 10ren 17y agoAre you asking about fp, or programming books in general? One approach I took was to go to the (University) library, and find the section on the programming topic of interest. Then grab a few books, and read a paragraph at random. Then borrow (or read there) the one that appeals to you - the writing style that makes sense to you, that addresses the issues that come to you as you read, that communicates to you. You can do the same at Borders, but the books are more vocational and less textbooky. If some particular part is unclear, you can compare it with other books - you now have a resource. Every book has something to offer. The biggest factor is what you put into it. Therefore, it's more important to pick a book that you like rather than the "best" one. Otherwise, you can get into a kind of McCarthyism where there are good books and bad books, instead of each book having strengths and weaknesses. To put this in perspective, I personally really liked "Java in a Nutshell", because Flanagan's writing is brilliant. It's very succinct, yet covers all the cases, has a joie de vivre about it, and yet is so transparent it's easy to not notice it (Douglas Adam's prose also has this quality). Revealingly, Flanagan loves writing; and is very well read himself. Most writers of programming books are not. Now, to me, being well-written is very pleasing; but I can imagine it not mattering at all to the next programmer.