Como você compartilha seu ofício com não programadores?

43

Às vezes eu me sinto como um músico que não pode tocar shows ao vivo. A programação é uma habilidade muito legal e um mundo muito amplo, mas muito disso acontece "fora da câmera" - em sua cabeça, em seu escritório, longe dos espectadores.

É claro que você pode falar sobre programação com outros programadores, e existe programação ponto a ponto, e você consegue criar algo que você pode mostrar para as pessoas, mas quando se trata de explicar para não programadores o que é que você faz, ou como foi o seu dia no trabalho, é meio complicado.

Como você faz com que os não programadores da sua vida entendam o que você faz?

NOTA: isso não é uma repetição de programadores para entender o processo de desenvolvimento , porque essa questão era sobre como gerenciar as expectativas do cliente.

    
por EpsilonVector 12.04.2017 / 09:31
fonte

19 respostas

31

Três palavras:

dumb it down

A programação é complexa. É preciso muito trabalho para entendê-lo. E as alegrias da programação são ainda mais sutis.

Para eu comunicar meus sucessos e coisas assim para os outros (ou seja, família), eu tenho que me comunicar em um nível mais comum. Compare a programação com as coisas normais do mundo real.

(ou seja, um objeto para um carro com um painel e assentos e ....)

É ainda melhor se você souber algo sobre o seu público porque pode usar coisas que eles entendem que são mais complexas do que os conceitos comuns do dia-a-dia.

Por exemplo, minha esposa era professora da escola, então posso comparar alguns dos meus processos de desenvolvimento de software aos processos de ensino que ela precisou usar. Isso ajuda imensamente.

Mas no final você tem que simplificar, simplificar e simplificar um pouco mais. E mesmo assim, é difícil fazer alguém entender o quão legal é uma aula bem trabalhada com bons testes unitários. :)

    
por 01.02.2012 / 23:36
fonte
49

Eu nem sequer tento. Se eles não são tecnologicamente orientados o suficiente para ter pelo menos uma compreensão básica de programação, eu só vou aborrecê-los com os detalhes. Normalmente eu uso algo muito alto como "eu crio sites" ou "escrevo programas de computador para fazer X"

    
por 09.09.2010 / 00:16
fonte
12

Eu tento explicar isso em termos de resolver um problema. Eu apenas escolho usar um programa de computador para resolver o problema. Dessa forma, você pode discutir o que você fez em termos do problema que está tentando resolver. Uma vez que eles entendem isso, o salto para resolvê-lo através da programação não é muito distante e geralmente pode ser feito por tipos não-técnicos.

    
por 08.09.2010 / 23:42
fonte
12

Eu tive meu irmão Rob me perguntando sobre isso. (Ele é um artista e ilustrador, como livros infantis, interiores de museus, coisas assim.)

Eu tentei explicar isso mostrando Computer Relay de Harry Porter , porque eu acho que ele captura essência de computadores e programação de uma maneira que nos faz sentir.

Isso não era o que ele queria, e eu fiquei desconcertada.

Só mais tarde percebi qual era o verdadeiro problema. Lembrei-me desta citação de 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.

O que me entusiasma como engenheiro é que estou construindo escravos mecânicos. Quando criança, eu queria colocar uma represa no riacho e ter uma roda d'água para produzir eletricidade, para que ela pudesse fazer algo para mim, enquanto eu apenas assistia. No motor de um carro, há uma árvore de cames. Na verdade, é um programa primitivo. Ele abre e fecha as válvulas quando eu quiser , então eu não tenho que fazer isso.

O mundo de um artista é completamente diferente. Se você ouvir, com os olhos fechados, uma versão da 9ª sinfonia de Beethoven, você será transportado. Você deve dar-lhe a sua atenção completa, e quando terminar, você anseia por isso. Se você visitar a obra-prima de Frank LLoyd Wright, Falling Water, você será transportado. Eu honestamente não sei como alguém poderia viver nela. Onde você pode fazer uma bagunça? Ele captura você completamente. É uma sinfonia de arquitetura.

O Art não faz algo para você, ele faz algo para você.

Eu tentei encontrar a arte no que faço. Há beleza nisso, se você olha, mas você tem que olhar. Isso é o que nos conectaria.

    
por 04.03.2011 / 15:32
fonte
7

Conte uma história. Não se concentre no que você faz, mas em como você se sente quando o faz, como está apaixonado ou entediado com isso, nos relacionamentos com seus colegas de trabalho.

    
por 14.10.2010 / 11:43
fonte
3

Minhas duas analogias para esse propósito são: uma receita e uma enorme burocracia. Foi o que eu expliquei neste QA: 30 minutos para explicar a programação para um jovem de 15 anos

Eu usei a analogia da receita muitas vezes para explicar como programação é escrever um conjunto rigoroso de instruções que têm um resultado tangível e previsível quando seguidas.

