You appear to have a great attitude and good command of English. You'll be fine.
Decide whether you want to get into low-level systems and/or embedded programming or whether you want to go higher in the stack.
Personally I think the further you get away from hardware, the better off you are in the long run. Delve into C#, F#, JavaScript, Python and/or Ruby. If you're a visual learner, I highly recommend signing up for PluralSight - it will help introduce you to and scratch the surface of many modern (high level) technologies and languages. The next step will be up to you - to dig deeper. Set up a GitHub account and look to join any open project as a contributor. Read hacker news (news.ycombinator.com) religiously to see industry trends. Interacting with other SW engineers will be key in helping you learn - hacker news is where they rave and rant.
A book I highly recommend is "Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman". It's a small, light read but every page is valuable, great for the growing mind. Now with your HW background you have an edge amongst SW engineers in getting your foot in the door in IoT and embedded (medical) systems. I would try to ride the Skynet Drone Wave™ that coming upon us (against our will). Especially with San Diego being a DoD/military zone. Arduino (spelling?), Raspberry Pi, and other platforms that are traditionally scary for software engineers to get into - should be more welcoming to you. Should. Database, Data architecture is another beast for another post....