¿Cuáles son los mejores recursos para aprender Clojure?

A diferencia de Haskell (que en mi opinión es extremadamente difícil de aprender con solo leer libros), Clojure es mucho más realista y mucho más fácil de aprender. Sin embargo, dudo que alguna vez veas libros como “Enseña a ti mismo Clojure en 21 días”.

Simplemente porque lleva literalmente horas (no días) a los aspectos básicos de la recolección. Sin embargo, dominar el idioma y ser lo suficientemente eficiente como para poder escribir código para resolver problemas del mundo real puede llevar meses y años.

Hay pocas etapas que cada Clojurst tiene que atravesar (a veces no en este orden dado):

1. Inspiración: Ideas detrás de Clojure. Inmutabilidad, homoiconicidad, simplicidad, etc.

2. Conceptos básicos del aprendizaje: conceptos básicos del lenguaje.

3. Familiarizarse con las bibliotecas centrales.

4. Editor / IDE

5. Descubrir bibliotecas de terceros.

6. Haciendo preguntas

7. Conseguir empleo. Aterrizar un trabajo que implica el uso de Clojure (script)

8. Mantenerse comprometido

Déjame intentar poner algunas recomendaciones:

1. Todos los programadores (incluso aquellos que no tienen la intención de usar Clojure) deben ver las conversaciones de Rich Hickey Rich Hickey – YouTube. Comenzando con el famoso Simple Made Easy. Aquí está la transcripción : matthiasn / talk-transcripts

2. Ahora hay muchos libros disponibles para ayudarlo a comenzar a aprender Clojure: Amazon.com: Clojure. Por favor, no se preocupe si algunos de ellos se sienten obsoletos. El lenguaje central no ha cambiado desde el principio. Sí, no es un tipo de Javascript.

3. El aprendizaje de las bibliotecas principales probablemente tomaría más tiempo: este recurso esencial es su mejor amigo: la Biblioteca Central de Clojure

También hay un próximo libro (que me parece bastante bueno, pero me temo que no es para principiantes): Manning | Biblioteca estándar de clojure. El autor de la misma también ha iniciado recientemente series de capturas de pantalla: Clojure Pills Screencast. Si te gusta ver videos, definitivamente echa un vistazo a LambdaIsland: Screencast series sobre ClojureScript y Clojure y PurelyFunctional.tv Aprenda Programación Funcional en su horario.

4. Para IDE / Editor, mi mejor recomendación probablemente sería comenzar con una que ya conoces, podría ser: Vim, Emacs, IntelliJ, Atom, Sublime, Eclipse, Netbeans o LightTable. Es probable que tengas que aprender aspectos del uso del editor elegido con Clojure. Sea paciente y trate de no culpar al idioma si el editor parece tener poco apoyo para él.

5. Las bibliotecas. Hay muchos. Clojure caracterizado como un lenguaje “no-marco”. No encontrarías algo como Rails, ASP.NET o Django, la mayoría de las veces construirías cosas a partir de muchas bibliotecas. A veces tendrías que profundizar en el código fuente, ponerte en contacto con los autores / mantenedores, crear un bifurcado de las libs y modificarlas. Clojure Toolbox es una lista categorizada incompleta (por supuesto) de bibliotecas diferentes. También recomendaría mantener este libro en su escritorio https://www.amazon.com/Clojure-C…

6. En ocasiones, la popularidad de Clojure está subvaluada, ya que los motores de clasificación de idiomas enfatizan las estadísticas de Stackoverflow. Y, curiosamente, ese no es el lugar más popular donde los clojuristas iban a hacer sus preguntas. Dado que Clojure se acentúa en la reducción del espacio de problemas a pequeñas funciones compuestas, la mayoría de las preguntas podrían encajar en las conversaciones de chat. Clojurians Slack clojurians.net es donde cualquiera puede ir y encontrar respuestas a cualquier pregunta relacionada con Clojure. Te sorprendería: la comunidad de Clojure es increíblemente amigable y está muy ansiosa por ayudar.

7. Encontrar el trabajo. Esta es probablemente la mayor preocupación que impide que la gente entre en Clojure. No es el idioma más popular y muy corriente. Sin embargo, puedo asegurarles que muchas empresas que buscan desarrolladores de Clojure crecen constantemente cada año, Clojure, empresas. La mayoría de ellos ni siquiera intentan encontrar desarrolladores senior de Clojure, están dispuestos a aceptar a cualquiera que esté interesado en aprender Clojure. Clojure es uno de los idiomas mejor pagados. ¿Por qué? Probablemente porque, por lo general, no es la primera, ni la segunda o la tercera lengua que las personas aprenden. Una vez experimentado en otros idiomas, el programador curioso comienza a mirar alrededor. Y a veces descubre Clojure. Normalmente la gente no abandona Clojure. Incluso cuando lo hacen, no lo hacen voluntariamente. Learn Clojure: puedo garantizarle que cualquiera que intente aprenderlo de todo corazón, siempre descubre algo que afecta su carrera más adelante.

