it-swarm-fr.com

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

Parfois, je me sens comme un musicien qui ne peut pas jouer des spectacles en direct. La programmation est une habileté assez cool et un monde très large, mais beaucoup d'entre elles se produit "hors caméra" - dans votre tête, dans votre bureau, loin des spectateurs.

Vous pouvez bien sûr parler de la programmation avec d'autres programmeurs et il y a une programmation par pair et vous pouvez créer quelque chose que vous pouvez montrer aux personnes, mais lorsqu'il s'agit d'expliquer à des non-programmeurs, qu'est-ce que vous faites, ou comment Votre journée au travail, c'est une sorte de délicat.

Comment obtenez-vous les non programmeurs de votre vie pour comprendre ce que vous faites?

Remarque: il ne s'agit pas d'une répétition de Obtenir des non-programmeurs pour comprendre le processus de développement , car cette question portait sur la gestion des attentes des clients.

43
EpsilonVector

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 moi de communiquer mes succès et tels aux autres (c'est-à-dire la famille), je dois communiquer sur un niveau plus commun. Comparez la programmation pour les choses normales du monde réel.

(c'est-à-dire un objet à une voiture avec un tableau de bord et des sièges et ....)

C'est encore mieux si vous savez quelque chose à propos de votre public, car vous pouvez utiliser des choses qu'ils comprennent qui sont plus complexes que les concepts quotidiens normaux.

Par exemple, ma femme était un enseignant de l'école. Je peux donc comparer certains de mes processus de développement de logiciels pour enseigner les processus qu'elle a dû utiliser. Cela aide énormément.

Mais à la fin, vous devez simplifier, simplifier et simplifier d'autres. Et même alors, il est difficile de faire comprendre à quelqu'un à quel point une classe bien fabriquée est cool avec de bons tests unitaires. :)

31
Vaccano

Je n'essaie même pas. S'ils ne sont pas suffisamment orientés technologiques pour avoir au moins une compréhension de base de la programmation, je ne vais que les ennuyer avec les détails. Habituellement, je vais juste avec quelque chose de très haut niveau comme "je crée des sites Web" ou "j'écris des programmes informatiques pour faire x"

49
JohnFx

J'avais mon frère Rob posé-moi à ce sujet. (C'est un artiste et illustrateur, comme des livres pour enfants, des intérieurs de musée, des choses comme ça.)

J'ai essayé de l'expliquer en lui montrant l'ordinateur de relais de Harry Porter , car je pense que cela capture l'essence des ordinateurs et de la programmation dans un type d'intestin.

Ce n'était pas ce qu'il voulait, et j'étais un peu battu.

Seulement plus tard, j'ai réalisé ce que le vrai problème était. On m'a rappelé cette citation Wilde Oscar:

Le fait est que cette civilisation nécessite des esclaves. Les Grecs étaient tout à fait là. Sauf que des esclaves ne font que le travail laid, horrible, inintéressant, la culture et la contemplation deviennent presque impossibles. L'esclavage humain est faux, non sécurisé et démoralisant. Sur l'esclavage mécanique, sur l'esclavage de la machine, l'avenir du monde dépend.

Ce qui m'excite comme un ingénieur est que je construis des esclaves mécaniques. En tant que enfant, je voulais mettre un barrage dans la crique et faire de l'électricité, donc cela pourrait faire quelque chose pour moi , pendant que je viens de regardé. Dans le moteur dans une voiture, il y a un arbre à cames. C'est en fait un programme primitif. Il ouvre et ferme les vannes lorsque je le veux , donc je n'ai 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 9ème symphonie de Beethoven, vous êtes transporté. Vous devez vous accorder votre attention complète, et quand c'est fini, vous le souhaitez. Si vous visitez la maison de chef-d'œuvre de Frank Lloyd Wright, qui tombe de l'eau, vous êtes transporté. Honnêtement, je ne sais pas comment quelqu'un pouvait y vivre. Où pouvez-vous faire un gâchis? Cela 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 une beauté dedans, si vous regardez, mais vous devez regarder. C'est ce qui nous aurait connecté.

12
Mike Dunlavey

J'essaie de l'expliquer en termes de résolution d'un problème. Je choisis simplement d'utiliser un programme informatique pour résoudre le problème. De cette façon, vous pouvez discuter de ce que vous avez fait en termes de problème que vous essayez de résoudre. Une fois qu'ils comprennent cela, le saut à la résoudre par la programmation n'est pas très loin et peut généralement être fabriqué par des types non techniques.

12
mpenrow

Raconter une histoire. Ne vous concentrez pas sur ce que vous faites, mais sur la façon dont vous vous sentez quand vous le faites, comment vous êtes passionné ou ennuyé à ce sujet, sur les relations avec vos collègues.

7
mouviciel

