Comment les programmeurs Scala sont-ils interviewés? Quels sont les aspects que l'intervieweur recherche lors d'un entretien avec un développeur Scala?
Comment les programmeurs Scala sont-ils interviewés? Quels sont les aspects que l'intervieweur recherche lors d'un entretien avec un développeur Scala?
Réponses:
Tout d'abord, je dirais, pensez pourquoi vous avez besoin d'un développeur Scala. Est-ce vraiment Scala dont vous avez besoin? Pensez à ce qui vient avec Scala (IDE, outils de construction, libs, une autre couche de complexité au dessus de Java etc ...). Revenons à la question. Il se décline en deux volets: compréhension théorique et capacités pratiques. ne vous laissez pas tromper par la "théorie". C'est aussi important dans Scala que l'aspect pratique est important dans Java.
Voyez s'ils peuvent refactoriser un extrait de code impératif en une bonne alternative fonctionnelle (voir ci-dessus). Essayez une boucle qui implémente des mathématiques ou quelque chose du genre.
Retrouvez leur goût pour le style fonctionnel vs impératif. Optez pour un style plus fonctionnel mais prenez garde qu'il n'atteigne pas les extrêmes du côté du développeur.
Découvrez tout ce qu'ils savent sur les bibliothèques Scala (par exemple, Lift, dispatch, etc.) et les outils (par exemple SBT, fsc, IDEA).
Découvrez dans quelle mesure ils peuvent tirer parti de Java (code -et- outils). Scala est étroitement couplé à Java spécialement dans les environnements plus graves. Le savoir est un gros plus.
Voyez s'ils sont connectés à la communauté. Interrogez-les sur Martin Odersky et David Pollak. Demandez-leur de nommer quelques projets Scala et de vous les décrire (Facebook, Twitter, FourSquare, DBPedia et DBPedia SpotLight). Voyez s'ils savent exactement comment Scala est utilisé dans ces projets. Ont-ils lu les articles, regardé les vidéos, etc.?
Demandez-leur quels sont les livres (il n'y en a que quelques-uns). Plus ils en savent, mieux c'est.
Comme dernière mise en garde, je peux dire que les langues brillantes ont cet étrange potentiel pour attirer les mauvaises personnes. Soyez prudent sur le type qui vient à Scala pour toutes les mauvaises raisons. En voici peu:
PS: Si vous avez trouvé un bon Joe, faites-le-moi savoir, car nous en avons besoin;)
Dans une interview dans le monde réel, savoir simplement que Scala représente la moitié de la bataille gagnée. Embaucher un bon programmeur est toujours difficile, quelle que soit la langue!
Les programmeurs Scala ont tendance à en venir au langage car ils étaient déjà au sommet de leur art en Java et voulaient «passer au niveau supérieur».
Si vous avez une abondance de développeurs Scala disponibles pour une entrevue, alors considérez-vous chanceux. Sinon, les questions les plus pertinentes pourraient être «Quels aspects dois-je rechercher chez un programmeur que je vais former pour utiliser Scala?» Et «Quelles entreprises sont actuellement en mesure de fournir des services de formation?»
J'aime voir des solutions à de petits problèmes comme celui-ci: Faites un histogramme des résultats du lancement de deux dés à six faces 200 fois.
Voir les commentaires ici pour des réponses intéressantes: http://briccetti.blogspot.com/2011/01/dice-throw-simulation-in-java-and-scala.html
Quelqu'un avec une solution comme celle de Daniel Sobral, ou celle de Kevin Wright: http://ideone.com/8LFs3 mériterait un examen plus approfondi.
Si la réponse ressemble à du code Java, le demandeur pourrait ne pas être assez loin.
Je voudrais aussi voir que la personne est connectée à la communauté Scala: connaît les livres, les auteurs, les développeurs open source, les groupes d'utilisateurs, les gens intéressants.
Je n'ai jamais fait d'embauche Scala, mais je chercherais à comprendre comment fonctionnent les implicites, le modèle de classe de type et les bases de la programmation fonctionnelle.