How to filter and downsample before FFT?
The process of changing the sampling rate by an arbitrary fraction $\frac{n}{k}$ is called resampling.  It is basically just interpolating and decimating at the same time.

It sounds like you are trying to go from 44100 Hz to 4000 Hz.  If so, that requires a sampling rate change of $\frac{40}{441}$, since $44100 * \frac{40}{441} = 4000$.  As a practical matter you don't want to do really large sample rate changes (like decimating by 441) all at once because it is very difficult to implement filters that can do that.  We thus try to break it down a bit into smaller steps.

If you factor the interpolation rate, 40, we see that it is 2 * 2 * 2 * 5.  We can likewise factor the decimation rate to 3 * 3 * 7 * 7.  One simple way to do the resampling, then, would be to do it in four steps like so:

$44100 Hz * \frac{2}{3} * \frac{2}{3} * \frac{2}{7} * \frac{5}{7}$

If you are trying to minimize the computational load you could rearrange the order of the resampling to reduce the sample rate as quickly as possible.  That would make the later resampling steps less computationally intensive because they don't have to work on as many samples.

$44100 Hz * \frac{2}{7} * \frac{2}{3} * \frac{2}{3} * \frac{5}{7}$

You could also combine the two $\frac{2}{3}$ resamples because their product, $\frac{4}{9}$, does not have any large numbers.  That leaves us with the following-

$44100 Hz * \frac{2}{7} * \frac{4}{9} * \frac{5}{7}$