Metamaterials and their two-dimensional analogues, metasurfaces, have recently attracted enormous attention because of their powerful control over electromagnetic (EM) waves from microwave to visible range. Moreover, by introducing explicit control of its sub-wavelength unit cells, a metamaterial can become programmable. Programmable metamaterials may not only host multiple EM functionalities that can be chosen or combined through simple software directives, but also be provided with means to adapt to the environment or communicate with other metamaterials, thereby enabling a myriad of applications in sensing, imaging, or communications. The realization of such a software-driven cyber-physical vision comes, however, at the cost of significant hardware requirements. In this paper, recent progress in the field of programmable metasurfaces is reviewed, cutting across layers from the application down to the device and technology levels. The main aim is to present the current status, main benefits, and key challenges of this thriving research area with a tutorial spirit and from a hardware perspective.