Como aprender scala

Es una buena decisión comenzar con Scala. Scala ayuda a las personas a resolver problemas reales de una manera elegante.

Scala es un lenguaje de propósito general que combina conceptos de lenguajes de programación orientados a objetos y funcionales.

Fue desarrollado para superar los problemas que enfrentan otros idiomas y se puede integrar fácilmente en el código existente.

Algunos de los mejores libros para Scala que te ayudarán en el aprendizaje son:

1.Programación en Scala: una guía de programación Scala paso a paso completa por Martin Odersky, Lex Spoon, Bill Venners

2.Scala para el impaciente de Cay Hortsmann

3. Escala en profundidad por Joshua D Suereth

4.Introducción al arte de la programación usando Scala por Mark Lewis

Para obtener más libros, visite este enlace: El mejor libro para aprender Scala

Puede consultar estos blogs para un estudio detallado sobre Scala:

Scala: Introducción

Scala: Características

Scala: Estructuras de control

Scala: Tuplas

Scala: Funciones parciales

También puedes consultar este video de Scala Tutorial para principiantes.

Espero eso ayude !!

Es probable que no haya un enfoque único para el aprendizaje de Scala, pero describiré cómo lo aprendí y explicaré las ventajas y desventajas de cada enfoque.

(Nota: el número o el orden de los elementos en cada lista de pros / contras no pretende sugerir la importancia de cada elemento o el mérito general del enfoque.)

Coursera: Principios de Programación Funcional en Scala

Mi primera exposición a Scala fue en la clase Coursera, que tomé en 2012 porque había un grupo de Meetup / estudio en mi área. (En ese momento, estaba teniendo problemas para elegir mi primer lenguaje funcional para aprender y el grupo de estudio me ayudó a tomar la decisión).

Ha pasado un tiempo desde que lo tomé, por lo que el contenido puede haber cambiado sustancialmente.

Pros :

  1. El curso le ofrece un recorrido guiado rápido de los conceptos de lenguaje y programación funcional, que es esencial si ya no está familiarizado con la programación funcional.
  2. Cubre las partes del lenguaje que utilizará con mayor frecuencia y le permitirá codificar con bastante rapidez. Me encontré explorando el lenguaje en el REPL (bucle de lectura-evaluación-impresión – una consola interactiva para ejecutar fragmentos de código), que es de gran ayuda para reforzar su comprensión del lenguaje y los conceptos.
  3. El grupo de estudio también fue muy útil para mí personalmente. Hubo personas con diferentes niveles de experiencia con Scala, por lo que algunas personas pudieron compartir ejemplos de aplicaciones de los conceptos en las conferencias de esa semana. Ayudar a otras personas cuando están luchando también refuerza los conceptos que entiendes, lo que lleva a un mayor dominio.
  4. Lo encontré divertido y aumentó mi interés en el idioma.

Contras :

Como el curso funcionó bien para mi estilo de aprendizaje (y ha pasado un tiempo desde que lo tomé), tengo pocas quejas, pero puedo compartir los aspectos negativos que he escuchado de otras personas:

  1. No del todo autosuficiente; idealmente debería ser emparejado con un libro y / o experiencia del mundo real para el dominio.
  2. Una de las quejas más comunes es sobre la voz de Odersky, ya que su tono monótono puede calmar a algunas personas para dormir. Resulta que me resulta atractivo, aunque jugaría las conferencias a una velocidad de 1.25x o 1.5x. De hecho, aquellos de nosotros de nuestro grupo de estudio que nos mantuvimos en contacto a menudo hacíamos impresiones de él mucho después de que el curso hubiera terminado.
  3. También he escuchado a gente decir que parte del material es demasiado académico o puede ser bastante difícil. Estos problemas pueden aliviarse discutiendo el material con otras personas. Obtener una nueva perspectiva sobre algo que parece demasiado académico puede revelar aplicaciones inesperadas o al menos impulsar la resolución creativa de problemas en el futuro. El material difícil se puede tratar de varias maneras, pero en particular recomiendo aplicar estrategias del curso “Aprender a aprender”.
  4. No es lo que opinas, por lo que puedes terminar el curso y sentirte un poco abrumado cuando hay muchas maneras de lograr algo.

