  This work has two goals. The first is to provide a conceptual introduction to
Heegaard Floer homology, the second is to survey the current state of the
field, without aiming for completeness. After reviewing the structure of
Heegaard Floer homology, we list some of its most important applications. Many
of these are purely topological results, not referring to Heegaard Floer
homology itself. Then, we briefly outline the construction of Lagrangian
intersection Floer homology. We construct the Heegaard Floer chain complex as a
special case of the above, and try to motivate the role of the various
seemingly ad hoc features such as admissibility, the choice of basepoint, and
Spin^c-structures. We also discuss the proof of invariance of the homology up
to isomorphism under all the choices made, and how to define Heegaard Floer
homology using this in a functorial way (naturality). Next, we explain why
Heegaard Floer homology is computable, and how it lends itself to the various
combinatorial descriptions. The last chapter gives an overview of the
definition and applications of sutured Floer homology, which includes sketches
of some of the key proofs. Throughout, we have tried to collect some of the
important open conjectures in the area. For example, a positive answer to two
of these would give a new proof of the Poincar\'e conjecture.