8. Y una vez que comience su viaje, no se establezca. Asista y vea las conferencias: Clojure / conj, Clojure / west, EuroClojure, Clojure Remot, Strangeloop, Curry-on, LambdaConf.
Escuche los podcasts: https://www.fpcasts.com.
Encuentra encuentros de Clojure en tu área.
Asistir a un ClojureBridge.
Aprenda otros Lisps – Raqueta, EmacsLisp, LFE, ChickenScheme.
Aprenda otros idiomas (que no son lispy) con un fuerte énfasis funcional: ELM, Purescript, Haskell, Erlang, OCaml, Elixir, F #.

Como alguien que recientemente se zambulló en Clojure con ambos pies, he reunido algunos recursos para ayudarme a comprender lo que es esencialmente una forma completamente nueva (para mí, provenir de OO-land) para razonar sobre los programas y su ejecución.

Hay grandes recursos en la web, además de los documentos oficiales (Clojure – documentación):

4Clojure – 4clojure – ¡Bienvenido!
CDS – Documentación Clojure
Prueba Clojure (REPL en línea) – Prueba Clojure
Clojure Koans – Clojure Koans
El Clojure Cookbook en línea (repo de GitHub aquí: clojure-cookbook)
Ejercicios de ejercicio.
Brave Clojure (nuevo) – Clojure for the Brave and True, un libro en línea para principiantes

En cuanto a los libros, comenzaría con lo siguiente.

Programación de Clojure: una introducción sólida al lenguaje y la lectura más fácil de los libros que he encontrado.

Clojure en acción
Clojure practico

Los títulos anteriores tratan sobre la aplicación de Clojure a dominios de problemas del mundo real, aplicaciones de muestra, etc. Ambas lecturas excelentes.

La Programación de Clojure de O’Reilly es más una referencia completa, pero indispensable. Es una lectura un poco más pesada.

La Alegría de Clojure (que necesito leer más detenidamente, pero todavía estoy aprendiendo) es para cuando hayas comprendido la sintaxis y estés listo para aprender qué hace a Clojure … bueno, Clojure.

También hay varias presentaciones fantásticas y charlas disponibles en InfoQ. Una de las mejores charlas en este ámbito es Simple Made Easy (por Rich Hickey), pero para sumergirse, revise las charlas de miembros prominentes de la comunidad (en algunos casos, francamente prolíficos). Algunos ejemplos serían:

Todo el contenido de Rich Hickey en InfoQ
Todo el contenido de Stuart Sierra en InfoQ
Todo el contenido de Chas Emerick en InfoQ

Lo más importante, empieza a escribir Clojure. Coge emacs-live o Light Table solo tienes que ir. El “instarepl” de Light Table es invaluable cuando se trata de probar macros y explorar cosas, pero cualquier REPL antiguo funcionará.

Existe un ecosistema en desarrollo en torno a la escritura de código Clojure, pero hay opciones disponibles para cualquier editor / IDE combo que pueda estar usando. Emacs es una opción popular, pero hay complementos para todo, desde vim hasta IntelliJ.

La comunidad también es muy útil. Hay un canal IRC #clojure muy activo en Freenode (I’m s4muel), y la lista de correo / Grupo de Google es igualmente indispensable: Grupos de Google

Explore algunos códigos: consulte The Clojure Toolbox, ClojureSphere y las bibliotecas más o menos bien documentadas y fáciles de usar de http://clojurewerkz.org .

El blog firehose:

Planeta clojure

Incluso tenemos un boletín de noticias:

(def newsletter) – código y artículos de Clojure seleccionados a mano

Espero que esto ponga a alguien en marcha!

Creo que la mejor manera de aprender Clojure es escribir mucho Clojure, pero creo que es la mejor manera de aprender cualquier idioma. Los otros recursos enumerados aquí son excelentes.

Algunas otras cosas que aún no se han mencionado:

DRInnovations Bits de Clojure: Este libro cubre los fragmentos de código de entrada y de código intermedio para Clojure. Soy el autor de este libro. También se puede encontrar en el sitio web DRInnovations, LLC. La versión 8 ha sido lanzada!

Tutoriales para principiantes

  • Aprende Clojure – Los mejores tutoriales de Clojure | Hackr.io La colección de tutoriales va desde varios sitios web educativos de mejor programación como CodeAcademy, Udacity, CPPlearning, Lear Code the Hardway, Geeks for geeks, The new Boston, etc. y otros muchos sitios web famosos.
  • La Guía de programación en Clojure para principiantes es un tutorial largo y agradable para principiantes, que comienza con la instalación y continúa con funciones más avanzadas. No intenta abarcar todo, sino que resalta algunas características clave y proporciona una introducción a ellas.
  • Clojure: la programación funcional para la JVM por R. Mark Volkmann es otro tutorial para principiantes que cubre brevemente muchas de las características de Clojure.
  • Tutorial de Clojure para el programador que no es Lisp por Moxley Stratton.
  • Serie de Clojure de Eric Rochester