Eu só usei a analogia da burocracia algumas vezes, porque a maioria das pessoas realmente não precisa entender além da analogia da receita, mas os dois momentos foram muito esclarecedores para a pessoa. Eles pareciam pensar que a programação significava a lembrança total de cada linha de código (por exemplo, "mas se você tem uma memória tão ruim, então como você pode programar um computador?") Mas na verdade é sobre construir vários módulos independentes que funcionam juntos para realizar o objetivo maior. Os módulos de um programa são como os departamentos de uma grande empresa: unidades autônomas que lidam principalmente com o próprio bit do todo e se comunicam com outros departamentos por meio de memorandos.

    
por 12.04.2017 / 09:31
fonte
2

Acho que recebo mais respostas quando explico algo em termos da ideia por trás do código em vez do próprio código. Eu apenas retiro todo o jargão técnico, evito mencionar termos relacionados à programação e apenas falar sobre a ideia e o que realmente está sendo feito .

Por exemplo, tentei recentemente explicar como funciona um filtro de spam. Eu apenas disse que mantém um registro das palavras normalmente encontradas em spam e aquelas não encontradas em spam. O registro é construído usando e-mails conhecidos de spam e não spam. Depois disso, sempre que um novo email chega, nós apenas verificamos quantas das palavras aparecem com spam (isto é, ocorrem em nosso registro de palavras com spam) e quantas parecem sem spam. Se houver muitas palavras com spam, provavelmente será spam e será enviado para a caixa de spam. As pessoas não tecnológicas com quem eu estava conversando seguiram a idéia muito bem.

    
por 03.03.2011 / 05:00
fonte
1

Metáforas

Muitas vezes, não o descrevo como um programa, tento representá-lo como um conceito completamente diferente com inter-relações semelhantes.

Torna a visualização do programa muito mais interessante e, às vezes, ajuda-me a vê-lo sob uma nova luz.

Você não descreve a eletricidade para alguém que nunca trabalhou com ela antes, falando sobre corrente e tensão? Além disso, é divertido descrever alguns conceitos como se algum processo computacional ultraconsciente os fizesse acontecer como por mágica. Um pouco de imaginação da história não os magoa como a realidade de quão frios e racionais são os computadores.

    
por 12.09.2010 / 00:16
fonte
1

Respondi a uma pergunta semelhante em mais detalhes , mas a essência é: "Programação é como construir uma fábrica ou uma linha de montagem".

    
por 12.04.2017 / 09:31
fonte
1

Muitas pessoas que não programam parecem acreditar que os programadores passam muito tempo caçando bugs, procurando visualmente milhares de linhas de código por uma vírgula errante. Então eu primeiro asseguro a eles que este não é o caso, e se fosse, eu estaria completamente sem esperança nisso.

Costumo comparar a programação de computadores a escrever um livro de receitas. Um livro de receitas é um conjunto de instruções para pessoas, enquanto um programa de computador é um conjunto de instruções para um computador. Alguns programas são muito mais complexos que os livros de culinária, e os programas são modificados com mais frequência, mas há alguma semelhança na estrutura. Se um livro de receitas contém sete cópias das instruções para fazer um molho, e a receita precisa ser mudada, alguém precisa encontrar todas as cópias e consertar todas elas.

    
por 03.03.2011 / 07:31
fonte
1

Eu acho que uma boa analogia é construir uma fábrica. A maioria das pessoas tem visto algo como "Como é feito", onde você vê algum item sendo embaralhado por diferentes correias transportadoras e máquinas, com a esperança de que um produto acabado seja lançado no final. Eu digo às pessoas que eu construo coisas assim, mas em vez de serem fábricas físicas trabalhando em itens físicos, elas são virtuais e trabalham com dados. É claro que esta não é uma boa analogia para todo tipo de programação, mas acho que se dá uma boa idéia da complexidade e paralela muitos tipos de aplicações.

    
por 02.02.2012 / 20:24
fonte
0

Você meio que não consegue compartilhar seu ofício - apenas manchetes sobre seu trabalho com outras pessoas

