#OOP. Yeah it's got a weensy bit of currency as a hashtag here.

I am slightly unusual in having three degrees, covering all three major divisions of U.S. "higher #education":

1) the sciences, with my #chemistry degree;

2) the humanities, with my #Classics degree;

3) (by far the biggest division of U.S. college schooling) vocational pseudo-disciplines, with my SDSU #computerscience degree.

There's a lot of unpleasant things I can say about the University of Washington and its shrivelled #Chemistry department, but at least I learned quite a bit of new stuff while I was there, fundamental knowledge about analytical chemistry and other things. The #Classics degree I credit with teaching me how to write and think in a reasoned, educated way, and with giving me a taste of civilization: I am hardly L'Uomo Universale (scarcely anyone is, aside from Leonardo da Vinci-chan) but my Classics degree opened my eyes, as they had not been previously opened, to the benefits of a truly general #education.

And then, there's my #computerscience degree, which got me a couple jobs, up until I left Amazon dot com under my own power in mid-2001, whence nobody in the #tech sector wanted to hire me for anything, because they regarded me as a quitter. I was actually told that explicitly at one interview. So the vocational pseudo-degree I'd gotten for the sole purpose of making myself employable was now worthless.

Not all the SDSU CompSci classes were completely valueless, I will admit, and at least being in that degree program allowed me to meet sci-fi writer (now departed) Vernor Vinge, who signed my copy of A Fire upon the Deep (which I eventually lost somewhere between moves). I took elective classes in #artificial_intelligence and learned some Common Lisp. But most of what I remember of the #compsci curriculum at SDSU in the 1990s was rather faddish, and I expect that's typical of most such curricula. I wasn't getting a well-structured and rigorous academic discipline; I was getting a collection of vocational exercises, learning how to use #programming tools that happened to be popular at the time. So I ended up doing a lot of C++ homework, and in my last term (when I hurriedly took a bunch of CS classes I'd been putting off because I was putting far more effort into my Classics curriculum) I had to do #Java homework, for a required "object-oriented programming" class.

Ah, #OOP. The very acronym suggests a blunder.

There's no shortage of "object oriented programming is bad" hot takes online, written or delivered by people who have incomparably more #programming experience than myself and who thus might have far better reasoned objections to the paradigm. Complicating the picture is that the two #OOP languages I learned to use in my education, C++ and Java, might simply be bad languages and thus a poor basis for rejecting the OOP paradigm outright. Maybe if I'd learned Smalltalk or Objective C in the 1990s instead, I'd be talking differently right now.

What especially annoyed me about OOP, at least with C++ and Java, was that it seemed superficially intuitive—all the tutorial writings on OOP love to emphasize how "natural" the paradigm supposedly is, attuned to how human beings purportedly conceive of physical objects—and yet in practice, it seemed to lead me into a confusing morass of object hierarchies and agonizing over interrelationships with an ever-multiplying population of classes. So often it seemed like I needed to define clumsy workarounds to the inflexibility imposed by just those features of the language touted as advantageous for "object orientation".