Face recognition is an active area of research in computer science. Unlike simpler image processing tasks like resizing, sharpening, or adjusting colors in an image, where the basic algorithms are well-known, there are many different approaches for face recognition. Today, there are lots of approaches that seem promising, but most ideas are still rather new, and none of them are anywhere close to perfect, so it's harder to find a good tutorial on any one.
If you want to write or implement a face recognition algorithm, one thing you will definitely need is a collection of face images that are already labeled. If you're just trying to detect faces, you'll want images labeled with the location and size of all actual faces in each image. If you're trying to recognize specific faces, you'll want a database with thousands of people and all of the different pictures of the same person clearly labeled as such. You'll need these images both to train your system and to test it to see how well it works.
Luckily some free databases like this are available online, but some commercial companies are able to get an edge over competition not just with a better algorithm, but with a larger and more extensive collection of training data.
In any case, face recognition is very complicated and there aren't any short, simple algorithms that work very well at all. Most approaches require advanced signal processing and linear algebra, for example.
You will need to study textbooks on signal processing, linear algebra, pattern recognition, machine learning, and computer vision just in order to understand the latest research in this field. Once you are comfortable with the basics, you can use a website like http://www.face-rec.org/ as a starting point to start reading some of the more influential papers.