Your son is a teenager, and it is normal for teens to be angry.
Children believe that parents are the best, know all, can all people. When kids come to their teens, and start measuring themselves as adults, they compare them salves to their parents, teachers. Teens realize that they are not perfect, and yet they need to accept themselves as adults. The only way to do that is to tear down ideal picture of their parents and teachers. This is why they try to prove you wrong, and why they are angry when you are right.
Best way for you to deal with your son is to make yourself not so perfect. Be wrong on some things and ask for his help. Tell him often that he is so mature.