Preface: I am really bad when it comes to remembering names.
One thing I did when I started my current job, was drawing out a floorplan with the names of people at their desk position, their project (and role if known).
Sure it was far from complete on day 1 but it helps me learn and remember the names of everyone.
The movie 'Nerve' [1] immediately comes to my mind.
Some supervision about what dares are acceptable is definetly necessary. Otherwise thinfs might get out of control rather quickly.
As with any tool, it depends on the person using the tool.
Just because someone gave you a sword doesn't make you a swordmaster. You might kill somebody, but a real master of the tool, maybe even the inventor, is much more capable.
Someone who knows some piece of software knows when, where and under what circumstances it aids the most.
Another take on this subject: Once your manager comes around looking for someone that could help / take on a highly low level task / project, you won't be the right fit if you don't feel comfortable or have the required knowledge.
(chicken or egg problem)
You don't get to work on the fun stuff because you don't know the fun stuff
Didn't grow up poor, still in it for the money. Every other benefit that comes with it ( highly flexible workibg hours, intelectually teasing tasks) are just bonuses on top.
Can't remember I ever wrote a line of code that hasn't been paid for (except whilst studying)
The one thing that pushed me to follow this path was a joy for pc gaming, an enthusiastic teacher and income per profession rankings showing that computer science pays quite well.
As you stated yourself: Most projects, not all.
The 1% of project that are performance critical still matter to thousands of engineers.
Only because most people don't have to do this there are still some people that have to do optimzation where possible.
I hope you understand that optimization without profiling is worthless. Once profiling is identifying something like your datastructure as some kind of bottleneck it might be worth a shot investigating that hint.
And these kind of articles are a nice summary of work being done, giving an overview over techniques and small tweaks that you might not have thought about previously.
It is good work by the author and he deserves being recognized for it. Not being dismissed by the bland statement don't waste your time with optimization.
What good is maintainable, easily extendable, neatly structured code when it's slow and doesn't meet the execution time criteria imposed by your client?
Your assessment of the situation encourages mindless ignoring of optimization.
It always depends on the situation. Stuff that is done once in a moon... idc as long as it's reasonably fast.
For stuff that's on the hot path you sometimes have to pull up your sleeves and optimize where possible.
At work I just had to implement a heap just because the heap provided by the standard libs wasn't fitting our problem.
Please don't discourage people creating this kind of content. It matters to far more people than you might have in mind.