If you prefer more structured learning then online courses are probably best as they tend to be more current. However most of the good coders I know would just grab a reference and start writing code. There are countless programmers out there whose only experience is in a high level language, and don't properly understand how things work at a lower level. If you are good in C and C++, you can better understand what the higher level languages are doing under the covers. C++ is far more complex than these other languages.
If you can't figure out a good pet project, then start solving problems in books like "Programming Challenges" or "Elements of Programming Interviews" in your new language of choice. Porting software is also a good way to learn about a language. I learned Powershell by porting a bunch of Perl scripts.