Come condividi il tuo mestiere con i non programmatori?

43

A volte mi sento un musicista che non può suonare dal vivo. La programmazione è un'abilità piuttosto interessante, e un mondo molto vasto, ma molte cose accadono "fuori dalle telecamere": nella tua testa, nel tuo ufficio, lontano dagli spettatori.

Ovviamente puoi parlare di programmazione con altri programmatori, e c'è la peer programming, e devi creare qualcosa che puoi mostrare alle persone, ma quando si tratta di spiegare ai non programmatori cosa si fa, o come è stata la tua giornata al lavoro, è un po 'complicato.

Come fai a convincere i non programmatori della tua vita a capire che cosa fai?

NOTA: questa non è una ripetizione di Ottenere non- programmatori per capire il processo di sviluppo , perché quella domanda riguardava la gestione delle aspettative dei clienti.

    
posta EpsilonVector 12.04.2017 - 09:31
fonte

19 risposte

31

Tre parole:

dumb it down

La programmazione è complessa. Ci vuole un sacco di lavoro per capirlo. E le gioie della programmazione sono ancora più sottili.

Per me comunicare i miei successi e quelli con gli altri (es. famiglia) devo comunicare a un livello più comune. Confronta la programmazione con le normali cose del mondo reale.

(cioè un oggetto per un'auto con una plancia e sedili e ....)

È ancora meglio se sai qualcosa del tuo pubblico perché puoi usare cose che capiscono che sono più complesse dei normali concetti di tutti i giorni.

Ad esempio, mia moglie era insegnante di scuola, quindi posso confrontare alcuni dei miei processi di sviluppo del software con i processi di insegnamento che ha dovuto usare. Aiuta immensamente.

Ma alla fine devi semplificare, semplificare e semplificare ancora. E anche allora, è difficile convincere qualcuno a capire quanto è interessante una classe ben costruita con buoni test unitari. :)

    
risposta data 01.02.2012 - 23:36
fonte
49

Non ci provo nemmeno. Se non sono abbastanza orientati alla tecnologia per avere almeno una conoscenza di base della programmazione, li affliggerò solo con i dettagli. Di solito vado con qualcosa di altissimo livello come "Creo siti web" o "Scrivo programmi per computer per fare X"

    
risposta data 09.09.2010 - 00:16
fonte
12

Cerco di spiegarlo in termini di risoluzione di un problema. Ho solo scelto di utilizzare un programma per computer per risolvere il problema. In questo modo puoi discutere di ciò che hai fatto in termini di problema che stai cercando di risolvere. Una volta compreso, il salto alla risoluzione attraverso la programmazione non è molto lontano e può essere fatto di solito da tipi non tecnici.

    
risposta data 08.09.2010 - 23:42
fonte
12

Ho chiesto a mio fratello Rob di parlarmene. (È un artista e un illustratore, come i libri per bambini, gli interni dei musei, cose del genere.)

Ho provato a spiegarlo mostrandogli Relay computer di Harry Porter , perché penso che catturi il essenza di computer e programmazione in un modo intuitivo.

Non era quello che voleva, ed ero piuttosto sconcertato.

Solo più tardi mi resi conto di quale fosse il vero problema. Mi è venuta in mente questa citazione di Oscar Wilde:

The fact is, that civilisation requires slaves. The Greeks were quite right there. Unless there are slaves to do the ugly, horrible, uninteresting work, culture and contemplation become almost impossible. Human slavery is wrong, insecure, and demoralizing. On mechanical slavery, on the slavery of the machine, the future of the world depends.

Ciò che mi entusiasma come ingegnere è che sto costruendo schiavi meccanici. Da bambino volevo mettere una diga nel torrente e fare in modo che una ruota idraulica produca elettricità, quindi potrebbe fare qualcosa per me , mentre io guardavo. Nel motore in una macchina, c'è un albero a camme. In realtà è un programma primitivo. Apre e chiude le valvole quando voglio quindi non devo farlo.

