Given the three-dimensional structure of a protein, how can one find the sites where other molecules might bind to it? Do these sites have the properties necessary for high affinity binding? Is this protein a suitable target for drug design? Here, we discuss recent developments in computational methods to address these and related questions. Geometric methods to identify pockets on protein surfaces have been developed over many years but, with new algorithms, their performance is still improving. Simulation methods show promise in accounting for protein conformational variability to identify transient pockets but lack the ease of use of many of the (rigid) shape-based tools. Sequence and structure comparison approaches are benefiting from the constantly increasing size of sequence and structure databases. Energetic methods can aid identification and characterization of binding pockets, and have undergone recent improvements in the treatment of solvation and hydrophobicity. The "druggability" of a binding site is still difficult to predict with an automated procedure. The methodologies available for this purpose range from simple shape and hydrophobicity scores to computationally demanding free energy simulations.