>>10That is a good question. There seems to me to actually be a duality (both points have some validity) between abstracting away complexity and not hiding it at all, but learning its internals fully. You could say the first is the top-down approach and the second is the bottom-up approach. But there is a difference between necessary and contingent complexity, and from a strictly top-down approach you'll never be able to discern the second from the first, but will think all complexity in the tools or APIs you use are necessary, and you just need to "adapt". Likewise, in a strictly bottom-up approach, you might see many defects in things and feel compelled to reimplement them the right way, or just whine about them, without considering the cost upon yourself to embark on each quest, or where your time might be better employed. You could say the top-down is shallow and dives and emerges quickly, while the bottom up is deep and gets to see what most people don't see. But, as a technology or school or field popularizes itself, it starts inevitably getting biased towards the first approach, because most people who join it will start of course with a shallow vision, and most people won't get very far into it, but stay where it is "good enough" for their purposes, or in some other way stabilize while adopting "good enough" tools which abstract things away so they're never questioned.
I do not know what I may appear to the world; but to myself I seem to have been only like a boy playing on the seashore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me.
- Isaac Newton
Regarding SICP, I say it can be worthwhile if you're seeking understanding, rather than learning current technologies for employment. I am still a student, so I wouldn't know, and I remain a hobbyist that uses Scheme on his many projects and is struggling to find a cloud-based hosting service that supports Scheme deployment.