El primer libro de Clojure que leí fue Clojure de programación de Stu Halloway, y me pareció una buena introducción (suponiendo que ya tienes al menos algo de experiencia en programación). Actualmente estoy leyendo la versión de acceso temprano de The Joy of Clojure , y aunque la edición aún es un poco áspera, el contenido es genial.

Esto depende mucho de su fondo.
Si tienes un fondo de FP fuerte, hay muchos recursos.
Si no lo haces, ‘Living Clojure’ es un buen comienzo.
Living Clojure: Carin Meier: 9781491909041: Amazon.com: Libros

(Hay momentos en los que el bot de Quora que exige que hagas tu respuesta más útil es simplemente molesto y este es uno de ellos. Ahora tengo que escribir algo a continuación para satisfacerlo)

======


Esta respuesta es correcta porque, a mi entender, es correcta.

No sé cómo ser más útil o lo habría sido.

CodeLesson está ofreciendo un curso de Introducción a Clojure impartido por Amit Rathore, cuyo libro sobre Clojure saldrá pronto:

http://codelesson.com/courses/vi

Yo lo recomiendo:

Clojure desde cero: bienvenido
El estante pragmático | Programación Clojure

Y para practicar lo que aprendes:
4clojure – Bienvenido!

Comencé a leer una versión de acceso temprano de The Joy of Clojure ( http://www.manning.com/fogus/ ), y los capítulos disponibles hasta ahora proporcionan una cobertura exhaustiva de los fundamentos básicos con muchos ejemplos útiles.

Un hilo de Hacker News ( http://news.ycombinator.com/item… ) también le da algunos pulgares hacia arriba.

He usado la mayoría de los recursos enumerados por otros, pero quiero agregar uno más, que es projecteuler.net, aunque no está dirigido específicamente a clojurians, pero en mi opinión, resolver problemas en el sitio lo obliga a explotar muchas características que clojure tiene, especialmente para procesar simultáneamente una gran colección de datos y transformarlos usando funciones integradas. Desde mi experiencia, obligarme a resolver esos problemas utilizando clojure realmente me ayudó a descubrir qué tan poderosas son las estructuras de datos de clojure y las funciones integradas, realmente cambió la forma en que hago la programación. Oh, otra cosa, las comunidades de clojure tienen un sitio llamado clojure euler que publicó soluciones a los problemas, mi sugerencia es que, una vez que haya resuelto un problema en particular, intente ver cómo otros lo resolvieron, si fuera como yo, sorpréndase de cuántas maneras diferentes se puede usar clojure para abordar un problema que a su vez enriquece los vocabularios y modismos de su clojure.

Descargo de responsabilidad: soy uno de los creadores de KLIPSE.

KLIPSE es un compilador y evaluador de cljs en línea simple y elegante

También tenemos un blog de tecnología con un par de excelentes artículos sobre clojure y clojurescript.

Espero que disfrutes!

Descargue Light Table (Light Table) y use InstaREPL para comenzar a trabajar en los problemas en 4clojure

1. << Programación Clojure >>, ya que es el libro más actualizado en Clojure, los otros libros pueden contener códigos de ejemplo que no puede ejecutar en la última versión de Clojure.
2. Documentación Clojure | Empezando con Clojure | Tutoriales de Clojure
Esta es una documentación de Clojure impulsada por la comunidad.

http://4clojure.com/ es un sitio web en el que puede resolver problemas de clojure de relleno interactivo en blanco.

Recientemente construí este paquete clojure-katas, con la esperanza de que ofrezca más prácticas para los estudiantes de clojure. ¡Te gustaría encontrar esto útil! github.com/marshallshen/clojure-katas

La introducción de Eric Normand a Clojure es genial. LispCast Introducción a Clojure Parte 1

Las Notas en línea de Clojure de RubyLearning para principiantes ( http: //clojure-notes.rubylearnin …) se pueden usar para comprender rápidamente el lenguaje de programación de Clojure.

He leído todos los libros de Clojure que están publicados, o en “acceso temprano”, y personalmente, creo que para un programador principiante de Clojure, Programar Clojure de Stu Halloway es un gran punto de partida. Luego, dedique algo de tiempo a escribir un código y a construir algunos proyectos que le interesen.

Una vez que hayas hecho eso, no puedo recomendar The Joy of Clojure lo suficiente. Encapsula la gestalt de Clojure de una manera que ninguno de los otros libros lo hace, pero también supone más familiaridad que creo que un programador de Clojure por primera vez podría tener.

Si tengo alguna queja importante, es que no creo que ninguno de los libros discuta lo suficiente sobre las pruebas, aunque parte de eso está mitigado por estructuras de datos inmutables, y ninguno tiene ningún proyecto práctico real de sustancia en el que puedas hundir los dientes. como la práctica Common Lisp de Peter Seibel , o cualquier número de libros de Ruby o Python.

The Joy of Clojure es genial pero ayuda a seguir a la comunidad. El lenguaje sigue evolucionando y hay muchos casos de uso, por lo que ayuda a aprender de los profesionales. disclojure.org es un buen recurso que lo mantendrá actualizado.