4 ms·
SICP for CS and programming. That book (and its exercises) really instilled in me the thought patterns that drastically improved my programming skills and made
by FiberBundle 5y ago
SICP for CS and programming. That book (and its exercises) really instilled in me the thought patterns that drastically improved my programming skills and made me realize how important fundamental CS knowledge is to being a good programmer. What I learned from that book was: becoming comfortable with recursion, realizing the importance of abstractions, functional programming concepts and it gave me insights into how interpreters and the machine work.
I studied math in university and the book that really improved me mathematically was baby rudin. I really struggled with this the first time I worked through it and had to also fall back on Abott's analysis book, but after my first analysis course I worked through Rudin again and it just clicked. The exercises are really well chosen and the text is just so on point. Every sentence in the book is extremely carefully chosen and of fundamental importance to what Rudin wants to teach you.
It's really rare that you find textbooks that almost kind of have a certain magic to them, like you are directly taught by one of the greatest minds in that field. These two books definitely meet that criteria.
- ghusbands 5y agoFor those who don't know: "Baby Rudin" is Principles of Mathematical Analysis by Walter Rudin. I had to look it up.
- freeCandy 5y agoRudin's other two books are called "Papa Rudin" and "Grandpa Rudin", seemingly named due to the increasing difficulty of their contents.
- ekkeke 5y ago+1 for baby Rudin, while I wouldn't say it was THE book for me, it was certainly one that gave me a proper understanding of mathematical proofs as opposed the mroe applied mathematics books I had read until then. And the exercises are excellent!
- ipnon 5y agoThe best programmers have deep understandings of both the physical and theoretical theories of computation. Most programmers have a better understanding of the physical: Processors, memory, networking, operating systems. Functional programming is the super power that reconceptualizes the endless tape wiggling of the Turing machine into a coherent, flowing calculus.
- Breza 5y agoIncredibly well said!
- debanjan16 5y agoRegarding SICP. The first chapter is too mathematical. At least at first glance. Is that true? When did you do SICP? How mathematically mature were you?
- FiberBundle 5y agoHighschool math is all that is required for it from what I remember, definitely doesn't require a lot of mathematical maturity. Even if you would somewhat struggle to completely understand the math, the ideas they try to teach you should still be accessible in my opinion.
- Breza 5y agoI agree with you. They assume the level of math of an MIT freshman. And the level of computer experience of a modern 11 year old. So sometimes they lean on the math in situations where a professor today might explain something in terms of a computer. Take a step back and try to understand the concepts that they are explaining, even if your math is a little rusty. I love SICP, it really make functional programming click for me. The other book I recommend in this space is Advanced R.