Mes deux analogies à cette fin sont les suivantes: une recette et une bureaucratie massive. C'est ce que j'ai expliqué dans cette QA: minutes pour expliquer la programmation à un enfant de 15 ans

J'ai utilisé l'analogie de recette plusieurs fois pour expliquer comment la programmation consiste à écrire un ensemble rigoureux d'instructions ayant un résultat tangible et prévisible lorsqu'il est suivi.

J'ai seulement utilisé l'analogie de bureaucratie à quelques reprises, car la plupart des gens n'ont pas vraiment besoin de comprendre au-delà de l'analogie de la recette, mais les deux fois étaient très illuminant pour la personne. Ils semblaient penser que la programmation signifiait le rappel total de toutes les lignes de code (par exemple. "Mais si vous avez une mémoire aussi merdique, alors comment programmer un ordinateur?") Mais vraiment il s'agit de construire beaucoup de modules autonomes qui travaillent ensemble pour accomplir l'objectif plus vaste. Les modules d'un programme sont comme les départements d'une grande entreprise: des unités autonomes qui traitent principalement de leur part de l'ensemble et communiquent avec d'autres départements à travers des mémos.

3
jhocking

Je pense avoir le plus de réponse lorsque j'explique quelque chose en termes d'idée derrière le code au lieu du code lui-même. Je dise simplement tout le jargon technique, évitez de mentionner les termes liés de la programmation et de parler de l'idée et de ce qui est en réalité fait.

