Parfois, je me sens comme un musicien qui ne peut pas jouer en direct. La programmation est une compétence plutôt cool et un monde très vaste, mais elle se déroule souvent «hors caméra» - dans votre tête, dans votre bureau, loin des spectateurs.
Vous pouvez bien sûr parler de programmation avec d’autres programmeurs, et il existe une programmation entre pairs, ce qui vous permet de créer quelque chose que vous pouvez montrer aux gens, mais quand il s’agit d’expliquer aux non-programmeurs ce que vous faites, ou comment votre journée au travail, c'est un peu délicat.
Comment obtenez-vous les non-programmeurs dans votre vie pour comprendre ce que vous faites?
REMARQUE: il ne s'agit pas d'une répétition de la procédure permettant aux non-programmeurs de comprendre le processus de développement , car cette question concernait la gestion des attentes du client.
la source
Réponses:
Trois mots:
dumb it down
La programmation est complexe. Il faut beaucoup de travail pour le comprendre. Et les joies de la programmation sont encore plus subtiles.
Pour que je puisse communiquer mes succès et tels aux autres (c.-à-d. La famille), je dois communiquer à un niveau plus commun. Comparez la programmation à des choses normales du monde réel.
(c.-à-d. un objet à une voiture avec un tableau de bord et des sièges et ....)
Il est même préférable que vous sachiez quelque chose de votre public parce que vous pouvez utiliser des choses qu’ils comprennent qui sont plus complexes que les concepts quotidiens normaux.
Par exemple, ma femme était enseignante. Je peux donc comparer certains de mes processus de développement de logiciels aux processus d’enseignement qu’elle devait utiliser. Cela aide énormément.
Mais à la fin, vous devez simplifier, simplifier encore et encore. Et même dans ce cas, il est difficile de faire comprendre à quelqu'un à quel point une classe bien conçue avec de bons tests unitaires est cool. :)
la source
Je n'essaye même pas. S'ils ne sont pas suffisamment orientés vers la technologie pour avoir au moins une compréhension de base de la programmation, je ne vais que les ennuyer avec les détails. D'habitude, je vais simplement avec quelque chose de très haut niveau comme "Je crée des sites Web" ou "J'écris des programmes informatiques pour faire X"
la source
J'essaie de l'expliquer en termes de résolution d'un problème. Je viens de choisir d'utiliser un programme informatique pour résoudre le problème. De cette façon, vous pourrez discuter de ce que vous avez fait en termes de problème que vous essayez de résoudre. Une fois qu'ils ont compris cela, la solution par la programmation n’est pas très loin et peut généralement être réalisée par des types non avertis.
la source
Mon frère Rob m'a posé des questions à ce sujet. (C'est un artiste et illustrateur, comme dans les livres pour enfants, les intérieurs de musées, etc.)
J'ai essayé de l'expliquer en lui montrant l'ordinateur de relais d'Harry Porter , parce que je pense qu'il capture l'essence des ordinateurs et de la programmation avec une sorte d'intimité.
Ce n'était pas ce qu'il voulait et j'étais un peu déconcerté.
Ce n’est que plus tard que j’ai réalisé quel était le véritable problème. On m'a rappelé cette citation d'Oscar Wilde:
Ce qui me passionne en tant qu’ingénieur, c’est que je construis des esclaves mécaniques. Quand j'étais enfant, je voulais construire un barrage dans la crique et faire en sorte que la roue à eau produise de l'électricité pour que cela puisse faire quelque chose pour moi alors que je viens de regarder. Dans le moteur d'une voiture, il y a un arbre à cames. C'est en fait un programme primitif. Il ouvre et ferme les vannes quand je le souhaite pour que je n’aie pas à le faire.
Le monde d'un artiste est complètement différent. Si vous écoutez, avec les yeux fermés, une interprétation de la 9e symphonie de Beethoven, vous êtes transporté. Vous devez y accorder toute votre attention et, une fois terminé, vous avez hâte. Si vous visitez la maison-chef de Frank LLoyd Wright, Falling Water, vous êtes transporté. Honnêtement, je ne sais pas comment on pourrait y vivre. Où pouvez-vous faire des dégâts? Il vous capture complètement. C'est une symphonie architecturale.
L' art ne fait pas quelque chose pour vous, il fait quelque chose à vous.
J'ai essayé de trouver l'art dans ce que je fais. Il y a de la beauté dedans, si vous regardez, mais vous devez regarder. C'est ce qui nous aurait connecté.
la source
Raconter une histoire. Ne vous concentrez pas sur ce que vous faites, mais sur ce que vous ressentez quand vous le faites, comment vous êtes passionné ou ennuyé à ce sujet, sur les relations avec vos collègues.
la source
Mes deux analogies à cet égard sont: une recette et une bureaucratie massive. C’est ce que j’ai expliqué dans cette AQ: 30 minutes pour expliquer la programmation à une jeune fille de 15 ans.
J'ai utilisé l'analogie de la recette à plusieurs reprises pour expliquer comment la programmation consiste à écrire un ensemble d'instructions rigoureuses dont le résultat est tangible et prévisible.
En fait, je n'ai utilisé l'analogie de la bureaucratie que quelques fois, car la plupart des gens n'ont pas vraiment besoin de comprendre au-delà de l'analogie de la recette, mais les deux fois ont été très éclairants pour la personne. Ils semblaient penser que la programmation impliquait un rappel total de chaque ligne de code (par exemple, "Mais si vous avez une mémoire si merdique, comment pouvez-vous programmer un ordinateur?") pour atteindre l'objectif plus large. Les modules d'un programme sont comme les départements d'une grande entreprise: des unités autonomes qui traitent principalement de leur propre partie du tout et communiquent avec les autres départements par le biais de mémos.
la source
Je pense que je reçois le plus de réponses lorsque j'explique quelque chose en termes de l'idée derrière le code au lieu du code lui-même. Je supprime tout le jargon technique, évite de mentionner les termes liés à la programmation et parle simplement de l'idée et de ce qui est réellement fait .
Par exemple, j'ai récemment essayé d'expliquer le fonctionnement d'un filtre anti-spam. Je viens de dire qu'il garde une trace des mots généralement présents dans le spam et de ceux qui ne le sont pas. L'enregistrement est construit à l'aide de spams connus et non spams. Après cela, chaque fois qu'un nouvel e-mail arrive, nous vérifions simplement combien de mots ont l'air spammés (c'est-à-dire présents dans notre liste de mots spammés) et combien ont l'air non spammés. S'il y a trop de mots de spam, il s'agit probablement de spam et est donc envoyé à la corbeille à spam. Les non-techniciens auxquels j'ai parlé ont très bien suivi cette idée.
la source
Métaphores
Souvent, je ne le décris pas du tout comme un programme, j'essaie de le représenter comme un concept complètement différent avec des relations similaires.
Cela rend la visualisation du programme beaucoup plus intéressante et parfois cela me permet de voir le programme sous un nouveau jour.
Vous ne décrivez pas l'électricité à quelqu'un qui n'a jamais travaillé avec elle auparavant en parlant de courant et de tensions, n'est-ce pas? De plus, il est amusant de décrire certains concepts comme si un processus informatique ultra-conscient les réalisait comme par magie. Une petite histoire, l’imagination ne leur fait pas mal, car la réalité de la froideur et de la rationalité des ordinateurs est réelle.
la source
J'ai répondu à une question similaire de manière plus détaillée , mais l'essentiel est: "La programmation, c'est comme construire une usine ou une chaîne de montage."
la source
Beaucoup de gens qui n'ont pas programmé semblent croire qu'un programmeur passe beaucoup de temps à rechercher les bogues, cherchant visuellement des milliers de lignes de code pour trouver une virgule errante. Alors, je leur assure d’abord que ce n’est pas le cas, et si c’était le cas, je serais complètement désespéré.
Je compare souvent la programmation informatique à la rédaction d'un livre de recettes. Un livre de recettes est un ensemble d'instructions destiné à des utilisateurs, tandis qu'un programme d'ordinateur est un ensemble d'instructions destiné à un ordinateur. Certains programmes sont beaucoup plus complexes que les livres de recettes et les programmes sont modifiés plus fréquemment, mais la structure présente certaines similitudes. Si un livre de cuisine contient sept copies des instructions pour préparer une sauce et que la recette doit être modifiée, quelqu'un doit trouver toutes ces copies et les corriger toutes.
la source
Je pense qu'une bonne analogie est la construction d'une usine. La plupart des gens ont vu quelque chose du genre "Comment c'est fait", où l'on voit un article se mélanger à travers différentes courroies de convoyage et machines avec, espérons-le, un produit fini sortant à la fin. Je dis aux gens que je construis des choses comme ça, mais au lieu d'être des usines physiques travaillant sur des articles physiques, elles sont virtuelles et travaillent sur des données. Bien sûr, ce n’est pas une bonne analogie pour tout type de programmation, mais je pense que cela donne une bonne idée de la complexité et permet de mettre en parallèle de nombreux types d’applications.
la source
Vous ne pouvez pas vraiment partager votre métier - juste les gros titres de votre travail avec d'autres
Cependant, au lieu de partager votre métier, vous pouvez partager votre vie avec des personnes qui partagent le même métier que vous (:
la source
Je ne parle généralement pas de la façon dont cela se fait, mais plutôt des caractéristiques du travail .
J'insiste généralement sur le fait que c'est incroyablement compliqué, si compliqué qu'aucune personne ne peut espérer commencer à comprendre exactement ce qui se passe dans les détails. Cela nécessiterait probablement 30 ans d’étude des différentes parties en interaction (électronique via des frameworks), plus environ une heure par ligne de code active. À ce moment-là, vous devriez reprendre les études car le matériel aurait tellement changé que il faudra encore 10 ans pour adopter la dernière version.
L’autre aspect important est de savoir à quel point il peut être gratifiant de créer quelque chose de si flexible que des milliers, voire des millions de personnes, pourraient l’utiliser pour enrichir leur vie, quelque chose d’unique (au moins dans le détail) et dont vous avez beaucoup appris.
Si personne ne m'a bouché la bouche avec des chaussettes à ce stade, je démontrerais volontiers une application, montrant un peu de la complexité et de la flexibilité possibles.
la source
Je leur dis qu’en dehors de l’écriture de symphonies, de thèses et de romans mathématiques, la programmation est la seule chance que vous aurez de vous engager dans des tâches / structures avec ce niveau de complexité et de complexité. Bien sûr, ne dites pas qu'une application Web décente est un chef-d'œuvre historique, mais une fois que les gens se rendent compte que vous utilisez votre esprit à ce niveau chaque jour, alors ils l'obtiennent. De nombreux emplois sont dignes et bien rémunérés, mais se résument à une tâche assez simple, une procédure répétée maintes et maintes fois.
Au moins, c'est comme ça que je le vois. Je peux me tromper.
la source
En tant que prise différente des 15 autres réponses ...
Au lieu d’expliquer les détails de mon travail (programmation), j’essaie de me concentrer sur les solutions qu’il résout, à savoir quels problèmes les systèmes / logiciels que je construis résolvent-ils réellement pour l’utilisateur. Il s’agit généralement d’un domaine qui ne fait pas partie de la programmation, à moins que vous n’écriviez un compilateur ou quelque chose du genre, auquel cas vous devrez expliquer pourquoi cela est utile.
De cette façon, il est plus facile pour les gens de comprendre que c'est une nature complexe et qu'elle est liée au "monde réel".
Par analogie, en tant que forgeron médiéval, j’expliquerais probablement (à une dame de la taverne locale) que je fabrique des épées pour hacher l’ennemi en morceaux, et non pas comment je trempe l’acier et le frappe avec un certain angle et avec force (sauf ils demandent). Espérons qu'elle comprendra que le piratage d'un ennemi en morceaux est utile (...) et peut être délicat à faire (manque d'acier, ennemis blindés, lieu de travail enfumé, etc.) et vous permet ainsi de mieux comprendre la performance d'une tâche complexe.
(Ainsi, lancer des enclumes équivaudrait à faire des compilateurs, et vous auriez à expliquer à quoi ils servent ...)
la source
Je compare cela à la construction d'une maison, si nous vivions dans un univers étrange avec des particules exotiques et anti-temps:
Vous avez une idée de maison vraiment cool, vous construisez donc un aperçu de ce à quoi elle va ressembler et vous avez un plan général sur la façon de procéder. Vous allez à la quincaillerie et achetez du bois pour la construction des murs, mais ils continuent de tomber parce que le sol est inégal. Alors vous allez acheter du ciment pour poser les fondations, mais le ciment ne sèche pas et vous ne pouvez pas comprendre pourquoi. Vous retournez à la quincaillerie et demandez pourquoi, mais l'employé va catatonique. Vous allez dans 8 quincailleries différentes jusqu'à ce que l'on vous dise que le ciment que vous avez utilisé a été mis au point à l'automne 1989, mais que vous avez acheté votre propriété à l'hiver 1989, elles sont donc incompatibles. Il vous vend le ciment 2013.1.1 le plus récent. Vous remontez les bases et dès que vous le faites, le ciment disparaît. Cette fois, tous les employés vont catatonique, alors vous google votre maison et trouvez que c'était autrefois un site d'essais nucléaires. Ensuite, vous google les effets des essais nucléaires sur le sol et constatez que cela provoque des radicaux libres. Vous allez sur Google et commencez vos recherches sur le rayonnement électromagnétique, puis sur les fermions, puis sur le boson, puis sur la théorie des cordes et sur le chat. Vous ne voulez pas abandonner parce que vous avez perdu beaucoup de temps, alors vous frappez fort la bouteille. Vous rentrez tard et mettez votre femme en colère, affirmant qu'elle est la raison pour laquelle vous ne pouvez pas construire la maison, car elle et les enfants prennent tout votre temps ... Environ trois mois plus tard, vous réalisez que vous êtes passé de et quelque chose sur un chat. Vous ne voulez pas abandonner parce que vous avez perdu beaucoup de temps, alors vous frappez fort la bouteille. Vous rentrez tard et mettez votre femme en colère, affirmant qu'elle est la raison pour laquelle vous ne pouvez pas construire la maison, car elle et les enfants prennent tout votre temps ... Environ trois mois plus tard, vous réalisez que vous êtes passé de et quelque chose sur un chat. Vous ne voulez pas abandonner parce que vous avez perdu beaucoup de temps, alors vous frappez fort la bouteille. Vous rentrez tard et mettez votre femme en colère, affirmant qu'elle est la raison pour laquelle vous ne pouvez pas construire la maison, car elle et les enfants prennent tout votre temps ... Environ trois mois plus tard, vous réalisez que vous êtes passé depresque fini la maison, pour ne même pas savoir pourquoi vous vouliez construire la maison en premier lieu.
la source
Je leur dis simplement que ce que je fais, c'est regarder ce qu'ils font pour leur travail et créer un logiciel informatique qui facilitera leur travail.
la source
Comme certains d'entre vous l'ont dit, utilisez des analogies, cela leur semble logique. J'essaie toujours d'introduire Google de façon ou d'autre, si mon code fait quelque chose de semblable à Google, ou montre les avantages financiers, ou comment cela aide les gens d'une manière ou d'une autre ...
la source
J'abandonne parfois et dis simplement que je passe ma journée à éditer des fichiers texte. Ce qui est généralement vrai si ce n'est l'histoire complète.
la source