The ability to perform enzymatic function by harnessing random molecular motion into self-organized protein structures is one of the most fascinating results of evolution. A close interplay between theory and experiment is driving the progress in understanding the principles that determine the behaviour of proteins. New techniques that significantly increase the amount of information obtainable from experimental data have been recently proposed; it is now becoming possible to describe at atomic resolution the events that take place during the folding process. Successful predictions of these events are being reported at an increasing rate and general principles are being outlined.