Leer: Programación en Scala

Leí mucho del libro de Odersky en mi viaje al trabajo (~ 45 minutos), comenzando en algún momento durante la clase Coursera.

En general, el libro fue extremadamente valioso para pasar de una familiaridad superficial con la sintaxis a la comprensión fundamental de las construcciones dentro del lenguaje. Raramente me encontré confundido acerca del lenguaje a partir de entonces, lo que significa menos batallas con el compilador y luchando para entender el código de otras personas (a menos que, por supuesto, la lógica en sí sea confusa).

Pros :

  1. El libro es extremadamente completo, y abarca la motivación y los detalles en profundidad de cada función del idioma. Cada capítulo agregó mucha claridad al lenguaje, ya que lo usaría día a día y me proporcionaría una base para abordar nuevas técnicas.
  2. En particular, la forma en que el libro cubre la motivación de las características influyó en la forma en que experimentaría al decidir cómo modelar algo utilizando Scala. Esto es extremadamente valioso con un lenguaje como Scala porque hay muchas maneras de hacer muchas cosas, pero entender la motivación del lenguaje te ayuda a entender las ventajas y desventajas de los enfoques que permiten.
  3. El libro tampoco es demasiado ideológico; no se adhiere estrictamente a técnicas funcionales puras, inmutables, referencialmente transparentes. Le muestra cómo usar Scala como Java, mientras que lo dirige hacia conceptos funcionales que hacen que el lenguaje sea más seguro, divertido y expresivo.
  4. Finalmente, encontré el libro muy legible, a pesar de ser muy largo. Esto es bastante subjetivo, pero he escuchado que otras personas que han leído varios libros en lenguaje de programación también lo elogian.

Contras :

  1. Es grande, pesado y largo. No es ideal para ponerse al día rápidamente y no es divertido cargar con él si prefiere imprimir sobre ebooks.
  2. Contiene un recorrido guiado rápido por el idioma, pero probablemente haya mejores recursos condensados ​​(por ejemplo, Scala para el impaciente). No obtenga este libro a menos que tenga la intención de leer al menos 12–15 capítulos.
  3. No enfatiza los conceptos funcionales utilizados en las bibliotecas influenciadas por Haskell (scalaz, gatos, etc.) que a menudo desconciertan a las personas que no se han tomado el tiempo para aprenderlos. Sin embargo, esto no es un requisito para el principiante.
  4. No abiertamente criticado, aunque tiene un estilo distinto. Si examinas los ejemplos de código, puedes elegir el estilo para el que Scala fue diseñado (aunque no fue diseñado estrictamente para un solo estilo).

Trabajo: usar Scala en el trabajo

Comencé un trabajo que utilizaba exclusivamente a Scala en el backend. Fui contratado por la compañía que albergaba el grupo de estudio antes de que terminara el curso, así que pude poner en práctica lo que aprendí. He trabajado en Scala durante casi un año desde entonces.

El lugar de trabajo lo obliga a aprender y comprender, ya que necesita establecer un cierto nivel de confianza en su código antes de liberarlo a la naturaleza. Es increíblemente útil para refinar su comprensión de un idioma.

Muchas personas preguntan “cómo puedo aprender Scala” porque necesitan usarlo en el trabajo, pero algunas personas simplemente tienen curiosidad. Si no puede usarlo en el trabajo, puede probar un proyecto, ya sea una idea nueva o la transferencia de una biblioteca existente de otro idioma a Scala.

