There may be people that whine and quit, but coding isn't some magical talent that can't be learned. The problem, often enough, is that people that have learned it have forgotten how they learned it. They've forgotten how much they owe to others and others' code for what they know today. Most of the bitrot of libraries stuffing up Github only serve to obfuscate and confuse. Anyone that has honestly tried for a few weeks might profit from a hint as to what they aren't seeing instead of chiding about not being masters at C/C++ or whatever one tends to smoke. The lack of serious collaboration means that there is no ecosystem, just noise. It really can't be that hard to get working wrappers for the AT firmware up somewhere with a change log for what works with which firmware (changes, enhancements, known issues). I just find it really difficult looking at the chaos but I don't have enough of an overview to organize things yet.
Again here, if you are learning or an athlete and are never frustrated, then you probably aren't doing it right. Everyone needs teachers and I would guess most of us have had a few. How we learn new things depends on what we have learned before and also how. Increasing the future user base of competent, enthusiastic coders interested in using your product would normally mean offering some early successes and also the chance to learn in a systematic way. There is significant room for improvement in these areas in the entire Arduino ecosystem from my experience so far.
For my part, I'm still beating on getting simple UDP code running with any stability. I have full debug of AT commands running, but it still needs some sorting and perhaps some research on firmware issues. Things hang at so many random points that it's really a handful finding out what's going on.