> You can learn from everyone around you, regardless of their status. There is no "universal developer experience curve", everyone has more or less knowledge on a field or with a specific tool/framework.
There's a big difference between learning from someone and having someone teach you something. The latter expedites your progress and clarifies learning path, whereas the former can even waste your time with political fights pulling you into dead-ends.
> The problem is that programming languages have always focused on the definition side of types, which is absolutely necessary and good, but the problem is that only limiting use by, e.g., "protected, private, friend, internal, ..." on class members, as well as the complicated ways we can limit inheritance, are barely useful.
Virtually all software ever developed managed just fine to with that alone.
> I don't know of any programming environment that facilitates properly specifying calculating something even that basic in the init phase of running the system, (...)
I don't know what I'm missing, but it sounds like you're describing the constructor of a static object whose class only provides const/getter methods.
> or even a db table's row(s).
I don't think you're describing programming language constructs. This sounds like a framework feature that can be implemented with basic inversion of control.
> For every project/job/app that needs the AWS levels of resilience (...)
I don't think you're framing the issue from an educated standpoint. You're confusing high-availability with not designing a brittle service by paying attention to very basic things that are trivial to do. For example, supporting very basic blue-green deployments that come for free in virtually any conceivable way to deploy services. You only need a reverse proxy and just enough competence to design and develop services that can run in parallel. This is hardly an issue, and in this day and age not being able to pull this off is a hallmark of incompetence.