¿Cómo comparte su oficio con no programadores?

43

A veces me siento como un músico que no puede tocar en vivo. La programación es una habilidad bastante interesante y un mundo muy amplio, pero gran parte de esto sucede "fuera de cámara": en tu cabeza, en tu oficina, lejos de los espectadores.

Por supuesto, puede hablar sobre programación con otros programadores, y existe una programación entre pares, y puede crear algo que puede mostrar a las personas, pero cuando se trata de explicar a los no programadores qué es lo que hace, O cómo fue tu día en el trabajo, es un poco complicado.

¿Cómo logras que los que no son programadores en tu vida entiendan qué es lo que haces?

NOTA: esto no es una repetición de Obtención de no- programadores para entender el proceso de desarrollo , porque esa pregunta era sobre la gestión de las expectativas del cliente.

    
pregunta EpsilonVector 12.04.2017 - 09:31

19 respuestas

31

Tres palabras:

dumb it down

La programación es compleja. Se necesita mucho trabajo para entenderlo. Y las alegrías de la programación son aún más sutiles.

Para que comunique mis éxitos y los demás a otros (es decir, a mi familia) tengo que comunicarme en un nivel más común. Compara la programación con las cosas normales del mundo real.

(es decir, un objeto para un automóvil con un tablero de instrumentos y asientos y ...)

Es incluso mejor si sabes algo sobre tu audiencia porque puedes usar cosas que entiendan que son más complejas que los conceptos cotidianos normales.

Por ejemplo, mi esposa era maestra de escuela, por lo que puedo comparar algunos de mis procesos de desarrollo de software con los procesos de enseñanza que tenía que usar. Ayuda enormemente.

Pero al final tienes que simplificar, simplificar y simplificar un poco más. Y aun así, es difícil lograr que alguien entienda qué tan genial es una clase bien elaborada con buenas pruebas de unidad. :)

    
respondido por el Vaccano 01.02.2012 - 23:36
49

Ni siquiera lo intento. Si no están lo suficientemente orientados a la tecnología para tener al menos una comprensión básica de la programación, solo los aburriré con los detalles. Por lo general, solo uso un nivel muy alto como "Creo sitios web" o "Escribo programas de computadora para hacer X"

    
respondido por el JohnFx 09.09.2010 - 00:16
12

Intento explicarlo en términos de resolver un problema. Simplemente elijo usar un programa de computadora para resolver el problema. De esa manera, puede discutir lo que ha hecho en términos del problema que está tratando de resolver. Una vez que entienden eso, el salto para resolverlo a través de la programación no está muy lejos y, por lo general, puede ser realizado por tipos que no sean técnicos.

    
respondido por el mpenrow 08.09.2010 - 23:42
12

Hice que mi hermano Rob me preguntara sobre eso. (Es un artista e ilustrador, como libros infantiles, interiores de museos, cosas así).

Traté de explicarlo mostrándole Computadora de relevo de Harry Porter , porque creo que captura el La esencia de las computadoras y la programación de una manera sencilla.

Eso no era lo que él quería, y yo estaba un poco desconcertado.

Sólo más tarde me di cuenta de cuál era el problema real. Me acordé de esta cita de Oscar Wilde:

  

El hecho es que esa civilización.   Requiere esclavos. Los griegos eran bastante   justo ahí. A menos que haya esclavos.   hacer lo feo, horrible,   trabajo sin interés, cultura y   la contemplación se vuelve casi   imposible. La esclavitud humana está mal,   Inseguro, y desmoralizador. En   La esclavitud mecánica, sobre la esclavitud de   La máquina, el futuro del mundo.   depende.

Lo que me emociona como ingeniero es que estoy construyendo esclavos mecánicos. Cuando era niño quería poner una represa en el arroyo y hacer que una rueda de agua produjera electricidad, para que pudiera hacer algo por mí , mientras yo solo observaba. En el motor de un coche, hay un árbol de levas. En realidad es un programa primitivo. Abre y cierra las válvulas cuando lo quiero para que no tenga que hacerlo.

El mundo de un artista es completamente diferente. Si escuchas, con los ojos cerrados, una versión de la Novena Sinfonía de Beethoven, eres transportado. Debes prestarle toda tu atención, y cuando haya terminado, la anhelarás. Si visitas la casa maestra de Frank LLoyd Wright, Falling Water, serás transportado. Sinceramente, no sé cómo alguien podría vivir en él. ¿Dónde puedes hacer un lío? Te captura por completo. Es una sinfonía arquitectónica.

Art no hace algo por a ti, hace algo a a ti.

He tratado de encontrar el arte en lo que hago. Hay belleza en ella, si miras, pero tienes que mirar. Eso es lo que nos hubiera conectado.

    
respondido por el Mike Dunlavey 04.03.2011 - 15:32
7

Cuenta una historia. No te concentres en lo que haces, sino en cómo te sientes cuando lo haces, en cómo te apasiona o aburre, en las relaciones con tus compañeros de trabajo.

    
respondido por el mouviciel 14.10.2010 - 11:43
3

