I’ve spent much of my career straddling two worlds: systems adminstration and programming.
Sysadmining is the world of unix, processes, filesystems, daemons, networking, and servers. Sysadmins are all about getting hands-on: solving a specific instance of a problem, rather than the entire class of problems. You could call this ad-hoc and shortsighted. You could also say that it’s just being pragmatic and realistic: solving a real problem, today, right now.
Programming is a world of design, theory, and elegance. Programmers are notorious for prefering solutions which are elegant over those that actually work. It’s not about solving a particular instance of a problem: a good programmer wants to solve all the problems of that sort, now and forever.
People’s personalities tend to lead them into one area or another. For some reason I always saw the value in both. Or actually, I never even realized that there was a divide. I thought of them as being different aspects of a more general category: how to make computers do your bidding. Only when I got my first jobs and started working on development teams it become clear that there were two camps.
There’s no moral to this tale, it’s just an observation.