Bulunduğunuz yerdeydim ve neredeyse birkaç kez vazgeçtim. Hiçbir şekilde uzman bir Scala geliştiricisi olmamasına rağmen, artık dili sıkı bir şekilde kavradığımı hissediyorum - kesinlikle Java ile olan ilişkimi iyice zehirleyecek kadar yeterli.
Yaptığım ilk şey, birkaç hafta boyunca oyun oynamak, çeşitli blogları ve dile girişleri okumaktı. Bu bir hataydı, işe yarayan pek çok şey öğrenmedim (ya da en azından anlamıyordum) ve tamamen derinliklerimin dışında hissettim.
İkinci şey, teknik olarak basit ama Scala sözdiziminin belirli yönlerini kendi başıma keşfetmeye zorlayan bir sorunu çözmek için biraz zaman harcamaktı:
Bu beni bir gecede bir uzmana dönüştürmese de, artık imkansız hissetmediği dile yeterince aşina oldu.
Güvenle bu artışla nihayet başlamam gereken şeyi yaptım: Martin Odersky tarafından Scala'da Programlama yapın ve her birkaç günde bir bölümün tamamını okumaya çalışın. İyi yazılmış ve kapsamlı bir kitap ve zaten sağlam bir programlama geçmişiniz varsa, çok göz korkutucu olmamalı. İlk okumanızı çok acı verici hale getirmenize gerek yok: isteğe bağlı olarak işaretlenmiş parçaları atlayın, kavramları anladığınızdan emin olun, ancak ayrıntılarda saplanmayın (özellikle, koleksiyonlardaki bölümlerin aşırı dolduğunu ve yağsız). Bir kavramın var olduğunu ve nasıl çalıştığının kapsamlı bir açıklamasını nerede okuyacağınızı bilmek çok büyük bir yardımdır.
Kitabı okumanın bir alternatifi Coursera sınıfına katılmaktır - çok daha az kapsamlı, ancak önemli noktaların çoğunu kapsar ve yönetilebilir, mantıksal birimlere ayrılır. Öte yandan, ders tamamlandıktan sonra derslere erişmenin mümkün olup olmadığını bilmiyorum ve ayrıca birisini (Martin Ordesky kadar açık ve bilgili biri) dinlerken çok daha az meşgul olduğumu keşfettim. kitap okurken.
Scala ile ilgili bir başka sorun da, isme göre parametreleri almak zorunda olduğunuz kelime dağarcığınızın miktarıdır? için-kavrama? kapatma? Eğer bunalmış hissediyorsanız, Scala Terimler Sözlüğü ve hedeflenen yığın taşması aramalarının iyi bir karışımının bana çok yardımcı olduğunu buldum (Daniel Sobral ve Travis Brown'un cevaplarını arayın). Aslında, sözlükle bir Anki destesi oluşturacak kadar ileri gittim ve bunun büyük bir yardım olduğunu hissediyorum.
Son olarak, bu muhtemelen açıktır, ancak kod, kod, kod. Önemsiz bir şey olsa bile üzerinde çalışabileceğiniz bir yan proje bulun. Yaptığım şey, ilgilendiğim bir yazar yeni bir kitap yayınladığında bana bir tweet gönderecek çok basit bir Amazon tarayıcısı yazmaktı. Muhtemelen olması gerekenden daha uzun sürdü, ama o zaman dile aşık oldum.
Eğer bu kadar ileri giderseniz, muhtemelen daha fazla yardıma ihtiyacınız olmayacak, ancak iyi bir öneri, dili kavramaya başladığınızda, temel kavramları daha derinlemesine araştırmaktır. OOP'u biliyorsunuz, fonksiyonel programlamayı okumaya çalışın - kesinlikle kesin olarak söyleyebilirim, aklınızı başınızdan alacak. Scala'da Fonksiyonel Programlama yakında yayınlanacak (ish), ancak erken erişim baskısı zaten mükemmel. Başka bir cevap, Java Geliştiriciler için Fonksiyonel Programlama'ya aşina olmadığım, ancak iyi olduğuna inanmaya eğilimli olduğumuzu gösteriyor (bir O'Reilly kitabı en azından gözden kaçırmaya değmez mi?).
Umarım bu çok uzun sürmez ve belirgin olmaz ve dürüstçe size en iyisini diliyorum. Scala'nın hataları var, ama harika bir dil ve beyninizi hiç bilmediğiniz yönlere götürecek. Ve ben bir yıl içinde "Öğrenme Haskell, cesareti kırılmış hissediyorum" arıyoruz :)