Mis dos analogías para este propósito son: una receta y una burocracia masiva. Eso es lo que expliqué en este QA: 30 minutos para explicar la programación a un joven de 15 años

He usado la analogía de la receta muchas veces para explicar cómo la programación consiste en escribir un conjunto riguroso de instrucciones que tienen un resultado tangible y predecible cuando se siguen.

En realidad, solo he usado la analogía de la burocracia un par de veces, porque la mayoría de las personas no necesitan entender más allá de la analogía de la receta, pero ambas veces fueron muy esclarecedoras para la persona. Parecían pensar que la programación significaba una recuperación total de cada línea de código (por ejemplo, "Pero si tiene una memoria tan mala, entonces, ¿cómo puede programar una computadora?") Pero en realidad se trata de construir muchos módulos independientes que funcionen juntos. para lograr el objetivo más grande. Los módulos de un programa son como los departamentos en una gran empresa: unidades autónomas que en su mayoría tratan con su propia parte del conjunto y se comunican con otros departamentos a través de notas.

    
respondido por el jhocking 12.04.2017 - 09:31
2

Creo que obtengo la mayor respuesta cuando explico algo en términos de la idea detrás del código en lugar del código en sí. Simplemente elimino toda la jerga técnica, evito mencionar los términos relacionados con la programación y solo hablo sobre la idea y lo que realmente se está haciendo .

Por ejemplo, recientemente intenté explicar cómo funciona un filtro de correo no deseado. Acabo de decir que mantiene un registro de las palabras que normalmente se encuentran en el correo no deseado y las que no se encuentran en el correo no deseado. El registro se construye utilizando correos electrónicos no deseados y conocidos. Después de eso, cada vez que llega un nuevo correo electrónico, solo verificamos cuántas de las palabras allí aparecen como spam (es decir, aparecen en nuestro registro de palabras con spam) y cuántas no son spam. Si hay demasiadas palabras spam, es probable que sea spam y, por lo tanto, se envíe al contenedor de spam. Las personas no tecnológicas con las que estaba hablando siguieron la idea bastante bien.

    
respondido por el MAK 03.03.2011 - 05:00
1

Metáforas

Muchas veces, no lo describo como un programa en absoluto, trato de representarlo como un concepto completamente diferente con interrelaciones similares.

Hace que visualizar el programa sea mucho más interesante y, a veces, me ayuda a verlo desde una nueva perspectiva.

Usted no describe la electricidad a alguien que nunca ha trabajado con ella al hablar de la corriente y los voltajes, ¿verdad? Además, es divertido describir algunos conceptos como si un proceso informático ultra consciente los hiciera pasar por arte de magia. Una pequeña historia que la imaginación no les hace daño, ya que es la realidad de lo frías y ricas que son las computadoras.

    
respondido por el Evan Plaice 12.09.2010 - 00:16
1

He respondido una pregunta similar con más detalle , pero lo esencial es "Programar es como construir una fábrica o una línea de ensamblaje".

    
respondido por el Huperniketes 12.04.2017 - 09:31
1

Muchas personas que no han programado parecen creer que los programadores pasan mucho tiempo tediosamente en la búsqueda de errores, buscando visualmente miles de líneas de código en busca de una coma errante. Así que primero les aseguro que este no es el caso, y si lo fuera, no tendría ninguna esperanza en ello.

A menudo comparo la programación de computadoras con escribir un libro de cocina. Un libro de cocina es un conjunto de instrucciones para las personas, mientras que un programa de computadora es un conjunto de instrucciones para una computadora. Algunos programas son mucho más complejos que los libros de cocina, y los programas se modifican con mayor frecuencia, pero hay cierta similitud en la estructura. Si un libro de cocina contiene siete copias de las instrucciones para hacer una salsa, y la receta debe cambiarse, alguien tiene que encontrar todas esas copias y arreglarlas todas.

    
respondido por el kevin cline 03.03.2011 - 07:31
1

Creo que una buena analogía es construir una fábrica. La mayoría de las personas han visto algo como "Cómo está hecho", en el que se ven algunos elementos que se barajan a través de diferentes cintas transportadoras y máquinas, con la esperanza de que un producto terminado salga al final. Le digo a la gente que construyo cosas así, pero en lugar de ser fábricas físicas que trabajan en elementos físicos, son virtuales y trabajan en datos. Por supuesto, esta no es una buena analogía para todo tipo de programación, pero creo que si da una buena idea de la complejidad y tiene varios tipos de aplicaciones en paralelo.

    
respondido por el frankc 02.02.2012 - 20:24
0

Realmente no puedes compartir tu oficio, solo titulares sobre tu trabajo con otros

