Developing coding skills
Welcome to the community! It's nice to see interest from people who come from other angles :) 

Although this type of question isn't suitable for this platform, I'll try to answer anyway. If you want more help I recommend you try chatting on IRC with other Drupal developers and see what they recommend. 

Unfortunately no one has managed to write a programming book for non-programmers, at least I'm not aware of any. If that were possible then no one would write programming books for programmers ;)

You'll probably need some PHP intro course if you want to start with Drupal, then pick up any Drupal development book that is beginner friendly. 

You could probably also get by by using code snippets available online in tutorials and on drupal.org. There's plently already available if you're trying to solve common problems. 

But the Drupal projects don't include only the engine part, there's the database side of things. You can try to learn basic SQL. There are excellent books you can find, and plenty of freely available intros online too.  

You mentioned patches, that is a workflow side of things, versioning code, you need to learn Git for that. Also a lot of free online help in that department. 

It's a long way to go if you're a newbie but want to get to a point where you can solve most Drupal problems yourself. If you're not doing it for your own pleasure, if you want to build projects for others, maybe honing your existing skills would be better, in partnership with someone else who complements you. There are plenty of Drupal programmers who can't CSS and don't have the breadth and depth of knowledge about existing Drupal modules, how to configure Views for common cases etc.