My two approaches to learning (programming) languages
In the surgical strike, I focus on learning just enough of the new language (and its libraries) to write the little program that I want. Surgical strikes work best in 'obvious' languages without dangerous surprises, ones that are similar to things I already know, and on relatively simple problems that the languages are good at dealing with. I've started learning a whole lot of languages through surgical strikes, including both Perl and Python.
(For example my first Python program was a quite simple 20-line script
to scan a directory and generate a
lilo.conf that corresponded to what
kernels were there. Yes, this was quite a while ago.)
The advantage of the surgical strike is that it gets me results fast, both solving my immediate problem and giving me firm evidence that I'm getting somewhere with the language. The drawback is that each step doesn't get me very far; it can take a lot of surgical strikes before I actually really know a language (and generally I will stop trying to do surgical strikes at some point and just thoroughly learn the remaining stuff).
The two are different experiences for me. I wouldn't call one better or worse, although it's easier to stay motivated with surgical strikes.