Pros :

  1. Experiencia en el trabajo trabajar con un idioma es extremadamente práctico. Si tiene éxito aplicando algún concepto una vez, es probable que lo encuentre útil nuevamente en el futuro.
  2. Puede haber una mayor variedad de problemas que resolver y, por lo tanto, amplía la amplitud de su comprensión del idioma.
  3. El código escrito en el trabajo debe ser mantenible, por lo que te obliga a explorar cómo escribir Scala limpio.
  4. El lugar de trabajo puede exponerlo a un código de opinión, enseñándole soluciones bien conocidas para problemas comunes, lo que lo hace más productivo.
  5. Hay muchos ejemplos negativos si tiene un ojo perspicaz para el código incorrecto, que le enseña lo que no debe hacer. Tenga en cuenta que no debe sobregeneralizar ejemplos negativos; ser conscientes del contexto
  6. La programación de pares en el trabajo es una excelente manera de aprovechar el conocimiento de otras personas sobre el lenguaje y el código base en el que está trabajando.

Contras :

  1. No puedo enfatizar esto lo suficiente, ¡aprender en el trabajo no es suficiente por sí solo! El lenguaje requiere estudio. Todos los idiomas se benefician del aprendizaje tanto de abajo hacia arriba como de arriba hacia abajo, pero esto es especialmente cierto para los idiomas poderosos. Es difícil mirar el código del mundo real y distinguir el lenguaje central de las abstracciones creadas a partir de él sin un conocimiento existente del idioma.
  2. Aprender del código del mundo real significa adoptar potencialmente los malos hábitos de otras personas. Trate de ser reflexivo, haga preguntas, comprenda si vale la pena copiar algo que vea.

Leer: Programación Funcional en Scala.

Leí la mayor parte del “Libro Rojo” de Chiusano y Bjarnason el año pasado para aumentar mi comprensión del estilo de Scala influenciado por Haskell.

Dependiendo de su situación, puede ser más o menos esencial para aprender Scala, pero es valioso y recomendable para cualquier persona interesada en la programación funcional.

Pros :

  1. Se proporcionan excelentes motivaciones para usar código puro, sin efectos secundarios.
  2. Muchos ejercicios, que son invaluables para comprender cómo resolver nuevos problemas en un estilo funcional.
  3. Más conciso y de opinión que el libro de Odersky. Si desea una filosofía similar a la de Python de (idealmente) una forma de hacer cualquier cosa, entonces este libro será más atractivo para usted.

Contras :

  1. No es una guía completa para el idioma. Solo le enseñará las características del lenguaje necesarias para sus enfoques funcionales para la resolución de problemas.
  2. No reflejará la mayoría del código del mundo real, ya que hay un montón de código de estilo de Scala-como-un-mejor-Java por ahí. Si está trabajando en una base de código como esa, esto no le ayudará a ponerse al día. Sin embargo, si está trabajando en una base de código que hace un uso intensivo de gatos o scalaz, querrá leer este libro.

Aprendizaje continuo: blogs, bibliotecas, idiomas relacionados y más libros

Siempre he tenido curiosidad por las partes y aplicaciones de Scala que aún no había utilizado. Incluso si lee una publicación de blog y nunca pone su contenido en práctica, ayuda a resolver problemas de manera creativa. De hecho, puede ser valioso mirar los idiomas que influyen en Scala o sus bibliotecas populares para comprender mejor sus motivaciones.

Pros :

  1. Puede ser un compromiso de tiempo bajo.
  2. A menudo es relevante para el mundo real.
  3. Te expone a pequeñas y grandes variaciones en los estilos de resolución de problemas.
  4. Es donde aprendes ideas de imagen más grande, como la filosofía de “dejarlo ir” de Akka.

Contras :

  1. Nuevamente, existe la posibilidad de copiar malas prácticas de otras personas.
  2. Puede llevar a la tentación de usar una técnica porque es emocionante, incluso cuando no es una buena opción para el problema en cuestión.

Recursos en línea

  • Aprender scala

Los tutoriales están orientados hacia la práctica y es probablemente uno de los mejores recursos para aprender con el ejemplo. Es un buen seguimiento para aprender más sobre los futuros, las corrientes reactivas y el modelo de actor.

  • La documentación oficial – Gratis – Principiantes a Intermedio.

