All methods are good but, in my opinion, the best way to learn a new language is to attend a class. Similar to other methods studying in a class has positive and negative sides. When we go to a class, we can get an education from professional teachers, who have been working on their subject and storing knowledge for many years. Therefore, our chance to be successful and obtain good level rises dramatically.
Another advantage is that we can ask any incomprehension, different from learning y ourselves, when we cannot ask a teacher about difficult aspects of studying. In addition, teachers can control strictly and force us to study. Teachers can encourage us to do new steps and help in developing abilities, too. They give some fine hints that are not maybe so important but very useful, in fact. I think these are very effective in learning a language. Nevertheless, this method has disadvantages as well. Going to a class can expensive.
As the better the course the more expensive it is. In addition, courses has definite timetable. It means we cannot study whenever we want. Also, we should not exclude the fact that there are some kind of “language centers” which gain confidence of people and take their money, but do not give education at promised high levels. Therefore, we should be careful. In conclusion, I think advantages are weightier than disadvantages, so it is a very good idea to attend a class when learning a new language.