Il mondo di un artista è completamente diverso. Se ascolti, a occhi chiusi, una versione della nona sinfonia di Beethoven, sei trasportato. Devi dare la tua completa attenzione, e quando è finito, lo desideri. Se visiti la casa di Frank LLoyd Wright, Falling Water, sei trasportato. Onestamente non so come qualcuno possa viverci. Dove puoi fare un casino? Ti cattura completamente. È una sinfonia architettonica.

L'arte non fa qualcosa per , fa qualcosa a tu.

Ho cercato di trovare l'arte in quello che faccio. C'è bellezza in esso, se guardi, ma devi guardare. Questo è ciò che ci avrebbe collegato.

    
risposta data 04.03.2011 - 15:32
fonte
7

Racconta una storia. Non concentrarti su ciò che fai, ma su come ti senti quando lo fai, su come ti appassiona o ti annoi, sulle relazioni con i tuoi colleghi.

    
risposta data 14.10.2010 - 11:43
fonte
3

Le mie due analogie di go-to per questo scopo sono: una ricetta e una massiccia burocrazia. Questo è quello che ho spiegato in questo QA: 30 minuti per spiegare la programmazione a a 15 anni

Ho usato l'analogia della ricetta molte volte per spiegare come la programmazione riguarda la scrittura di una serie rigorosa di istruzioni che hanno un risultato tangibile e prevedibile quando vengono seguite.

Ho usato l'analogia della burocrazia solo un paio di volte, perché la maggior parte delle persone non ha davvero bisogno di capire oltre l'analogia della ricetta, ma entrambe le volte erano molto illuminanti per la persona. Sembrava pensare che la programmazione significasse il richiamo totale di ogni riga di codice (ad esempio "Ma se hai una memoria così schifosa, allora come puoi programmare un computer?"), Ma in realtà si tratta di costruire molti moduli autonomi che funzionano insieme per realizzare l'obiettivo più grande. I moduli di un programma sono come i dipartimenti di una grande azienda: unità autonome che si occupano principalmente del proprio frammento e comunicano con altri dipartimenti attraverso i memo.

    
risposta data 12.04.2017 - 09:31
fonte
2

Penso di ottenere il maggior numero di risposte quando spiego qualcosa in termini dell'idea alla base del codice anziché del codice stesso. Devo solo eliminare tutti i termini tecnici, evitare di menzionare i termini relativi alla programmazione e parlare dell'idea e di cosa si sta facendo fatto .

Ad esempio, di recente ho provato a spiegare come funziona un filtro antispam. Ho appena detto che conserva un registro delle parole che si trovano tipicamente nello spam e quelle che non si trovano nello spam. Il record è costituito da mail conosciute e non spam. Dopodiché, ogni volta che arriva una nuova email, controlliamo solo quante parole ci sembrano spammanti (ad esempio nel nostro registro di parole contenenti spam) e quante non sembrano spam. Se ci sono troppe parole di spam, probabilmente è spam e quindi viene inviato al cestino dello spam. Le persone non tecnologiche con cui stavo parlando hanno seguito l'idea abbastanza bene.

    
risposta data 03.03.2011 - 05:00
fonte
1

Metafore

Molte volte, non lo descrivo come un programma, cerco di rappresentarlo come un concetto completamente diverso con simili interrelazioni.

Rende la visualizzazione del programma molto più interessante ea volte mi aiuta a guardarla sotto una nuova luce.

Non descrivi l'elettricità a qualcuno che non ha mai lavorato prima parlando di corrente e tensioni, vero? Inoltre, è divertente descrivere alcuni concetti come se un processo informatico ultra consapevole li facesse accadere come per magia. L'immaginazione di una piccola storia non li ferisce come la realtà di quanto siano realmente i computer freddi e razionali.

    
risposta data 12.09.2010 - 00:16
fonte
1