Uno de los mejores recursos para aprender Scala sigue siendo la documentación oficial. Tiene varias guías y tutoriales dirigidos específicamente a desarrolladores de Java, Ruby o Python que se mudan a Scala. Es un gran lugar para obtener ayuda sobre preguntas o temas más específicos y para acompañar las clases de Coursera.

  • Ejercicios de Scala – Gratis – Principiantes a Intermedio

Una de las incorporaciones más recientes es Scala Ejercicios del equipo de 47 Degrees. Trae el popular Scala Koans a la web. Ofreciendo cientos de ejercicios solubles organizados en 42 categorías que cubren los conceptos básicos del lenguaje Scala.

  • Escuela Scala de Twitter – Gratis – De principiante a intermedio

Como una de las principales empresas que utilizaron e impulsaron el ecosistema de Scala, Twitter creó la Escuela Scala. Cubre todas las características principales del lenguaje.

  • Parques de juegos en línea – Gratis – Principiantes

Si estás buscando una manera rápida y sucia de jugar en línea con los tutoriales en idioma de Scala, Simply Scala y el Scala Fiddle son buenos lugares para comenzar.

Aprenda Scala aquí: Aprenda Scala – Los mejores tutoriales de Scala | Hackr.io

El problema

Este es un hecho bien conocido: Scala le permite escribir lo mismo en muchas formas diferentes. Por un lado, es bueno, porque tienes una gran variedad de decisiones. Pero desde el otro lado, la programación no es un buen lugar para escribir pensamientos de forma libre.

Aquí hay un ejemplo de declaración de función en diferentes formas:

def suma (a: Int, b: Int): Int = {a + b}

def suma (a: Int, b: Int) = {a + b}

def suma (a: Int, b: Int) {a + b}

def suma (a: Int, b: Int) = a + b

Como puede ver, incluso en una acción tan simple como una declaración de función, tenemos múltiples métodos para hacerlo. Cuanto más vamos, las cosas más difíciles se vuelven para que entendamos. Por supuesto, esto se puede resolver fácilmente introduciendo una guía de códigos. Entonces, lo único que debe hacer es aprender las formas básicas de la construcción del lenguaje principal.

Tenga en cuenta que estoy hablando desde la perspectiva de un desarrollador de Java.

Complejidad adicional hace que la sintaxis y la programación funcional. Además, nunca se sabe qué tema hay que aprender a continuación. Que fue primero, la gallina o el huevo? En Scala, puedo preguntarte: “¿Qué fue primero, una clase de caso o una coincidencia de patrones?” O tal vez una función de apply ?

A pesar de estas circunstancias, elijo Scala sobre Java.

Cómo lo aprendería

Decidí comenzar a enseñar desde el tema más familiar para los desarrolladores de Java: la programación orientada a objetos. Scala tiene su propia implementación OOP y es muy similar a Java 8, incluidas las interfaces funcionales. Entonces, no hay nada más trivial que Scala OOP para desarrolladores de Java.

Tan pronto como recoja suficientes comentarios sobre este mini curso de video, completaré el resto de la conferencia de video. Los invito a unirse al primer grupo de estudiantes “beta” y dejar sus comentarios al respecto. Casi 1 hora de contenido te está esperando. ¡Prueba el lenguaje de programación JVM más despreciable!

Gracias por A2A.

Estoy de acuerdo en que hay una gran cantidad de material disponible en línea y es más fácil confundirse. Supongo que usted es bueno con la programación (dada su experiencia) y está tratando de controlar a Scala.

Para empezar, puedes inscribirte en el siguiente curso por Martin Odersky (inventor de Scala)

https://www.coursera.org/course/…

Es gratis asistir al curso; sin embargo, si necesita un certificado, puede pagarlo. Hay ejercicios disponibles en el curso que puedes usar para practicar.

