"All of the manuals on how to use Mathematica have been written by people who know too much. Their work should be edited by someone like me who is trying to learn what the developers already know."
Luther, I find your basic thesis here by and large accurate. Mathematica does have a steep learning curve and to directly use the more advanced features (particularly the various programming paradigms) one has to think like Mathematica, which for me has not come naturally.
Like others here, I started off with FORTRAN punch cards in college and was simply amazed at what could be done with the "simple" Do Loop. Ten or so years later I stumbled upon Macsyma, anybody remember that ? It was a command line math tool that claimed it could do symbolic math, maybe it could but I did not find it useful. Then I noticed that our Technical Librarian had a copy of Mathematica sitting on her shelf, version 2.2. After inquiring about it I learned that one of the Chief Engineers owned it originally but returned it to her because he couldn't figure out how to use it. I convinced my company to purchase the Premier Support package which offers supurb technical support and over the years would amaze him (and myself) of what could be done with this tool. I also read a few Mathematica books which I enjoyed at the time but that didn't boost my usability knowledge as I had hoped. During and prior to these years I became somewhat proficient with FORTRAN, MathCad, Excel, BASIC, Minitab and Matlab. And from my experience only Matlab comes close to the power of Mathematica if various toolboxes were acquired. Out of the box, Mathematica was a clear winner for my technical computing and data processing needs. And when serious statistics were added (ver 8 I think) there was no need for any other tool.
Fast forward to today, I am still a clunky Mathematica user and I still rely on the basic Do Loop from yesteryear even though much more efficient programming techniques have been available in Mathematica for years. But I've done some pretty neat stuff that no one else in the company has been able to do.
I share the learning curve frustration but I will take a hard to use yet capable tool over an easy to use limited tool any day. And for my technical computing needs, Mathematica has never let me down in the sense that if I could conceive it, Mathematica could be coaxed to solve it; that is powerful.
On a practical note, the approach I have found very useful is to create and maintain a private library of "How To Notebooks" that describe a narrow task that you know you will be facing again in the future. The source material for these may come from the hard slugging and self-learning that you have produced, a call to Tech Support , the online Help, books, or the Mathematica StackExchange site. If I look at my "How To" Folder I see file names like
How to align entries nicely using TableForm.nb
How to compute running averages.nb
How to conditionally extract values from a list.nb
How to convert time formatted strings to numerical values.nb
How to control minor ticks on a log axis.nb
How to create a 3-D surface plot.nb
How to extract algebraic solutions produced by the Solve command.nb
etc.
I find this is far more useful that trying to rely on the built-in Help which, in general, offers a very simple example or two (material that you already know) and then jumps to examples so complex that [literally] some Tech Support Engineers at Wolfram have had some difficulty with, and these guys are good !
Kudos to Stephen Wolfram and his team for inventing, enhancing and maintaining what I think is the strongest technical computing environment on the planet. The professors mentioned at the beginning of this discussion don't know what they are missing.
For an example, that I have put to use in my own work, Google and download the Sandia report Sample Sizes for Confidence Limits and Reliability, by J. Darby.