What Programs should I start with?

I’d like to learn to create a computer desktop program that talks with Arduinos/PICs. I have a little experience with Arduino’s IDE and Visual Basic 6.0. but need to know more. Biggest concern atm is communications over Serial Ports, I want to learn about handling those communications properly.

Eventually I want to learn about communications over iot, (but figured I’d start with Serial Port).

I think the way to go is probably C++ or C# (as I think that is the closest to what Visual Basic 6.0 used, but eventually I want to create some nice looking programs (albeit very simple programs).

Can anyone suggest where to start? and is there anything on Code academy that specifically addresses communications (with specific hands on classes hopefully)?

Thank you, John