учиться is used to express length of time, a continuous action. я учусь готовить = I am learning how to cook (no defined end, I am still learning) я научусь готовить = I will learn how to cook (the action will be finished, it has a defined end.)
On Wiktionary, it says учиться is the reflexive and passive verb for учить.
Учить is either to teach or to learn (words, languages, but not skills)
Приготовить is perfective, so it refers to an individual, completed task of cooking something. You don't want to learn how to "have cooked" something, but how to do it in general, irrespective of the time it happens. For this, the imperfective готовить is used.
"study" would rather be translated as "изучать"/"изучить" (focus on the process/continuance), while "научиться" is all about the result. You use "научиться" when you are talking about obtaining a particular skill.