Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Comment repérer la crème des développeurs ?
Pour un docteur en informatique, les programmeurs les plus doués apprennent des langages ésotériques

Le , par Stéphane le calme

0PARTAGES

12  4 
Paul Graham est un investisseur capital-risque et un programmeur Lisp. Il y a neuf ans de cela, ce docteur en informatique diplômé de Harvard soutenait « qu'il serait plus aisé d’avoir des programmeurs intelligents pour travailler sur des projets Python que sur des projets Java ».

Une phrase choc qui avait provoqué la polémique, mais Graham a invité tout un chacun à ne pas la prendre au premier degré, expliquant que « ce n'est pas que les programmeurs Java sont idiots, mais les programmeurs Python sont futés. Apprendre un nouveau langage de programmation c'est beaucoup de travail. Et les gens n'apprennent pas Python pour obtenir un travail ; ils l'apprennent parce qu'ils aiment sincèrement programmer et ne sont pas satisfaits des langages qu'ils connaissent déjà. »


À l'époque, Python n'était pas aussi populaire que Java et sur le marché de l'emploi, les entreprises ne se bousculaient pas pour demander des développeurs dans ce langage. Pourtant, certaines d'entre elles ont initié de développer des logiciels dans des langages ésotériques, n'attirant alors que ceux qui se sont donnés la peine d'apprendre ce langage qui sont, selon Graham, les meilleurs programmeurs. Il a baptisé ce phénomène le « paradoxe Python ».

Côté développeur, ce phénomène était encore plus accentué puisque, pour accéder à un bon emploi, il devrait « apprendre un langage qu'on apprend pas seulement pour avoir un travail »

Certaines sociétés très prisées par les développeurs utilisaient même cet atout comme critère de sélection ; Google par exemple publiait des offres d'emploi Java et demandait une expérience en Python.

Qu'est ce qui a motivé cet intérêt porté à Python ? Un des amis de Graham qui a fait le tour des langages de programmation les plus populaires et qui emploie Python pour la plupart de ses projets donne comme raison principale l'aspect du code source. Raison qui peut sembler légère de prime abord mais Graham explique que « quand vous programmez, vous dépensez plus de temps à lire du code qu'à en écrire. Vous manipulez les blocs de codes source de la même manière qu'un sculpteur le fait pour des blocs d'argile. Donc un langage qui génère un code source désagréable à lire est aussi horripilant pour un programmeur que l'est une terre grumeleuse pour un sculpteur. »

Source : blog Paul Graham

Et vous ?

Partagez-vous le point de vue de Paul Graham ?

Sur le choix d'apprentissage d'un nouveau langage de programmation, pensez-vous comme son ami ?

Neuf ans plus tard quel est, selon-vous, le langage qui a repris le flambeau de Python ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Voïvode
Membre émérite https://www.developpez.com
Le 25/06/2013 à 10:37
Citation Envoyé par Paul Graham
Et les gens n'apprennent pas Python pour obtenir un travail; ils l'apprennent parce qu'ils aiment sincèrement programmer et ne sont pas satisfaits des langages qu'ils connaissent déjà.
Quelqu'un qui pratique par passion est souvent plus efficace que quelqu'un qui pratique seulement par obligation. Java étant plus corporate, c'est normal qu'on tombe sur plus de gens qui bossent dessus seulement par obligation.

Citation Envoyé par ami de Paul Graham
Donc un langage qui génère un code source désagréable à lire est aussi horripilant pour un programmeur que l'est une terre grumeleuse pour un sculpteur.
Cela dépend surtout du programmeur. Un code Python bourré de one-liners est infect. Un code Java avec des lignes à rallonge est abominable.

Parmi les langages que j'ai pratiqué, j'aime indifféremment l'apparence de Python, Pascal, Java, Objective-C et même PL/SQL, je trouve qu'ils ont tous une esthétique visuelle différente. C'est comme la peinture, la musique ou les femmes : on a des goûts plus ou moins variés et exotiques.
12  0 
Avatar de Enerian
Membre éclairé https://www.developpez.com
Le 25/06/2013 à 11:21
Citation Envoyé par Jere15 Voir le message

