I actually picked up React Native before picking up React, which made picking up React fairly easy since I already knew how to do web development and had experience with both jQuery and Angular.
I also had a decent amount of experience in teaching / training, having started both a meetup and a coding school in Mississippi and given dozens of talks and workshops leading up to that point.
I first heard about the idea of technical training from The Freelancer's Podcast, and learned that some technical trainers were charging up to $20K per day. This caught my attention and I intentionally pivoted into training at that point to see if I could land some of those opportunities.
Content marketing and having a well designed (even basic) website to funnel leads into is probably the right approach. Also positioning yourself as a specialist in some area is probably a good idea. I wrote a post about getting into consulting here.
Re: Public speaking
I got into public speaking by starting my own meetup because I could not land any speaking opportunities. At my meetup I would give talks, and some of them were recorded. I was then able to use those recordings to start landing speaking gigs at various meetups and conferences. At first I would even pay my own way to travel to speak, though as time goes by you start having opportunities where the conferences pay for your travel expenses.
I think the best approach to speaking is to "just do it", but go prepared. Practice your talk as many times as possible. Also consider starting small, at meetups, before going into larger events!