Scala lernen- Empfehlungen für Lernressourcen

H43R

Banned
Registriert
Aug. 2015
Beiträge
27
Hallo,

Ich möchte, als jemand mit Vorkenntnissen in Programmiersprachen, in Scala einsteigen und mittelfristig damit eigene Projekte (zum Vertiefen der Kenntnisse) umsetzen. Welche Ressourcen (Bücher / Tutorials / ...) könnt ihr empfehlen?

ich möchte meine Technologie / Coding Skills, begleitend zum neuen Job, etwas ausbauen. Mittelfristig werde ich mit u.a. "Big Data" Technologien und ETL Prozessen (Hadoop, Spark, Kafka, ...) , Entwicklung von u.a. REST Schnittstellen, sonstige Softwareprojekte und verschiedenen Datenbanktechnologien (Oracle, SAP HANA, ...) beschäftigen. Dafür möchte ich zunächst meine SW-Entwicklung / Coding Skills etwas ausbauen und festigen.

Ich habe mit Java das Programmieren gelernt, im Informatik-Studium & in Nebenjobs dann viel mit SQL Datenbanken und Python3 gearbeitet. Zwischendurch auch mal in Prolog, Assembler und C reingeschnuppert. Aktuell bin ich in Python ganz fit, mein Java ist aber etwas eingerostet. Meine Python Projekte waren meist prototypische Jupyter Skripte zur Analyse/Aufbereitung von Daten. Ganze Softwarekomponenten habe ich kaum entwickelt.



Durch zwei Cookbooks (Nr.1 , Nr.2 ), an denen ich mich grob orientiere, bin ich auf Scala aufmerksam geworden und würde mich da gerne tiefer reinarbeiten. Scala's Programmierparadigma (OOP + mit viel funk. Programmierung) finde ich sehr interessant. Begleitend zu Python noch Scala zu beherrschen, finde ich gar nicht so doof und hilft sicherlich auch später weiter. Wieder zurück zu klassischer OOP mit Java möchte ich nicht unbedingt, da ich Java nicht mehr wirklich spannend finde.

U.a. folgende Ressourcen sind interessant.
Das Buch vom Scala Erfinder - Martin Odersky
Twitter Scala School

Das Buch von Odersky sieht ganz ok aus, wirkt aber in der Leseprobe als wäre es eher für Programmier-Neulinge gedacht. Die Inhalte kann man dann schnell überfliegen. Übungen bzw. Ideen für Beispielprojekte zur Vertiefung des Wissens scheint das Buch nicht zu liefern.
Die Scala School wirkt etwas kurz. Ich möchte nicht nur die Syntax verstehen, sondern auch die Paradigmen, Strukturen und Funktionsweise.

Nachdem ich ein gewisses Wissen aufgebaut habe, möchte ich die Kenntnisse mit eigenen Projekten festigen.


Ich würde mir gern ein paar Tipps von euch einholen, wie man am Besten an die Sache ran geht.
  • Mit welchen Ressourcen kann ich die Sprache gut lernen?
  • Kennt ihr Quellen, wo man sich Inspiration für kniffelige / spannende und gleichermaßen lehrreiche Projekte holen kann? Bei diesen Projekten geht es mMn. hauptsächlich um den Lerntransfer. Sich selbst ein Projekt auszudenken ist mitunter gar nicht so einfach.


VG
 
  • Gefällt mir
Reaktionen: BeBur
Hi, ich verwende Scala für einige Big Data Anwendungen.

Ich würde dir https://www.manning.com/books/functional-programming-in-scala als Einführung empfehlen. Hier geht es insbesondere um das Konzept der funktionalen Programmierung und Scala ist „zufällig“ die Sprache in der man es kennen lernt. Im Buch sind auch viele interessante Übungsaufgaben, die das Verständnis sicherstellen.

Als Anschlusslektüre sei dir https://leanpub.com/fpmortals ans Herz gelegt. Hier geht es dann schon tiefer in die Kategorientheorie und man befasst sich mit der in der Scala-Welt recht verbreiteten cats Bibliothek, die teilweise scalaz beerbt.

Für konkrete Big Data Workflows möchte ich noch auf Spotifys https://spotify.github.io/scio/ verweisen, das seinerseits eine Scala API für Apache Beam bzw. Google Cloud Dataflow bereitstellt.

Übungsaufgaben findest du beispielsweise auch bei exercism. Interessantere Probleme stellen beispielsweise die sogenannten „functional pearls“ dar. Eine kurze Websuche wird dir entsprechende Treffer liefern.

Die Beispielprogramme aus Scio können auch als Gedankenanstoß dienen.

Wenn du das alles drauf hast solltest du in der Industrie nicht mehr all zu vielen Blockern begegnen ;)
 
Zuletzt bearbeitet:
Danke für eure TIpps & Empfehlungen.

"Programming in Scala - 4th Edition" beschäftigt sich mehr mit Scala, sbt usw. direkt hab ich mir von einem Freund sagen lassen. Mein erster Eindruck ging auch in diese Richtung. Die Funk. Programmierung ist da nicht Hauptschwerpunkt.
Anders ist das in dem, von @CloakingDevice empfohlene, Buch. Das hat funktionale Programmierung als Schwerpunkt & Scala zum Umsetzen der Konzepte benutzt.


Ich werde mir Bücher & Links nochmal genauer anschauen und mir dann einen groben Plan über die Herangehensweise machen.
 
Zurück
Oben