I've been in the field since 1978. I've written code in approx 15 different languages (or variants thereof). I've been a systems development manager (aka Project Manager) twice. I've written web-based applications, client-server apps, embedded applications, web-pages. I've done a significant stint as a database designer in a couple or three different RDMS.
I've got to add that gurm42 and DarkXeno have pretty much nailed it. You don't progress/advance unless you first know how to communicate. No matter what anyone else says, it's all about the client, the customer, your user base. If you can't translate the techno-babble into "civilian" language of 3 syllables or less, you will not succeed. In addition, you need to fully understand what it is you are attempting to communicate as you will often have to come at the communication problem from two or three different directions until you stumble upon the combination of terms and concepts that your audience understands - and you often must ensure that they really do understand and aren't just blowing you off to get rid of you
If you are placed in a position where you have to fight for funding, you need to be able to translate it into language of 2 syllables or less - think about Scott Adam's "pointer-haired manager" and you'll understand why.
If you get into ANY line of work for the money - you will fail or be miserable. In the best of all possible worlds, one's vocation would also be their avocation.
To be in software, one must be twisted in a very strange way - you have to be able to suffer having the computer tell you that you are an idiot multiple times each day and get a special sort of glee in your soul when a block of code actually does what you designed it to do. Very strange people are software programmers/analysts/designers/engineers (these are all different
I don't know that this has help you at all, but I do hope it's caused you to think in different directions, to widen the horizons of your search and research.
Just a final cautionary note: Be careful about turning a hobby into an occupation. It's a sure way to kill the pleasure you once took in taking up your hobby.