My rule of thumb is that most everything you know now will be useful, but mostly obsolete in ten years or less. That makes extracurricular learning a constant and ongoing process. There are a multiple ways to accomplish this. The best way will depend on your learning style. The areas you study will depend on both your interests and available opportunities.
You already have a Bachelor's from a good school. An additional degree in computer technology isn't going to deliver a lot of value. You've been working in embedded systems, which can be its own little world sometimes. But at least where I live, good opportunities abound. If you like it, you can stay there, or you can branch out. I moved from embedded, to systems software, to application software. I still like embedded programming.
If you want to branch out, it's vital that you know your goal. It can be exploratory, or it can be more concrete. There's room for both. But, be prepared for some major time commitments. You can find lots of resources for self directed learning with a little searching. If you need a classroom setting, Extension courses are good resource, albeit expensive. Don't forget to check your local community college. Our local CC offers an excellent introduction to the Java programming language. It's always filled.
Online tutorials in most subjects are plentiful, and there are more traditional books and study guides. Study groups are another resource, if you find a good one. They have the advantage of expanding your social and professional network too.
My personal mix is mostly books, online articles, and fiddling around doing something useful for someone else. I also attend a couple of conferences I find particularly useful. However, I do appreciate that there are times when a structured approach is best. I find it most useful in abstract areas like UML, or other methodologies and particulary complicated subjects like optical engineering. You get to determine what's best for you. There's no canonically right way.