Found in 3 comments on Hacker News
pjmlp · 2017-03-10 · Original thread
Well there is one of the best books on the subject.

"Introduction to Algorithms"

gte910h · 2014-06-24 · Original thread
1> Do you have a "Real" CS degree?

If not, doing a good portion of the exercises in some books on [compilers](, [DFAs/State Machines](, Algorithms ( and theoretical programming ( can give you some common foundational lenses with which to see these articles

2> Learning the history of your field

Nothing informs the current state of the field more than how we got here! Learn the foundation of your field from people who lived it. The podcast [Debug]( is Guy English (Creator of Napkin and other apps) along with Rene Ritchie interviewing people about the history of Cocoa and CocoaTouch

I found [this episode about AutoLayout and Key Ferry illuminating](

3> Go through early versions. Few systems START complex. Look at OLD books for EARLY versions of systems, and why old php made such silly choices is obvious (hint, they weren't that silly for what it was doing). Read books and commentary through the timeline. Understand the history of what's happening to the language, then you'll understand why you are where you are.

4> Go DOWN the stack. Understand the bottom of Objective C by reading [the open source implementation of Core Foundation and more]( Also available elsewhere (and I think somewhere on Apple's Site still).

5> Do what you shouldn't! Don't ship it, but really use those implementation details to do something awesome and amazing. You'll learn tons about what's happening.

PS: To the mods, those aren't affiliate links

artmageddon · 2012-10-08 · Original thread
This is a very good book:

I will say though, it's really intense on theory, and it requires a good background in math. A lot of people will recommend this book though. Also, it's physically heavy :)

Fresh book recommendations delivered straight to your inbox every Thursday.