można korzystać w jednym projekcie ze scali 2.13 i scali 3.x jednocześnie: https://www.scala-lang.org/blog/2021/04/08/scala-3-in-sbt.html to jest ficzer raczej dla tych co tego potrzebują (bo bardzo im się to przyda, a inaczej trudno ogarnąć sprawę), a nie jako rozwiązanie na początek przygód ze scalą. rzeczywistość jest jednak taka, że migrację ze scali 2.13 na scalę 3.x da się zrobić bez takiej traumy jak np. w przejściu z pythona 2 na pythona 3. da się nawet pisać mnóstwo kodu, który działa zarówno pod scalą 2.13 jak i scalą 3.x. co więcej, scala 3.x nadal korzysta z biblioteki standardowej scali 2.13 (a więc np. ma dostępne dokładnie takie same kolekcje).
ze swojej strony odradzam naukę scali 2.11 i starszych. przy okazji wprowadzania integracji z javą 8 w scali 2.12 przerobiono obsługę lambd, miksowania traitów, etc i wyszedł język niby z wierzchu bardzo podobny, ale mechanika może się subtelnie różnić, tzn. różne wersje scali mogą mieć różne ograniczenia. dodatkowo scala 2.11 jest już dawno bez wsparcia, a niedawno scala.js i scala-native też usunęły wsparcie dla scali 2.11.
scali 3 niestety dalej nie używam (w firmowym projekcie jeszcze pewnie długo się nie przeniesiemy), a czytałem, że obsługa scali 3 w różnorakich IDE jest średniawa, znacząco gorsza niż obsługa scali 2. mimo wszystko obsługa scali 3 jest z roku na rok coraz lepsza, a scala 3 jest oficjalnie przyszłością scali.
ostatecznie, moim zdaniem, możesz się uczyć scali 2.12, 2.13 albo 3.x i każdy z tych wyborów ma sens.
(...) aby nie trzeba było oduczać tego co się poznało.
scala 3 wyrzuciła raczej mało znaczące rzeczy: https://docs.scala-lang.org/scala3/reference/dropped-features/index.html ale większość ważnych rzeczy ze scali 2.x została i raczej długo jeszcze będzie obsługiwana, np: implicity w starym stylu https://docs.scala-lang.org/scala3/reference/contextual/relationship-implicits.html
The Scala 3 implementation implements both Scala 2's implicits and the new abstractions. In fact, support for Scala 2's implicits is an essential part of the common language subset between 2.13 and Scala 3. Migration to the new abstractions will be supported by making automatic rewritings available.
Depending on adoption patterns, old style implicits might start to be deprecated in a version following Scala 3.0.
ogólnie raczej nie będzie wielu rzeczy do oduczania się, a przynajmniej nie w najbliższych latach. ponadto ta zmiana z implicitów na given+using (+ extensions + konwersje + itd) to głównie zmiana składniowa (dająca się dość mechanicznie przetłumaczyć z jednej postaci na drugą), a nie koncepcyjna (given+using to stary pomysł w nowej skórze).