My company does this all the time...and it drives me nuts.
"I'm a software developer, how do I become a EE?"
Well, I think the answer is fairly obvious. It takes a lot of time and hard work. And of course, the right learning materials. The Engineering background helps, at my university the CS and engineering schools were in the same building with a lot of overlap. The algorithms and math foundations are there.
So, yea learningA mistake I see most newcomers make is to bite off way more than they can chew. Learning materials across UI, architectures, quality code...that's a lot of ground. Something that takes years really and is often done by teams of different experts at software companies. Not
Not to say you can't be pretty decent on your own, if you put in the time. Just recognize the magnitude of the materials so you don't overwhelm yourself and either A. Quit or B. Build major technical debt into your apps by taking major shortcuts in your learning process.
Because of all this, there's no "catch-all" become an awesome dev with this book out there. I recommend you start by picking up a well rated book on your most used language and also participating in the Stack community especially for code reviews.
Try Amazon.com, they have good book reviews.