Como manual de referencia, puede utilizar el libro ‘Programming in Scala, 2nd Edition’ de Martin Odersky. El libro es bastante detallado. No creo que ningún otro libro explique a Scala en detalles tan grandes. La primera edición de este libro está disponible en línea ( http://www.artima.com/pins1ed/ ) y es gratis para leer, sin embargo, no sugeriré hacerlo.

Una vez que haya terminado con sus conceptos básicos de Scala, puede inscribirse en http : //scala-exercises.47deg.com… . Estos son pequeños ejercicios diarios y buenos para aprender.

Los recursos anteriores deberían ser suficientes para comenzar.

– Primero asegúrate de que quieres aprender scala. No se deje desconcertar por la RP de Scala, realmente comprenda si esto es lo que quiere aprender y ser un experto. Una vez que esté seguro con la decisión, vaya al resto de la publicación.

Ir a través de esta página en coursera.org. Habla de sus experiencias de aprendizaje / uso de scala.

– La mejor manera de aprender un lenguaje de programación es comenzar con un libro. Un libro está destinado a enseñarte programación en ese idioma. Según la experiencia que tengas con la programación, elige un libro. Si ya está familiarizado con los paradigmas de programación, como la programación funcional, es bueno comenzar con un libro que no los enseñe. Si eres totalmente nuevo, busca un libro que te enseñe cosas desde cero. Si usted es un programador de Java, debe comenzar con este video Parleys.com y este libro Página en scala-lang.org
Un libro más general recomendado es

– Instala scala en tu computadora y practica los problemas mencionados en el libro. Aprender a programar no es análogo a leer una Biblia, una novela o una película. No serás iluminado con solo leerlo. Si desea poder reproducir código en scala, debe escribir código mientras aprende.

– Trate de encontrar definiciones mejores / más comprensibles de los constructos
No tome ninguna definición por sentado. El mayor error es impacientarse y no aprender lo básico correctamente. Si salta al siguiente tema sin entender los anteriores, la posibilidad de que no comprenda nada más en los capítulos más nuevos es muy alta.

– Si ya es programador, compare las implementaciones / sintaxis / comportamientos / idiomas de los lenguajes que conoce con scala. La comparación no debe ser decidir quién es el ganador, sino comprenderlo desde la perspectiva de Scala.

– Una vez que haya terminado algún proyecto de la vida real. Probablemente algunos algoritmos o algunas bibliotecas para empezar.

Tenga en cuenta que cuando dijo scala language, se asumió que se refería al lenguaje y no a los marcos que lo rodeaban como play, akka, etc.

Aquí hay un excelente slidedeck que habla sobre scala y su ecosistema.
Lecciones aprendidas: Scala y su ecosistema

Aquí hay algunos buenos recursos curados por la comunidad.

Todo lo mejor para tu aprendizaje. Que el conocimiento esté contigo también.

Bastante fácil, en realidad.

Mi experiencia sugiere que si ya tiene un año o dos de experiencia en programación, debería poder adquirir la sintaxis de Scala en un par de días. Hay muchos recursos en la red que lo pondrán al día, en particular la guía oficial para desarrolladores de Java o la Escuela Scala de Twitter. Personalmente, no me gustó ninguno de ellos, así que escribí mi propia introducción de Scala y la publiqué como muestra gratuita (alrededor de 40 páginas) de mi libro: Desarrollo web moderno con Scala.

Una vez que sepas lo básico, no es muy diferente de otros lenguajes de programación: solo crea un proyecto real e intenta construirlo. Personalmente, recomiendo usar Play framework, ya que es fácil de comenzar y está lleno de buenas prácticas de Scala (más información sobre eso en mi blog, la forma más rápida de aprender Scala). En esta etapa, obtendrá bastante confianza en el uso de elementos funcionales básicos como el curry, la coincidencia de patrones y especialmente para las expresiones.

La mayoría de las personas se detienen allí, pero Scala tiene un nivel secreto de dominio que involucra cosas más avanzadas que usualmente tratan con conceptos de teoría de categorías, tipos de clase superior, etc. Si desea tener una idea de lo que estoy hablando, eche un vistazo en esta charla de Creighton Kirkendall. De nuevo, hay varias formas de aprenderlo. Puedes comenzar con la teoría y luego pasar a la práctica mientras lees El Libro Rojo. O bien, puede ir en la dirección opuesta con mi libro, Mastering Advanced Scala, y desarrollar una intuición mientras explora las bibliotecas funcionales existentes. El primero es más sólido académicamente, mientras que el segundo es más fácil de entender.

Una última cosa. Algunas personas afirman que Scala es un lenguaje híbrido y, por lo tanto, inferior a otros lenguajes de FP “reales”. Esto no es verdad. En cuanto a las características, Scala es uno de los lenguajes de FP más avanzados que existen en la actualidad, aproximadamente al mismo nivel que Haskell, pero probablemente mejor en términos de madurez de herramientas, número de trabajos, charlas, tutoriales, etc.

Para responder a la pregunta de cómo debe aprender cualquier lenguaje de programación, realmente ayuda conocer los antecedentes de los alumnos. La mayoría de las respuestas aquí son excelentes si ya sabe cómo programar en otros idiomas, especialmente si Java está en la lista de lo que sabe. Sin embargo, si aún no sabe cómo codificar, la mayoría de estos consejos son inútiles. Realmente me gusta el Odersky et al. libro, pero se supone que usted es un programador competente. Hay solo unos pocos recursos que asumen la tarea de enseñar programación a los principiantes que usan Scala. Una de las otras respuestas mencionó mi primer libro de texto “Introducción al arte de programar usando Scala”, que fue escrito para enseñar CS1 a principiantes que usan Scala. Esto ha sido actualizado y dividido en dos volúmenes. “Introducción a la programación y resolución de problemas con Scala” es para CS1, mientras que “Orientación a objetos, abstracción y estructuras de datos con Scala” se dirige a CS2. También tengo videoconferencias para todas mis cosas en mi canal de YouTube. También hay Scala atómica. No sé si alguna escuela lo usa, pero también está orientada a enseñar a programadores novatos a programar con Scala.

Scala es un lenguaje de programación que integra las características del lenguaje funcional y orientado a objetos. Existen múltiples características de Scala que lo hacen tan solicitado en otros lenguajes de programación.

Lo único de Scala es que es altamente orientado a objetos, funcional, estático, extensible, se ejecuta en JVM y ejecuta el código Java.

Hay pocos que dicen que las características anteriores también están en Java. Por lo tanto, para brindarle algunas características adicionales que no encontrará en Java, se incluyen compatibilidad de concurrencia, cierres, rasgos, funciones anidadas, compatibilidad con idiomas específicos del dominio, inferencia de tipos y compatibilidad con REPL.

Además, Scala es un lenguaje JVM seguro para el tipo que incorpora programación de objetos y funcional en un lenguaje extremadamente conciso, lógico y extraordinariamente poderoso.

Para saber más acerca de Scala, puede ver este tutorial en YouTube, que acabo de ver para darle mi recomendación y estoy seguro de que lo apreciará. Aquí está el enlace: – Conceptos básicos de Scala

Recientemente, una nueva especialización en Programación Funcional en Scala apareció en Coursera.

https://www.coursera.org/special

La impone la Ecole Polytechnique Federale de Lausanne (pero está en inglés) y la enseña principalmente Martin Odersky, el creador de la lengua. Esto es del mismo grupo que publicó el curso de programación funcional de Scala hace unos años en Coursera. Ahora está de vuelta con una especialización más amplia.

La especialización consiste en 4 cursos y un proyecto final:
1. Principios de programación funcional en Scala
2. Diseño del programa funcional en Scala.
3. Programación paralela
4. Análisis de Big Data con Scala y Spark.
Y
Proyecto Capstone (con gran foco de análisis de datos)

Estoy tomando el primer curso en este momento (auditando de forma gratuita), y lo estoy disfrutando bastante. Las conferencias son informativas. Los proyectos de programación hasta ahora son ligeros y razonables, aunque eso podría ser solo para mantener el enfoque en aprender los principios para el primer curso.
Los cursos parecen tener una duración aproximada de 5 semanas, y están destinados a ofrecerse con frecuencia.

El curso cuesta $ 80-100 cada uno (dependiendo de su moneda) si desea el certificado; Si no te importa, puedes inscribirte en los cursos de forma individual y seleccionar la opción gratuita, excepto la Capstone, que, como es habitual en Coursera, está restringida a aquellos que tomaron, pagaron y aprobaron el examen preliminar. cursos

> ¿Cómo puedo empezar?

Es fácil aprender Scala si ya conoces Java, porque en esencia:
Scala ~ Java + inmutable

Si tienes suerte, ya conoces a Scala si ya conoces tanto a Java como a Haskell.

> migrar un sistema existente en Java a Scala

En mi opinión, esto:

  • no da valor comercial, debido a la similitud entre Java y Scala; Java y Scala están compilados en archivos .class, su velocidad es aproximadamente la misma.
  • incluso es dañino, si el propósito es aprender Scala a través del proceso, porque reducirá la velocidad de aprendizaje de Scala. Si realiza la migración, apuesto a que terminará simplemente convirtiendo el sistema de la sintaxis Java a la sintaxis de Scala, manteniendo todo el diseño anterior.

Es mejor si usa Scala en un proyecto nuevo, o usa Scala para escribir una parte de extensión para el sistema existente. Scala puede llamar a su código Java existente de manera muy fácil / natural.

Este proceso es generalizado para aprender cualquier idioma.

  1. Escribe un Hola Mundo
  2. Escriba un programa para imprimir los primeros 100 números de la secuencia de Fibonacci
  3. Escriba un programa para devolver el número n de la secuencia de Fibonacci.
  4. Aprende a usar un depurador
  5. Google todo lo demás

Algunas personas pueden aprender un idioma en un fin de semana, así que sea realista con su empresa al respecto. Hay un montón de cursos en la web, aquí hay algunos

Página en lintool.github.io
Página en http://www.irisa.fr
Tutorial de scala
Aprende Scala en Y Minutos

Lo peor que puedes hacer sin embargo, es no codificar.

Primero, le recomiendo que tome el Tour de Scala aquí: Introducción – Documentación de Scala. Dependiendo de su familiaridad previa con lenguajes orientados a objetos como Java y / o lenguajes funcionales (como Haskell), algunos conceptos pueden ser familiares o completamente nuevos, pero vale la pena hacerlo. De esta manera, comprenderá lo básico del lenguaje y sus características. También puede leer más sobre la programación funcional en general, especialmente si viene de OOP. ¡Es un gran paradigma de programación!

Luego, puede divertirse con las herramientas que se utilizan con frecuencia con Scala como SBT: herramienta de compilación interactiva y bibliotecas populares como Akka. Y si desea un buen IDE, no busque más que IntelliJ IDEA con el complemento Scala.

Eso debería darle una buena idea de lo que Scala es capaz de hacer y de lo que puede construir con él. Ahora es el momento de aprender haciendo: piense en un proyecto simple para el que podría usar Scala e intente implementarlo. Estás obligado a aprender mucho más del lenguaje de la manera.

En mi opinión, Scala es un gran lenguaje. ¡Buena suerte aprendiéndolo!

Scala es un lenguaje increíble con mucha profundidad, me alegra que quieras aprenderlo. Dicho esto, supongo que ahora tienes un par de idiomas en tu haber. Aquí hay una buena ruta de aprendizaje que recomiendo a las personas que tienen experiencia en diferentes lenguajes de programación:

1. Programación en Scala por Odersky.

2. Programación funcional, simplificada por Alvin Alexander.

3. Scala con gatos por guión bajo

4. Programación funcional en Scala por Runar B. y Paul C.

5. Modelado de dominios funcional y reactivo por Debasish G

En este punto, deberías tener la capacidad de comprender la mayoría del idioma y sumergirte en las bases de código y comprender los diferentes patrones. Recomendaría desarrollar algunos servicios que impliquen hablar con bases de datos y hacer llamadas a otros servicios. Recomiendo aprender una biblioteca como Slick para el acceso a bases de datos relacionales (Essential Slick by Underscore es excelente).

En algún momento del camino, sin duda habrá escuchado sobre el kit de herramientas Akka que le brinda una implementación del modelo Actor en Scala. Si quieres aprender más sobre eso, te recomiendo leer Akka en Acción y Patrones Akka Aplicados. Su documentación es sólida como una roca. También recomendaría consultar Akka Streams (la documentación es increíble) si desea crear servicios de transmisión. Es posible que también hayas oído hablar de la programación de nivel de tipo, por lo que te recomiendo que le eches un vistazo a Shapeless (consulta la guía de tipo astronauta a Shapeless).

Espero que esto ayude, encontré estos libros muy útiles en mi viaje.

Básicamente, Scala es una versión diferente de Java con menos código repetitivo. Lo que significa que puede hacer la misma tarea en un menor número de líneas de códigos en comparación con Java. Entonces, técnicamente es relativamente fácil de aprender.

Pero no debería ser tu primer lenguaje de programación para aprender. Yo sugeriría ir con Python para aprender su primer lenguaje de programación, ya que para un estudiante que nunca ha programado antes, usar un lenguaje de tipo estático (Scala es un lenguaje de tipo estático) parece antinatural. Presenta una complejidad adicional que el estudiante debe dominar y ralentiza el ritmo de aprendizaje.

Habiendo dicho eso, se vuelve absolutamente importante aprender un lenguaje tipado estáticamente una vez que se sienta cómodo en la programación.

Volviendo a su pregunta, puede seguir esta publicación del blog para comenzar con Scala.

Un tutorial simple de Scala – Parte – 1 | Blog CloudxLab

Comience con la escuela scala de Twitter: Escuela Scala

Continuar con las plantillas de activador: Activador seguro de tipos

La escuela de Twitter debería ser lo mejor de una semana, las plantillas de Activator tomarán tiempo, pero si te quedas con Scala, Akka y Spray, por ejemplo, dentro de unos pocos meses alcanzarás un nivel de competencia.

Al igual que la mayoría de las grandes cosas en la vida, Scala es fácil de aprender y difícil de dominar … el resto del viaje será más largo, más difícil y muy gratificante.

Me reuní con la programación funcional cuando usé la biblioteca de Python’s Pandas para el análisis de datos. Contiene mapa, operaciones de reducción y funciones lambda.

A continuación, decidimos migrar nuestro entorno de desarrollo y producción a Scala / Spark. Nadie conocía a Scala en ese momento.

yo recomendaria

  1. Curso de introducción a Scala en coursera (Principios de programación funcional en Scala | Coursera). Aprenderás lo básico sobre Scala y la programación funcional.
  2. Diseño de programas funcionales en Scala (Diseño de programas funcionales en Scala | Coursera). Al menos aprenderás mónadas y para la expresión. Es un concepto muy importante.
  3. Programación paralela | Coursera

Sería suficiente entrar en el mundo de Scala.

http://daily-scala.blogspot.com/ es un fantástico blog y recurso para aprender scala (ese tipo necesita seriamente compilar todo en un libro). Después de que comprenda lo básico, leería todos los 144 artículos (en el momento de escribir este artículo) que había hecho y luego me suscribía a su fuente RSS.

“Scala para los impacientes” fue escrito para los codificadores de Java que desean moverse de Java a Scala.

Pero realmente no te mueves, te quedas en la JVM, probablemente uses el mismo IDE y puedes usar tus bibliotecas preferidas existentes.

Obtendrá una mejor comprensión de las funciones, colecciones, concurrencia e incluso programación orientada a objetos. Incluso si te quedas con Java, obtendrás nuevas perspectivas.

Un libro: Programación Scala: Escalabilidad = Programación funcional + Objetos: Dean Wampler, Alex Payne