Ho risposto a una domanda simile in modo più dettagliato , ma il succo è: "La programmazione è come costruire una fabbrica o una catena di montaggio".

    
risposta data 12.04.2017 - 09:31
fonte
1

Molte persone che non hanno programmato sembrano credere che un programmatore passi molto tempo a caccia di bug in modo tedioso, cercando visivamente migliaia di righe di codice per una virgola errante. Quindi per prima cosa assicuro loro che non è così, e se lo fosse, sarei completamente senza speranza.

Spesso paragono i programmi per computer alla stesura di un libro di cucina. Un libro di cucina è un insieme di istruzioni per le persone, mentre un programma per computer è un insieme di istruzioni per un computer. Alcuni programmi sono molto più complessi dei libri di cucina e i programmi vengono modificati più frequentemente, ma c'è una certa somiglianza nella struttura. Se un libro di cucina contiene sette copie delle istruzioni per preparare una salsa, e la ricetta deve essere cambiata, qualcuno deve trovare tutte quelle copie e sistemarle tutte.

    
risposta data 03.03.2011 - 07:31
fonte
1

Penso che una buona analogia sia la costruzione di una fabbrica. La maggior parte delle persone ha visto qualcosa come "Come è fatto" dove si vede un oggetto che viene mescolato attraverso diversi nastri trasportatori e macchine con sperabilmente un prodotto finito che esce alla fine. Dico alla gente che costruisco cose del genere, ma invece di essere fabbriche fisiche che lavorano su oggetti fisici, sono virtuali e lavorano sui dati. Ovviamente questa non è una buona analogia per ogni tipo di programmazione, ma penso che dia una buona idea della complessità e faccia parallelo a molti tipi di applicazioni.

    
risposta data 02.02.2012 - 20:24
fonte
0

Non puoi davvero condividere il tuo mestiere, solo titoli sul tuo lavoro con altri

