This video introduces what generic programming is, along with the different kinds of functions, namely: function, class, and method templates. After tackling the basics, this will help you keep in mind that codes should not be all about the templates. This is mostly for the C++ developers who has not been using templates so far.
The second part of the discussion is where Templates go into more depth. This video takes you to template specializations and learning more about techniques.