Sin embargo, lo que puedes hacer es, en lugar de compartir tu oficio, compartir tu vida con personas que están en el mismo oficio que tú (:

    
respondido por el mireille raad 09.09.2010 - 00:07
0

Por lo general, no hablo de cómo se hace, sino de las características del trabajo .

Por lo general enfatizo que es increíblemente complicado, tan complicado que ninguna persona podría esperar comenzar a entender con detalle perfecto lo que está sucediendo. Probablemente requeriría 30 años de estudio de las diversas partes interactivas (electrónica a través de marcos), más una hora por línea de código activa, y para ese momento tendrías que volver a estudiar porque el hardware habría cambiado tanto que son otros 10 años de la última versión.

La otra parte importante es lo gratificante que puede ser crear algo tan flexible que miles, tal vez millones de personas puedan usarlo para enriquecer sus vidas, algo único (al menos en detalle), y algo que haya aprendido muy bien. trato de.

Si nadie ha llenado mi boca con calcetines en este momento, demostraría felizmente una aplicación, mostrando un poco de la complejidad involucrada y la flexibilidad posible.

    
respondido por el l0b0 03.03.2011 - 10:26
0

Les digo que, aparte de escribir sinfonías y tesis y novelas matemáticas, la programación es la única posibilidad de involucrarse en tareas / estructuras con este nivel de complejidad y complejidad. Por supuesto, no digo que una aplicación web decente sea una obra maestra histórica, pero una vez que la gente se da cuenta de que puedes usar tu mente en este nivel todos los días, entonces lo "entienden". Muchos trabajos son dignos y bien pagados, pero se reducen a una tarea de procedimiento bastante simple, que se repite una y otra vez.

Al menos, así es como lo veo. Podría estar equivocado.

    
respondido por el Andrew M 03.03.2011 - 15:10
0

Como una toma diferente a las otras 15 respuestas ...

En lugar de explicar los detalles de mi trabajo (programación), trato de centrarme en las soluciones que resuelve el trabajo, es decir, qué problemas resuelven realmente los sistemas / software que construyo para el usuario. Por lo general, es un dominio sin programación, a menos que estés escribiendo un compilador o algo así, en cuyo caso tendrías que explicar por qué es útil.

De esa manera, hace que sea más fácil para las personas comprender que es una naturaleza compleja y cómo se relaciona con el "mundo real".

Como una analogía, como un herrero medieval, probablemente explicaría (a la señora de la taberna local) que hago espadas para cortar al enemigo en pedazos, no cómo modero el acero y martillo con un cierto ángulo. Fuerza (a menos que lo pidan). Con suerte, ella entendería que cortar a un enemigo en pedazos es útil (...) y puede ser difícil de hacer (escasez de acero, enemigos blindados, lugares de trabajo llenos de humo, etc.) y, por lo tanto, obtienes cierta apreciación por realizar una tarea compleja.

(Por lo tanto, lanzar yunques sería equivalente a hacer compiladores, y tendrías que explicar para qué se usan ...)

    
respondido por el Macke 02.02.2012 - 21:28
0

Lo comparo con construir una casa, si viviéramos en un universo extraño con partículas exóticas y anti tiempo:

Tienes una idea para una casa realmente genial, así que construyes un bosquejo de cómo se verá y tienes un plan general de cómo proceder. Vas a la ferretería y compras algo de madera para construir las paredes, pero siguen cayendo porque el suelo es desigual. Así que ve y compra cemento para establecer la base, pero el cemento no se secará y no puedes entender por qué. Regresa a la ferretería y pregunta por qué, pero el empleado se vuelve catatónico. Usted va a 8 ferreterías diferentes hasta que una le dice que el cemento que usó se desarrolló en el otoño de 1989, pero compró su propiedad en el invierno de 1989, por lo que son incompatibles, y él le vende el cemento más reciente de 2013.1.1. Regresas a sentar las bases y, tan pronto como lo haces, el cemento desaparece. Esta vez, todos los empleados se vuelven catatónicos, por lo que busca en Google su casa y descubre que alguna vez fue un sitio de pruebas nucleares. Luego busca en Google los efectos de las pruebas nucleares en el suelo y descubre que causa radicales libres. Buscas eso y comienzas a investigar la radiación electromagnética, luego los fermiones, luego el bosón, luego la teoría de cuerdas y algo sobre un gato. No quieres rendirte porque has perdido tanto tiempo, así que golpeas la botella con fuerza. Llegas tarde a casa y sacas tu ira contra tu esposa, alegando que ella es la razón por la que no puedes construir la casa porque ella y los niños están ocupando todo tu tiempo ... Alrededor de 3 meses en que te das cuenta de que te fuiste de < Em> casi terminando la casa, para ni siquiera saber por qué querías construir la casa en primer lugar.

    
respondido por el puk 11.11.2013 - 23:49
-1

Solo les digo que lo que hago es mirar lo que hacen por su trabajo y crear software de computadora que hará su trabajo más fácil.

    
respondido por el Amy Patterson 03.03.2011 - 18:14
-2

Como algunos de ustedes dijeron, usen analogías que tengan sentido para ellos. Siempre trato de atraer a Google de alguna manera, si mi código hace algo parecido a google, o muestra los beneficios financieros, o cómo esto ayuda a las personas de alguna manera ...

    
respondido por el crosenblum 03.03.2011 - 04:45
-2

A veces me rindo y solo digo que me paso el día editando archivos de texto. Lo que suele ser cierto si no es la historia completa.

    
respondido por el fwgx 02.02.2012 - 14:34

Lea otras preguntas en las etiquetas