Par exemple, j'ai récemment essayé d'expliquer comment fonctionne un filtre anti-spam. Je viens de dire qu'il conserve un record des mots trouvés généralement dans le spam et ceux qui ne sont pas trouvés dans le spam. L'enregistrement est construit en utilisant des courriers connus du spam et de la non-spam. Après cela, chaque fois qu'un nouvel e-mail arrive, nous vérifions simplement combien de mots il a l'air spammy (c'est-à-dire dans notre dossier de mots spammés) et combien d'aspect non spammy. S'il y a trop de mots spammés, il est probablement spam et est donc envoyé à la bac de spam. Les personnes non-techniques que je parlais à la suivi de l'idée assez bien.

2
MAK

Métaphores

Beaucoup de fois, je ne le décris pas comme un programme du tout, j'essaie de le représenter comme un concept complètement différent avec des interrelations similaires.

Il rend la visualisation du programme beaucoup plus intéressant et cela aide-moi parfois à le regarder dans une nouvelle lumière.

Vous ne décrivez pas l'électricité à quelqu'un qui n'a jamais travaillé avec elle avant de parler de courant et de tensions, n'est-ce pas? De plus, c'est amusant de décrire certains concepts comme si un processus informatique ultra conscient de les faire se produire comme au moyen de magie. Une petite image d'histoire ne leur fait pas mal comme la réalité des ordinateurs froids et rationnels.

1
Evan Plaice

J'ai répondu à une question similaire plus en détail , mais la gist est "," la programmation est comme créer une usine ou une chaîne de montage ".

1
Huperniketes

Beaucoup de personnes qui n'ont pas programmé semblent croire qu'un programmeur passe beaucoup de temps à la chasse à la recherche de bugs, à la recherche visuelle des milliers de lignes de code pour une virgule errante. Donc, 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ément sans espoir.

Je comparais souvent la programmation informatique à écrire un livre de cuisine. Un livre de recettes est un ensemble d'instructions pour les personnes, tandis qu'un programme informatique est un ensemble d'instructions pour un ordinateur. Certains programmes sont beaucoup plus complexes que les livres de cuisine et les programmes sont modifiés plus fréquemment, mais il existe une similitude dans la structure. Si un livre de recettes contient sept copies des instructions de fabrication d'une sauce et que la recette doit être modifiée, une personne doit trouver toutes ces copies et les corriger tous.

1
kevin cline

Je pense qu'une bonne analogie consiste à construire une usine. La plupart des gens ont vu quelque chose comme "Comment cela est fait" où vous voyez un élément à mélanger à travers différentes ceintures de convoyeur et machines, avec espérons qu'un produit fini sortit à la fin. Je dis aux gens que je construis des choses comme ça, mais au lieu d'être des usines physiques travaillant sur des objets physiques, ils sont virtuels et ils travaillent sur des données. Bien sûr, ce n'est pas une bonne analogie pour tout ce genre de programmation, mais je pense que si vous donnez une bonne idée de la complexité et fait parallèlement de nombreux types d'applications.

1
frankc

Je la comparifie à la construction d'une maison, si nous vivions dans un univers étrange avec des particules exotiques et une autre:

Vous avez une idée d'une maison vraiment cool, vous construisez donc une croquis approximative de ce que cela ressemblera et d'avoir un plan général de la façon de procéder. Vous allez au matériel de quincaillerie et achetez du bois pour construire les murs, mais ils continuent à tomber par terre parce que le sol est inégal. Donc, vous allez acheter du ciment pour définir la fondation, mais le ciment ne se séchera pas et vous ne pouvez pas comprendre pourquoi. Vous revenez à la quincaillerie et demandez pourquoi, mais l'employé va catatonique. Vous allez à 8 quincailleries différentes jusqu'à ce que l'on vous dise que le ciment que vous avez utilisé a été développé à l'automne 1989, mais vous avez acheté votre propriété à l'hiver de 1989, ils sont donc incompatibles et il vous vend le plus récent ciment 2013.1.1. Vous revenez pour poser la fondation et si vous le faites, le ciment disparaît. Cette fois, tous les employés vont catatoniques, vous avez donc Google votre maison et constatez que c'était autrefois un site d'essais nucléaire. Ensuite, vous google les effets des essais nucléaires sur le sol et constatent qu'il provoque des radicaux libres. Vous Google qui et commencent à rechercher des radiations électromagnétiques, puis des fermions, puis de Boson, puis de la théorie des cordes et de quelque chose d'un chat. Vous ne voulez pas abandonner parce que vous avez perdu autant de temps, alors vous frappez la bouteille fort. Vous venez à la maison tard et sortez votre colère sur votre femme, 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 3 mois de vous réalisez que vous êtes passé de - presque Finir la maison, pour ne même pas savoir pourquoi vous vouliez construire la maison en premier lieu.

0
puk

Vous ne pouvez pas vraiment un peu partager votre métier - seulement les gros titres au sujet de votre travail avec les autres

Cependant, ce que vous pouvez faire est au lieu de partager votre métier, est de partager votre vie avec des gens qui sont dans le même métier que vous (:

0
mireille raad

Je ne parle généralement pas de la façon dont cela est fait, mais plutôt caractéristiques du travail.

Je souligne généralement que c'est incroyablement compliqué, si compliqué qu'aucune personne célibataire ne pouvait éventuellement espérer commencer à comprendre parfaitement ce qui se passe exactement. Il faudrait probablement 30 ans d'étude des différentes parties d'interaction (électronique via des cadres), plus environ une heure par ligne de code active et à ce moment-là, vous devriez revenir à l'étude car le matériel aurait tellement changé que C'est 10 ans de 10 ans grokking la dernière version.

L'autre partie importante est de savoir la récompense de créer quelque chose de si flexible que des milliers de personnes, peut-être des millions de personnes pourraient l'utiliser pour enrichir leur vie, quelque chose d'unique (au moins en détail), et quelque chose que vous avez beaucoup appris.

Si personne n'a bourré ma bouche avec des chaussettes à ce stade, je démontrerais une demande judicieuse, montrant un peu la complexité impliquée et la flexibilité possible.

0
l0b0

Comme une prise différente pour les 15 autres réponses ...

Au lieu d'expliquer les détails de mon travail (programmation), j'essaie de vous concentrer sur les Solutions que le travail résolue, c'est-à-dire quels problèmes les systèmes/logiciels que je construis-je réellement résoudre pour l'utilisateur. C'est généralement un domaine non-programmation, sauf si vous écrivez un compilateur ou quelque chose auquel vous devriez expliquer pourquoi cela est utile.

De cette façon, il est plus facile pour les gens à comprendre que c'est la nature complexe et la façon dont il se rapporte au " monde réel ".

Comme une analogie, comme un forgeron médiéval, j'expliquerais probablement (à une dame dans la taverne locale) que je fais des épées pour pirater l'ennemi en morceaux, pas comme ça que je trempe l'acier et le marteau sur celui-ci avec un certain angle et une force (sauf si ils demandent). J'espère qu'elle comprendrait que le piratage d'ennemi en morceaux est utile (...) et peut être difficile à faire (pénurie d'acier, d'ennemis blindés, de lieu de travail fumé, etc.) et de gagner ainsi une certaine appréciation pour effectuer une tâche complexe.

(Ainsi, les anvils de casting seraient équivalents à la fabrication de compilateurs et vous devez expliquer ce qu'ils sont utilisés pour ...)

0
Macke

Je leur dis que, en dehors de la rédaction de symphonies et de romans mathématiques, la programmation est la seule chance que vous obtiendrez avec des tâches/structures avec ce niveau de complexité et de complexité. Bien sûr, je ne dis pas qu'une application Web décente est un chef-d'œuvre historique, mais une fois que les personnes se rendent compte que vous utilisiez votre esprit à ce type de niveau chaque jour, puis ils "l'obtiennent". De nombreux emplois sont dignes et élevés, encore une tâche de procédure assez simple et à nouveau répétée et encore.

Au moins, c'est comme ça que je le regarde. Je peux me tromper.

0
Andrew M