Obviously in reality experienced practitioners fall somewhere in between. The engineer prototype gets good at predicting how much theory will be valuable for communicating to others and to their future self. The compsci prototype gets good at predicting where it'll be appropriate to sacrifice theory for the implementation. But sometimes I'll hear someone talk about code, and their approach to that split seems far louder than their words.