No entanto, o que você pode fazer é, em vez de compartilhar seu ofício, compartilhar sua vida com pessoas que estão no mesmo ofício que você (:

    
por 09.09.2010 / 00:07
fonte
0

Eu normalmente não falo sobre como isso é feito, mas sim recursos do trabalho .

Eu costumo enfatizar que é incrivelmente complicado, tão complicado que nenhuma pessoa poderia esperar começar a entender em detalhes o que exatamente está acontecendo. Provavelmente seriam necessários 30 anos de estudo das várias partes que interagem (eletrônica através de frameworks), mais cerca de uma hora por linha ativa de código, e nesse momento você teria que voltar a estudar porque o hardware teria mudado tanto que são mais 10 anos curtindo a última versão.

A outra parte importante é como pode ser recompensador criar algo tão flexível que milhares, talvez milhões de pessoas possam usá-lo para enriquecer suas vidas, algo único (pelo menos em detalhes) e algo que você aprendeu muito bem. lidar com.

Se ninguém tivesse enchido minha boca com meias neste momento, eu ficaria feliz em demonstrar um aplicativo, mostrando um pouco da complexidade envolvida e da flexibilidade possível.

    
por 03.03.2011 / 10:26
fonte
0

Eu digo a eles que fora da escrita de sinfonias e teses matemáticas e romances, a programação é a única chance de você se envolver com tarefas / estruturas com este nível de complexidade e complexidade. É claro que não dizer que um aplicativo da Web decente é uma obra-prima histórica, mas, quando as pessoas percebem que você usa a mente nesse tipo de nível todos os dias, elas entendem. Muitos trabalhos são dignos e altamente remunerados, mas chegam a uma tarefa processual relativamente simples, repetida várias e várias vezes.

Pelo menos, é assim que eu vejo. Eu poderia estar errado.

    
por 03.03.2011 / 15:10
fonte
0

Como uma resposta diferente às outras 15 respostas ...

Em vez de explicar os detalhes do meu trabalho (programação), tento me concentrar nas soluções que o trabalho resolve, ou seja, quais problemas os sistemas / softwares que eu construo realmente resolvem para o usuário. Geralmente, é um domínio que não é de programação, a menos que você esteja escrevendo um compilador ou algo assim. Nesse caso, você teria que explicar por que isso é útil.

Dessa forma, fica mais fácil para as pessoas entenderem que é uma natureza complexa e como isso se relaciona com o "mundo real".

Como uma analogia, como um ferreiro medieval, eu provavelmente explicaria (para a senhora da taverna local) que eu faço espadas para cortar o inimigo em pedaços, não como eu tempero o aço e martelo nele com um certo ângulo e força (a menos que eles perguntem). Esperançosamente, ela entenderia que cortar um inimigo em pedaços é útil (...) e pode ser difícil de fazer (escassez de aço, inimigos blindados, local de trabalho esfumaçado, etc) e assim você ganha algum apreço por realizar uma tarefa complexa.

(Então, o lançamento de bigornas seria equivalente a fazer compiladores, e você teria que explicar para que eles são usados ...)

    
por 02.02.2012 / 21:28
fonte
0

Eu comparo isso com a construção de uma casa, se vivemos em um universo estranho com partículas exóticas e antitempo:

Você tem uma idéia para uma casa muito legal, então você faz um esboço de como ela será e tem um plano geral de como proceder. Você vai até a loja de ferragens e compra madeira para construir as paredes, mas elas continuam caindo porque o chão é irregular. Então você vai e compra cimento para definir a base, mas o cimento não vai secar e você não consegue descobrir o porquê. Você volta para a loja de ferragens e pergunta por quê, mas o funcionário fica catatônico. Você vai a 8 lojas de ferragens diferentes até que alguém lhe diga que o cimento que você usou foi desenvolvido no outono de 1989, mas você comprou sua propriedade no inverno de 1989, então elas são incompatíveis, e ele vende o cimento 2013.1.1 mais recente. Você volta para estabelecer os alicerces e assim que o faz, o cimento desaparece. Dessa vez, todos os funcionários ficam catatônicos, então você pesquisa sua casa no Google e descobre que ela já foi um site de testes nucleares. Então você google os efeitos do teste nuclear no solo e descobrir que ele causa radicais livres. Você pesquisa o Google e começa a pesquisar a radiação eletromagnética, depois a férmions, depois o bóson, a teoria das cordas e algo sobre um gato. Você não quer desistir porque você perdeu muito tempo, então você bateu a garrafa com força. Você chega em casa tarde e tira sua raiva de sua esposa, alegando que ela é a razão pela qual você não pode construir a casa porque ela e as crianças estão tomando todo o seu tempo ... Cerca de 3 meses em você percebe que você foi de < em> quase terminando a casa, sem nem mesmo saber por que você queria construir a casa em primeiro lugar.

    
por 11.11.2013 / 23:49
fonte
-1

Eu apenas digo a eles que o que eu faço é ver o que eles fazem para o trabalho deles e criar um software de computador que facilite o trabalho deles.

    
por 03.03.2011 / 18:14
fonte
-2

Como alguns de vocês disseram, use analogias, que façam sentido para elas. Eu sempre tento trazer o Google de alguma forma, se meu código faz algo parecido com o google, ou mostrar os benefícios financeiros, ou como isso ajuda as pessoas de alguma forma ...

    
por 03.03.2011 / 04:45
fonte
-2

Às vezes, desisto e apenas digo que passo meu dia editando arquivos de texto. O que geralmente é verdade, se não a história completa.

    
por 02.02.2012 / 14:34
fonte