Comment partagez-vous votre métier avec des non-programmeurs?

43

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.

EpsilonVector
la source
Telle est la nature de la profession: il y a peu de récompenses tangibles pour vos efforts, car vous êtes le seul à comprendre ce que vous faites. Cependant, la connaissance, l'argent sont assez enrichissants pour la plupart.
Personne
1
Connexes: Comment puis-je devenir plus articulé .
Adam Lear
12
Soyez heureux que vous n'écriviez pas des choses pour la sécurité. La sécurité est encore moins démontrable qu'autre chose. "Vous voyez, il fait la même chose qu'auparavant, sauf que maintenant il est sécurisé ..."
Shawn D.
2
Quelqu'un peut-il m'expliquer à quelle catégorie cette question
appartient
1
@Dave cela correspond à la catégorie de questions qui ont été postées lorsque le site était encore en version bêta, si ma mémoire est bonne. Les règles n'étaient pas tout à fait polies à l'époque.
EpsilonVector

Réponses:

31

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. :)

Vaccano
la source
25
+1 pour "Et même dans ce cas, il est difficile de faire comprendre à quelqu'un à quel point une classe bien conçue avec un bon test unitaire est cool." J'ai du mal à faire comprendre cela à certains programmeurs.
CaffGeek
3
Je suis fan de l'utilisation de mauvaises analogies pour expliquer des concepts ésotériques.
Malachi
49

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"

JohnFx
la source
13
+1 - J'utilise cette méthode tout le temps. Si je veux vraiment qu'ils sachent comment s'est passée ma journée, je leur jetterai quelques mots et je regarderai leur regard vitreux s'emparer de leurs yeux. Puis quelqu'un change de sujet.
Joel Etherton
7
J'ai constaté que les gens ont tendance à changer de sujet dès que je mentionne les ordinateurs. Ou alors, ils commencent à se plaindre de leur ordinateur et à demander conseil. Je suppose que les médecins ont le même problème.
Brian Ortiz
3
@Brian sauf que la plupart des médecins règlent les problèmes plutôt que de construire de nouveaux systèmes;)
Armand
2
Oui. La réponse la plus simple est "Je crée des choses ... plus spécifiquement, je crée un système de cluster haute disponibilité en temps réel, pour ..." - et les voilà partis ...
Sorantis
C'est ce que je fais. Ensuite, j'attends les 5 secondes de silence et je dis: "Et voilà que le tueur de conversation est à l'écart. Alors, que faites-vous?"
pdr
12

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.

Mpenrow
la source
12

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:

Le fait est que la civilisation a besoin d'esclaves. Les Grecs étaient tout à fait là. À moins qu'il n'y ait des esclaves pour faire le travail horrible, horrible et sans intérêt, la culture et la contemplation deviennent presque impossibles. L'esclavage humain est faux, peu sûr et démoralisant. Sur l'esclavage mécanique, sur l'esclavage de la machine, l'avenir du monde dépend.

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é.

Mike Dunlavey
la source
3
J'ai lu qu'au début, l'ordinateur de relais de Harry Potter , la magie est souvent utilisée pour décrire ce que nous faisons aussi bien sûr;)
jk.
@jk: Je parie que seul attire les étudiants dans ses cours :)
Mike Dunlavey
@jk. Le plus souvent, je vois de la magie noire dans nos œuvres.
Heishe
7

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.

mouviciel
la source
1
+1 pour se concentrer sur les relations avec les collègues. Tout le monde peut s'identifier à ce genre de chose. "Je suis allé déjeuner avec le patron et il disait ..." est loin d'être comparable à "j'ai passé la moitié de ma journée à essayer de supprimer les conditions de course"
Andy Hunt
3

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.

jhocking
la source
Quelqu'un a dit qu'ils construisaient des esclaves mécaniques, après un autre "problème" de client, je me sens comme nous sommes des esclaves et nous construisons des dystopies mécaniques pour nous-mêmes.
gbjbaanb
2

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.

MAK
la source
1

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.

Evan Plaice
la source
1

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."

Huperniketes
la source
1

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.

Kevin Cline
la source
Ce serait un monde difficile où vous ne pourriez pas programmer votre ordinateur pour faciliter la programmation ("recherche visuelle... Pour une virgule errante").
Compman
1

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.

Frankc
la source
0

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 (:

Mireille Raad
la source
0

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.

l0b0
la source
0

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.

Andrew M
la source
0

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 ...)

Macke
la source
0

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.

puk
la source
-1

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.

Amy Patterson
la source
ou remplacer leur travail, oh non !!!
Jhocking
-2

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 ...

crosenblum
la source
-2

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.

fwgx
la source