It is difficult to differentiate these two words. I think it helps a bit to say "fast" refers to movement, "quick" to reaction. But a lot of uses are idiomatic and a matter of the dictionary. A clean differentiation of "fast" and "quick" is not possible as there is an overlapping area. The matter is complicated as "fast" has two meanings, it can refer to speed and it can express firmness. Dictionaries should have two entries, but often "fast 1" and "fast 2" are intermingled in one dictionary entry.