Coming to electronics as a hobbyist I'm not sure I understand why I have to solder header pins? On more than one occasion when dealing with Arduino / breadboard projects the circuit will not work until the header pins are soldered. Holding them in place will not solve this problem. Why? Low voltage? Need for persistent connection? Holding them in place doesn't work nearly as well as it looks like it should? Why?
Think about it mechanically - you have a straight row of pins and you insert them in slightly loose fitting holes (all in a line). Even if you hold them in place - can you be sure that one of the pins isn't fractionally bent in one direction different to the others. Think about this for a 3 pin header: -
Clearly the pin in the middle isn't touching the inside of the yellow hole until you put unreasonable amount of pressure on the connector. Please, no complaints about the colours.
The holes in the PC board are somewhat larger than the pins on the header so that you can easily insert the header. The normal headers are intended to be soldered into the board. Because of the loose fit of the pins in the holes, simply placing the header in the board without soldering will not ensure a good connection.
There are "press fit" headers available that will make a secure connection when inserted into holes of the correct size - but there is no guarantee that the common boards (Arduino shields, etc.) have the correct size holes to accept the press-fit headers.