EEG signals consist with lot of noise. Fast Fourier Transform (FFT) , Short-Time Fourier Transform (SFTF) are some of known techniques for pre-process these signal. Is there any better solutions? what are the pros and cons of each technique?
It depends on signals. Fourier transform does not work with nonstationary noise and signal with abrupt changes, It is better to use wavelet transform which can be used to remove both stationary as well as nonstationary noise.
Actually it depends completely on what type of processing you want to do for example if you want to remove the eye blinking artifacts, there are different techniques you can apply such as ICA, CCA. for more detail you can visit this website (https://sccn.ucsd.edu/eeglab/index.php) and download the EEGLAB toolbox
If you have a noisy signal and you are mainly interested in high frequencies I suggest using the Multitaper time-frequency analysis. It is basically the result of averaging several STFTs using different windows (slepian tapers) , which reduces the influence of the noise and gives you a cleaner result. A con of this method is that the averaging will smear the signal's power visualized on the time-freq analysis.
For more information, please consult:
Percival, D. B., and A. T. Walden, Spectral Analysis for Physical Applications: Multitaper and Conventional Univariate Techniques. Cambridge, UK: Cambridge University Press, 1993.