The most efficient method I currently know of to find the first digits of $a^b$ if a is not a power of 10 is the logarithmic multiplication method (that is, calculating $b*log_{10} a$ and extracting the fractional part).
However, the person who answered my first question about first digits of extremely large powers mentioned the idea of using a spigot algorithm to extract binary digits of base-10 logarithms (and possibly in other bases?), but is this method really efficient enough to calculate initial digits of integer powers larger than $10^{10^{10^9}}$ or so (which is about the limit of what is attainable using the logarithmic multiplication method)?
For example, finding first digits of $2^{2^{2^{32}}}$ (i. e. $31592126933723384300418482232511...$) would be equivalent to finding the binary representation of $log_{10} 2$ (not $ln 2$) starting at the 4,294,967,297th bit. Of course, I used the logarithmic multiplication method to calculate those digits, but that took nearly 5 gigabytes of my computer's memory.