Face Recognition is an efficient technique and one of the most liked biometric software application for the identification and verification of specific individual in a digital image by analysing and comparing patterns. This paper presents a survey on well-known techniques of face recognition. The primary goal of this review is to observe the performance of different face recognition algorithms such as SVM (Support Vector Machine), CNN (Convolutional Neural Network), Eigenface based algorithm, Gabor Wavelet, PCA (Principle Component Analysis) and HMM (Hidden Markov Model). It presents comparative analysis about the efficiency of each algorithm. This paper also figure out about various face recognition applications used in real world and face recognition challenges like Illumination Variation, Pose Variation, Occlusion, Expressions Variation, Low Resolution and Ageing in brief. Another interesting component covered in this paper is review of datasets available for face recognition. So, must needed survey of many recently introduced face recognition aspects and algorithms are presented.