Proof search for the structural synthesis of programs (SSP)- a deductive program synthesis method which is suited for compositional programming in large and is in practical use in a number of programming environments is explained. SSP is based on a decidable logical calculus where complexity of the proof search is still PSPACE. This requires paying special attention to the efficiency of search. The practice of application of SSP has given its several modifications and extensions. Besides the general case of SSP and its strategies, we present synthesis with independent subtasks, a number of heuristics used for speeding up the search and partial deduction in the framework of SSP.