En gros il fait l'hypothèse que python est mieux que java (ce qui reste à prouver), et que si tu n'arrives pas à résoudre un problème avec java, (ou que tu ne t'y sens pas bien), si t'es intelligent tu passes à python...
Euh... ce n'est absolument pas ce qu'il dit.

Il affirme juste que des compétences en Java sont beaucoup plus demandées sur le marché du travail que des compétences en Python (difficile de le contredire sur ce point). Il en tire la conclusion logique qu'il y a plus de développeurs choisissant Java juste pour avoir un job que de développeurs qui choisissent Python pour cette même raison. Donc, il est plus facile de trouver un développeur Python passionné puisque s'il choisit ce langage, c'est pour des raisons autres qu'alimentaires.

Cela ne veut bien entendu pas dire que la communauté Java ne compte pas de développeurs passionnés, et encore moins que Python est meilleur que Java ou je ne sais quoi (ce qui est complètement débile, "meilleur" n'ayant aucun sens sorti d'un contexte précis. Un langage peut être un meilleur choix qu'un autre dans un contexte précis, mais "meilleur" dans l'absolu n'a pas de sens dans ce domaine)...
7  0 
Avatar de hn2k5
Membre éclairé https://www.developpez.com
Le 26/06/2013 à 15:55
Moi j'ai connu des passionnés d'un langage ou d'un système, pour les faire bosser sur autre chose, je vous dis pas le calvaire.
Il y a un certain équilibre à rechercher entre la passion, l'autonomie, la polyvalence, et encore ça dépend du secteur d'activité, du type de société, ...
De toute façon, on est dans la théorie là. Les recruteurs que j'ai rencontré, il me semble qu'ils cherchaient souvent qqn qu'ils pouvaient mettre un peu partout, sans rechercher LA star qui connaît tout d'un langage. C'est peut-être particulier à certains secteurs, à certains types d'entreprises.
J'imagine qu'un éditeur de logiciels spécialisé dans un certain langage/métier ne va pas embaucher un type avec des connaissances variées comme pourrait le faire une SSII qui bosse pour différents clients.

Un bon développeur, c'est celui qui répond à votre besoin.
Oula ! Ça c'est fort, du haut niveau ! A graver dans le marbre !


Cdlmt
7  0 
Avatar de Luckyluke34
Membre émérite https://www.developpez.com
Le 25/06/2013 à 11:34
ésotérique, adj : se dit d'un mode d'expression, d'une œuvre qui n'est compréhensible que des initiés ; hermétique, abstrus, abscons : Langage ésotérique.
Je ne suis pas sûr que ça soit le bon adjectif pour qualifier Python s'il est si lisible que ça

"Langage alternatif" me paraît un meilleur choix surtout si on veut éviter le cliché : langage incompréhensible => petit génie => crème des développeurs dans toutes les situations ever de la terre entière.

Sinon 100% d'accord avec Voïvode : c'est un peu une banalité de dire que les gens qui font la démarche d'apprendre un autre langage (quel qu'il soit, "ésotérique" ou non) sont probablement plus passionnés et donc plus recherchés par les recruteurs car réputés plus efficaces.

Le fait que ça soit Python ou autre chose (on pourrait dire Ruby, Scala ou Clojure aujourd'hui) reste un sous-produit assez aléatoire de ce phénomène.
5  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 26/06/2013 à 10:58
(1) Le blog a 9 ans d'âge. Python et Java, donc, ne sont que des archétypes, il ne faut pas les juger comme tels.

(2) L'idée n'est pas de dire que Python est supérieur à Java. L'idée est de dire qu'un programmeur qui fait des choses en plus de ce qu'on lui demande aura dans sa boite a outils plus d'éléments pour progresser que celui qui se contente de faire des piges dans le langage du jour.

(3) Trouver des programmeurs de bon niveau, c'est d'une difficulté absolue. Il y a de nombreux marqueurs, mais la plupart sont de qualité dérisoire. La "Passion" est de qualité faible, mais comparé aux autres, c'est mieux que rien.
5  0 
Avatar de Arnard
Membre émérite https://www.developpez.com
Le 25/06/2013 à 11:24
A la mention de langage ésotériques, j'étais parti à sacrifier ds corbeaux pour corriger mes bugs
4  0 
Avatar de ternel
Expert éminent sénior https://www.developpez.com
Le 25/06/2013 à 13:49
"ésotérique" = "python"?
On rêve ou quoi?

Allez faire un tour sur esolangs.org ou mieux encore 99 bottles of beer

Là vous aurez des langages ésothériques: en trinaire (malboge), sans variables (plusieurs), avec un des pingouins (goto++), dont le code source est une image (piet) ou encore en anglais intégral (Shakespear)
4  0 
Avatar de benjamin.morelle
Membre à l'essai https://www.developpez.com
Le 26/06/2013 à 11:27
On en revient tjr a la même question, que-est-ce qu'un bon dev ?
4  0 
Avatar de fozzeuh
Membre confirmé https://www.developpez.com
Le 26/06/2013 à 14:33
Je ne suis pas d'accord avec la personne qui a émis ce raisonnement car il peut y avoir des passionnés qui préfèrent connaitre tout de java et pas apprendre le python, apprendre un langage ne veut pas dire que l'on est passionné, juste qu'on veut découvrir ce langage.

Pour moi trouver de bons développeurs ne revient pas à dire tu connais ça tu es bon et la passion pour le développement ça n'à rien avoir avec les langages appris ou non.
4  0 
Avatar de Bousk
Rédacteur/Modérateur https://www.developpez.com
Le 12/09/2014 à 12:09
Citation Envoyé par Agrajag Voir le message
Et au passage, c'est franchement de la m*** leur dictionnaires, ils peuvent pas faire des tableaux comme tout le monde?
En tous cas un développeur qui me sort un truc pareil je le catégorise pas bon illico.
Ne pas être conscient de la différence entre un dict/map et un tableau/array c'est assez..
Sans compter qu'il y a 2 syntaxes très distinctes pour les créer {} et [] (contrairement à PHP, LUA et surement d'autres)
L'accès aux membres est dans les 2 cas par l'opérateur [], comme dans... 99% des langages ? C++, JAVA, C#, ... tous les langages qui ont map et array dans leurs outils utilisent l'opérateur []
4  0