Name: Super Hell !JM1IoNO1/U 2018-03-25 7:52
Ask me anything.
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
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".Top-down thinking is not bottom-up thinking that starts on a higher level. The top-down approach is when you start from the requirements and work your way down. Top-down is about whole systems, big picture, global optimizations, and the realization that systems do not have to be designed the same way. Top-down thinkers built many different kinds of computers that implement common concepts in very different ways, like high-level language computer architectures. Bottom-up thinkers think of things in terms of a specific implementation and adapt to this implementation.
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.Top-down thinkers want to know the purpose of everything because computer systems are designed by people. Top-down forces you to find where the defects and bottlenecks really are and fix everything that doesn't make sense or is counterproductive to the user.
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.Top-down starts at a higher level and ends at a lower level. The top-down approach covers the user interface, programming languages, operating system, data structures, hardware, libraries, and APIs, and nothing is off limits. If something is stupid, you will change it, not rationalize it. Most students do not have the mental grasp required to think this way.
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.This describes bottom-up thinking, where you are told to build everything from what already exists but not change it. Top-down thinkers are the ones who understand everything can be improved and simplified.