Do I have to do feature selection prior to applying my machine learning algorithm?
There is no definite answer to this. The current trend is not do feature selection and let the classifier decide which features to use. Take current image datasets for example which also have 1000+ features (depending on the image resolution). They are fed to a CNN usually without any preprocessing. However, this is not generally true. If for example you assume to have a lot of correlations in the data, feature selection might help.
My question is, 

Does the machine learning algorithm takes care of selecting the best features in my data ? or shall I do feature selection and scaling prior to my machine learning algorithm.

I am aware of few supervised classification machine learning algorithms such as kNN, Neural Networks, Adaboast etc. 
But is there some you recommend me looking at ?