I start by reading a good manual/book/reference/YouTube lecture (you got the point) and code the examples as I go along. Even the "Hello, world!" (or its FP equivalent of either factorial or Fibonacci sequence). (By the way, it's interesting to think why FP's "hello, world!" is factorial or some such, as "Hello, world!" is, by definition, output, and in all pure FP languages output is not straight forward. Sure you do
IO.puts but you don't know what's behind IO actions till you're much more versed in FP in general and the language of choice in particular).
After reading one or two manuals cover to cover I start developing tiny, close-to-trivial apps: connect to Twitter API (and do nothing, just get a 200/OK back), then post to Twitter, delete the post, so on.
Then, when I know I have a feel for the language and its tooling, though I am very much aware I don't know anything of real value yet (e.g. libraries, generally, not just "which is better" but "which?", period, frameworks, etc.) I start reading experienced devs' blogs and news groups and asking thoughtful questions.
At this stage I close to do no dev work at all, the mere basics to keep my dev muscles flexed.
Then, when I have the basics covered and the theory of how to do the real cool stuff... it's time to hit the good old Spacemacs and churn out one bug after the other... then debug the (BEEP)ers and so on so forth till I get a working module I can use at work/personal interest/etc.
Then I do it all over again for (insert_new_language_name_here).