While I hardly think I should be doling out advice …
In algorithms, there have been a lot of postdoc positions advertising on the two main email lists, TheoryNT and dmanet. In my experience, many of the positions are in Europe. I’ve found that a lot of postdoc’s get their position by word of mouth.
I think, by far, the best thing is to get a postdoctoral fellowship. Freedom! It seems NSF doesn’t have a fellowship program for people in computer science. (Is that actually true?) But I have seen (and ignored, as I am not an American citizen) plenty of postdoc fellowship programs for Americans. If you aren’t American, try your home country. NSERC has great fellowships for Canadians that you can take out of the country if you got your Ph.D. in Canada and is tax-free if you take it to McGill. The short of it is, if you have a fellowship you have the academic freedom to study what you want to study. You can work with whoever you want, whether or not they have a research grant to pay a postdoc.
I’ve also thought that if you plan far enough in advance you could contact someone you really want to work with and convince them to write a grant with your help that includes funding for a postdoc. Any thoughts of whether that would work? I know NSF now asks for an “advising plan” when requesting funds for a postdoc salary. Would having the potential postdoc involved in the writing process help?
And there are schools and departments that have their own postdoc program – I think U. Penn and U. Toronto do.
Any other suggestions?