The best (possibly only) way to learn a language on a functional level, is to use it. In my second-year Spanish class in high school, our teacher let us chat during class, so long as we chatted in Spanish and not English. In practice, we talked Spanglish, but nonetheless, that experience made me far better at Spanish than all my other studying before and after. She also taught all of her lessons entirely in Spanish, and required questions be asked in Spanish. While traditional lecturing is not an efficient medium for learning languages, schools can teach language skills very effectively by using alternative methods.<p>There are also Hawaiian Language Immersion schools available in Hawaii, which I hear very good things about.