Tuttavia, ciò che puoi fare è condividere la tua creatività, condividere la tua vita con persone che hanno la stessa arte di te (:

    
risposta data 09.09.2010 - 00:07
fonte
0

Di solito non parlo di come è fatto, ma piuttosto delle caratteristiche del lavoro .

Solitamente sottolineo che è incredibilmente complicato, così complicato che nessuna singola persona potrebbe sperare di iniziare a capire in modo perfettamente dettagliato esattamente cosa sta succedendo. Probabilmente occorrerebbero 30 anni per studiare le varie parti interagenti (l'elettronica attraverso i quadri), oltre a circa un'ora per linea di codice attiva, ea quel punto dovresti tornare a studiare perché l'hardware sarebbe cambiato così tanto che è un altro 10 anni di groking l'ultima versione.

L'altra parte importante è quanto possa essere gratificante creare qualcosa di così flessibile che migliaia, forse milioni di persone potrebbero usarlo per arricchire le loro vite, qualcosa di unico (almeno nei dettagli) e qualcosa che hai imparato molto bene affare da.

Se nessuno mi ha riempito la bocca di calze a questo punto, sarei felice di dimostrare un'applicazione, mostrando un po 'della complessità e della flessibilità possibili.

    
risposta data 03.03.2011 - 10:26
fonte
0

Dico loro che al di fuori della scrittura di sinfonie e tesi e romanzi matematici, la programmazione è l'unica possibilità che si possa coinvolgere con compiti / strutture con questo livello di complessità e complessità. Certo, non dire che un'app web decente è un capolavoro storico, ma una volta che le persone si rendono conto che puoi usare la tua mente a questo livello ogni singolo giorno, allora lo ottengono ". Molti lavori sono meritevoli e molto pagati, ma si riducono ad un compito procedurale piuttosto semplice ripetuto ancora e ancora e ancora.

Almeno, è così che lo guardo. Potrei sbagliarmi.

    
risposta data 03.03.2011 - 15:10
fonte
0

Come una presa diversa dalle altre 15 risposte ...

Invece di spiegare i dettagli del mio lavoro (programmazione), cerco di concentrarmi sulle soluzioni che il lavoro risolve, cioè su quali problemi i sistemi / software che costruisco effettivamente risolvono per l'utente. Di solito è un dominio non di programmazione, a meno che tu non stia scrivendo un compilatore o qualcosa del genere, nel qual caso dovresti spiegare perché è utile.

In questo modo, rende più facile per le persone capire che è una natura complessa e in che modo si riferisce al "mondo reale".

Come analogia, come fabbro medievale, probabilmente spiegherei (alla signora nella taverna locale) che faccio spade per incidere il nemico in pezzi, non come temperamento acciaio e martello su di esso con una certa angolazione e forza (a meno che non chiedono). Si spera che capisca che l'hacking di un nemico in pezzi è utile (...) e può essere difficile da fare (carenza di acciaio, nemici corazzati, posto di lavoro fumoso, ecc.) E quindi si ottiene un certo apprezzamento per l'esecuzione di un compito complesso.

(Quindi, lanciare incudini equivarrebbe a creare compilatori, e dovresti spiegare a cosa servono ...)

    
risposta data 02.02.2012 - 21:28
fonte
0

Lo paragono alla costruzione di una casa, se vivessimo in uno strano universo con particelle esotiche e tempo anti:

Hai un'idea per una casa davvero bella, quindi costruisci un abbozzo approssimativo su come sarà, e hai un piano generale su come procedere. Vai al negozio di ferramenta e compra del legname per costruire i muri, ma continua a cadere perché il terreno non è uniforme. Quindi vai a comprare cemento per mettere le fondamenta, ma il cemento non si asciuga e non riesci a capire perché. Torna al negozio di ferramenta e chiedi perché, ma l'impiegato va catatonico. Vai in 8 negozi di ferramenta diversi finché uno ti dice che il cemento che hai usato è stato sviluppato nell'autunno del 1989, ma hai comprato la tua proprietà nell'inverno del 1989, quindi sono incompatibili e ti vende il cemento più recente 2013.1.1. Torni indietro per gettare le fondamenta e, appena lo fai, il cemento scompare. Questa volta tutti i dipendenti vanno catatonici, quindi vai a casa tua e scopri che un tempo era un sito di test nucleari. Poi fai su Google gli effetti dei test nucleari sul suolo e scopri che causa i radicali liberi. Lo fai su Google e inizi a cercare radiazioni elettromagnetiche, poi fermioni, poi bosone, poi teoria delle stringhe e qualcosa su un gatto. Non vuoi rinunciare perché hai perso così tanto tempo, quindi hai colpito duramente la bottiglia. Torni a casa tardi e porti fuori la tua rabbia su tua moglie, sostenendo che lei è la ragione per cui non puoi costruire la casa perché lei ei suoi figli stanno prendendo tutto il tuo tempo ... Circa 3 mesi in cui ti rendi conto che sei passato da < em> quasi finendo la casa, per non sapere nemmeno perché volevi costruire la casa in primo luogo.

    
risposta data 11.11.2013 - 23:49
fonte
-1

Gli dico solo che quello che faccio è guardare quello che fanno per il loro lavoro e creare software per computer che renderanno più semplice il loro lavoro.

    
risposta data 03.03.2011 - 18:14
fonte
-2

Come alcuni di voi hanno detto, usate le analogie, che hanno senso per loro. Cerco sempre di portare Google in qualche modo, se il mio codice fa qualcosa di simile a google, o mostra i benefici finanziari, o come questo aiuti le persone in qualche modo ...

    
risposta data 03.03.2011 - 04:45
fonte
-2

A volte mi arrendo e dico solo che passo la giornata a modificare i file di testo. Che di solito è vero se non la storia completa.

    
risposta data 02.02.2012 - 14:34
fonte

Leggi altre domande sui tag