I get that we have families to feed, but I've seen far too much of a mindset shift in fellow engineers into thinking that we're warcraft peons rather than professionals. "The business" has engineering feedback as a necessary input, and speaking individually with steakholders they expect this - they'll push until we push back.
Contrast this with other engineering fields, where the engineer is truly responsible for the decisions they make. My civil engineer friends face losing their licenses, fines or jail time if they are found professionally negligent. The same is true of other high stakes professions - think doctors, lawyers, even accountants. It's probably not appropriate for most software engineering roles, but for safety critical systems it doesn't seem far-fetched to me.
In regards to letting books get scuffed up, I must say I disagree as well. I like to keep all of my things shiny and new, and my books are no exception.
I find doing this helps keep me honest about whether I'm understanding what I'm reading or just glossing through it, and it helps pace my engagement. If I can't come up with one question or comment per page, I've probably lost focus.
Each of these characters also have a certain order to the way they should be drawn, and from what direction. And at least in Japanese, each one has at least 2 readings (and sometimes much more), a Chinese reading and a Japanese reading, but which one is used doesn't always follow the 'rules'.
A lot of this is likely learned through simple exposure for listening and speaking, but it makes reading and especially writing rediculous.
> You could build a chatbot that supports Discord, Slack, and IRC dynamically at runtime...
As a counter-point, OOP isn't necessary for dynamic dispatch.
None of these dynamic features you describe are necessarily any harder in non-OOP languages — or easier in OOP languages.
You can do the same kind of dynamic dispatch in Elixir, Go, etc.
OOP really is a preference, not a differentiator.
Source: I cut my teeth on OOP and used it for many years. Been using Elixir for the last half a decade, and have zero loss of ability to do things like this.
Polymorphism (including dynamic dispatch and duck typing) is a game changer, in that it encourages simple, stable interfaces, enables testing, encourages encapsulation, etc. It's a key technique for building big projects.
Inheritance is a tool for reducing the amount of code written by a human, among many others (things like code generation and composition) I haven't seen it unlock other important conceptual domains the way polymorphism does.
Unfortunately many undergraduate curriculums get overly excited about inheritance when teaching OOP. I guess animal-cat-dog is an easy example (though totally unrealistic), but the problems polymorphism solves don't often show up in classroom-sized projects.
But with maths I think it's a bit more subtle. Just the tiny things (even just 'talk' math) you do in early education can make a massive return later. There is no 'mean' in maths education even in ages 4-10 (my kids). We live in the Netherlands, that scores quite well in the table. And still I think math education is at least unambitious for the higher percentiles.
With just a few minutes here and there I've managed to get some pretty abstract concepts in their thinking (say: zero and the empty set, that's something small kids understand intuitively / or the first algorithms with russian multiplication or divide and conquer). There's no need for pushing, and still I think I've already help lay a good foundation of math in my 10 year old. No more than 30 hours invested in math his life.
Software engineers seem unique among professionals that you’re expected to maintain a hobbyist body of work that’s also your professional calling card.
Excuse me? The "silent majority" was the set of Americans who were for the war, not (loudly) protesting against it. Nixon was all for continuing the war.
I feel personally described by this statement. At least on a bad day, or if I'm phoning it in. Not sure if that says anything about AI - maybe just that the whole "mental models" part is quite hard.