For me, realistically, it's sort of a mix of both (here I'm mostly talking about using specific packages in my codebase). I definitely prefer knowing exactly what I have available in my arsenal as well as specifics as to what each tool does with as much granularity as possible before starting. However, in reality, I learn best by doing, and it actually helps to use a library/tool sub-optimally at first but then refactor my codebase as I build it. That approach also helps me to better see and understand what I'm constructing as well as introduce performance tweaks and improvements along the way.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.