Thank you for your perspective. I think we are 100% on the same page here and take your point. The lack of formal programming for even graduate students is a crisis in the profession. And not just programming, but basic software engineering and numerical analysis principles as well.
Perhaps the only difference is that I see the DSGE oriented stuff as of sufficiently narrow interest that people are better off learning those tools for other sorts of models (and then just let Dynare take care of the basic perturbation solutions) and spend their time learning to program on global solutions/etc. wher there isn’t a package that implements it. But I acknowledge that part of that may be my bias in what are likely to be useful methods for cutting edge research.
These things are also not mutually exclusive: teach people to program a basic perturbation solution, maybe using autodifferentiation as an example, replicate the dynare solution, then tell them to throw out there own code (since using trusted and tested packages is the first rule of software engineering).