¿Cómo se entrevista a los programadores de Scala? ¿Cuáles son los aspectos que el entrevistador busca cuando entrevista a un desarrollador de Scala?
¿Cómo se entrevista a los programadores de Scala? ¿Cuáles son los aspectos que el entrevistador busca cuando entrevista a un desarrollador de Scala?
Respuestas:
Primero, diría, piensa por qué necesitas un desarrollador de Scala. ¿Es realmente Scala lo que necesitas? Piense en lo que viene junto con Scala (IDE, herramientas de compilación, libs, otra capa de complejidad por encima de Java, etc.). De vuelta a la pregunta. Se trata de dos aspectos: comprensión teórica y habilidades prácticas. no dejes que la "teoría" te engañe. Es tan importante en Scala como lo práctico es importante en Java.
Vea si pueden refactorizar un fragmento de código imperativo en una buena alternativa funcional (ver arriba). Pruebe un bucle que implemente algunas matemáticas o algo por el estilo.
Encuentra su gusto por el estilo funcional frente al imperativo. Opte por un estilo más funcional, pero tenga cuidado de que no llegue a los extremos del lado del desarrollador.
Vea cuánto saben sobre las bibliotecas Scala (p. Ej., Lift, despacho, etc.) y herramientas (p. Ej. SBT, fsc, IDEA).
Vea qué tan bien pueden aprovechar Java (código -y- herramientas). Scala está estrechamente acoplado a Java, especialmente en entornos más serios. Saber esto es una gran ventaja.
Vea si están conectados a la comunidad. Pregúnteles sobre Martin Odersky y David Pollak. Pídales que nombren algunos proyectos Scala y que se los describan (Facebook, Twitter, FourSquare, DBPedia y DBPedia SpotLight). Vea si saben exactamente cómo se usa Scala en estos proyectos. ¿Han leído los artículos, visto los videos, etc.?
Pregúnteles acerca de los libros (solo hay unos pocos). Cuanto más sepan, mejor.
Como última palabra de advertencia, puedo decir que los idiomas brillantes tienen este extraño potencial para atraer a las personas equivocadas. Tenga cuidado con el tipo que llega a Scala por todas las razones equivocadas. Aquí hay algunos:
PD: Si encontraste un buen Joe, por favor, házmelo saber, ya que necesitamos algunos;)
En una entrevista en el mundo real, simplemente saber que Scala es la mitad de la batalla ganada. ¡Contratar a un buen programador siempre es difícil, independientemente del idioma!
Los programadores de Scala tienden a llegar al lenguaje porque ya estaban en la cima de su juego en Java y querían "llevarlo al siguiente nivel".
Si tiene una gran cantidad de desarrolladores de Scala disponibles para la entrevista, considérese afortunado. De lo contrario, las preguntas más relevantes podrían ser "¿Qué aspectos debería buscar en un programador al que voy a capacitar para usar Scala?" Y "¿Qué empresas pueden actualmente proporcionar servicios de capacitación?"
Me gusta ver soluciones a pequeños problemas como este: haga un histograma de los resultados de lanzar dos dados de seis caras 200 veces.
Vea los comentarios aquí para obtener algunas respuestas interesantes: http://briccetti.blogspot.com/2011/01/dice-throw-simulation-in-java-and-scala.html
Alguien con una solución como la de Daniel Sobral, o esta de Kevin Wright: http://ideone.com/8LFs3 merecería una mirada más cercana.
Si la respuesta se parece al código Java, entonces el solicitante podría no estar lo suficientemente lejos.
También me gustaría ver que la persona está conectada a la comunidad Scala: conoce los libros, autores, desarrolladores de código abierto, grupos de usuarios, personas interesantes.
Nunca he realizado ninguna contratación de Scala, pero buscaría comprender cómo funciona el trabajo, el tipo de patrón de clase y los conceptos básicos de la programación funcional.