Youtube has a number of video trainings on SPI.
If you are going to work with serial busses a logic analyer very useful.
This is just one of many using Saleae (free software for download) and
Yes, its exactly as you describe. SPI has no specific 'read' function. Its always the master writing and the slave answering - its just that some bytes might be dummy content. Use the SPIBusIsBusy() function to wait for the end of the SPI transfer.
One caveat though: when you are using a buffer larger than 8 bytes, its handled by software. If then the SPI clock is fast enough, sending data out might be faster than the ISR can deliver new data, and the SELECT signal goes high again inbetween the bytes. (might even happen with the hardware buffer when data cannot be put fast enough into the TX FIFO)