I begin to see why capitalism
works and also why it
sucks. It works because it encourages people to find the crack into which they pour their intelligence, no matter how small. Capitalism is fractal in its complexity! Value is like a vein of ore, that may split off from a larger vein, and so be ignored by the larger corp. Fucking crazy man.
What is software here? It is a person doing drugery! We are only 2nd order drudgery doers. But we know a secret: drugery is fascinating, complex, demanding and best of all, objective. Either your work works or it doesn't. Nature is the final arbiter. The satisfaction inherent in mastering Nature is sublime. Our profession, software programmers, architects, etc, are a subset of that, since the limit of our work is to control a large array of bits, and control their behavior over time. We segment these bits into interpreter, bytecode, source code, or in some other way, but it is all the same. And we programmers are constantly in battle over the coupling between text (which is actually "composed keyboard motions") and its "destination" - which is of type string, too. Something even more general than a url. If a url is http://javajosh.com then a "destination" would be something like 'me/mylaptop/linux/firefox/http://javajosh.com'. That's a string "javajosh.com" that went into a particular browser, on a particular machine, with fingers attached to a human, me. In this way we could characterize a human as a monotonic list of "destination" strings.
Anyway, what I'm really trying to say is that we're in danger, we programmers. It's not enough to go through a bootcamp and get hired to make progress on a specific project. Software ate the world, now the world is software. But software doesn't stop eating the world. The next go around is going to be dominated by AI. Your typical "Java Enterprise programmer" is probably going to be a software agent. I believe that the "human winners" will be those who either a) take advantage of AI programmers or b) maintain the best software engineering discipline to make better programs. It's not going to be long before you can feed a program a sequence of images describing the application you want, and they'll make it for you. It may even be a bog standard webapp that a human can understand and debug.
Humans can fight back by minimizing your runtime image. Fewer LOC, fewer deps. Humans are on a more even footing with AI when you minimize complexity. This, in turn, means understand your platform. And this differs for everyone. For a java programmer that means dwelling in the java community. But it's more than one community - in fact it's a list, a chain of them, in a loose hierarchy of "framework", "library", and so on.
Note that to dwell in a community means to consume a life. It means to actively and meaningfully participate, read posts, respond, and be aware of who's who and how things get done. It takes time. It's bad if this is just something you're paid to do. And, IMHO, this is the appropriate "zone of professional specialization". My ideal enterprise would have N employees where each employee was a central figure in each of our dependencies. That way, if push comes to shove we can soft-blackmail them into a (one-time) supply-chain poisoning attack virtually impossible to defend against! I kid - I just want to support open source!
Anyway, something like this is what I had in mind instead of "Thanks." Except I was going to write about microservices and kubernetes!