What is the difference between научиться and выучить? I understand that they both mean "to learn" but are they used in different contexts?
+ noun in Dative/verb in infinitive - to acquire a skill (a set of skills)
+ Accusative - to learn by heart, to memorize
Я научился игре / играть на гитаре - I've learned (how) to play guitar
Я выучил названия аккордов - I've learned the names of chords
There's also the verb выучиться which is basically synonymous to научиться but implies greater effort invested or difficulty experienced, something in the vein of
to manage to learn.
And обучиться (reminded of by Alex_ander in the comment below) which is another synonym with a tendency to connect with nouns rather than with infinitives and having a tinge of thoroughness to its meaning.
On the other end there's the verb изучить as a synonym of выучить but indicating a more thorough/exhaustive result or a process.
Still in contrast to изучить, выучить is a bit deficient with respect to imperfective aspect and the present tense as it's almost never used in the corresponding forms, i.e. выучивал/выучиваю/буду выучивать.
1Выучить (кого+чему) can have one more meaning: to teach someone (typically, a soldier) by drilling with a result of giving them a skill in something. "Десять забей, одного выучи" - rephrased Suvorov's words. Sep 1, 2018 at 18:20
1@Alex_ander yes, this is a synonym of обучить Sep 1, 2018 at 18:59
1In the same context, "выучить" implies completeness, while "научиться" may mean only a basic skill or knowledge. However, "выучить" usually used in a more narrow context like "выучить урок" ("learn a lesson"). Sep 4, 2018 at 20:23