¿Cómo explicar a los no programadores que la programación no es una tarea repetitiva? [cerrado]

11

Algunas personas tienen la visión de la programación de que solo se trata de escribir repetidamente en un teclado. Nada de esto es verdad. En primer lugar, hay mucho más que hacer que escribir el código, como la arquitectura de diseño, etc. En segundo lugar, podría ser una tarea muy variada y no repetitiva, con nuevos desafíos que vienen todo el tiempo.

¿Cómo debería explicar que la programación no es una tarea repetitiva para los no programadores ?

Anto
fuente
55
Pregunte, ¿es su trabajo una tarea repetitiva? Si es así, entonces, bueno, apesta para ellos, probablemente no conocen las alegrías de una profesión creativa y variada. Si no es así, digamos que es exactamente lo mismo.
Mark Canlas
44
@ Mark Canlas: Buen punto. ¿Qué trabajos tienen estas personas (con la visión de la programación como mecanografía repetitiva)? Lo más probable es que puedas señalar cierta repetitividad superficial en sus tareas diarias y reducir sus trabajos a "algo repetitivo", y luego pedirles que expliquen cómo no es .
FrustratedWithFormsDesigner
14
Si es repetitivo, lo estás haciendo mal.
1
Esa declaración se entiende en general. Muchas tareas se hacen mal cuando haces lo mismo una y otra vez. ¿Solo pegando partes del auto? Diseñe un robot para hacerlo (suponiendo que pueda, por supuesto, si no, lo siento, va a perder su trabajo). ¿Solo unir las partes del robot? Construye un robot para construir los robots;) Eso es básicamente programación . Agregue más capas para una no repetición infinita.
2
Digamos que el fútbol es un deporte repetitivo (todos siguen haciendo lo mismo, pateando la pelota).
apoorv020

Respuestas:

31

Dales ejemplos con los que se puedan identificar.

El tenis es repetitivo. Simplemente sigue golpeando la pelota todo el tiempo al otro lado de la red.

El fútbol es repetitivo. Simplemente sigue pateando la pelota cada vez hasta que encuentre un poste de gol.

Tocar el piano es repetitivo. Sigues moviendo tus dedos sobre el tablero.

¡Maldita sea, todo tan aburrido!

gofeddy
fuente
3
Jugar tenis, fútbol y piano son aburridos, de una manera que la programación no lo es. En todas esas actividades, uno se enfrenta repetidamente a la misma situación y debe hacer lo mismo. Sin embargo, en la programación, como han señalado otras respuestas, si te encuentras en la misma situación dos veces, lo estás haciendo mal.
Avi
1
@Avi en la misma línea de programación es aburrido en formas que el tenis o el piano no lo son, por lo que es realmente un argumento discutible.
Maurycy
18

Siempre se puede decir que la programación es mecanografía repetitiva exactamente como la escritura en prosa es mecanografía repetitiva. ¿Se escribirá una gran novela (o incluso mediocre) sentándose y juntando cuidadosamente las cartas?

diente filoso
fuente
18

Bueno, de alguna manera. Escribe repetidamente las mismas letras (AZ, az, 0-9) una y otra vez. Solo en diferentes combinaciones.

Por lo general, trato de evitar esas conversaciones con esas personas.

Torre
fuente
1
@Rook - Buen consejo.
John Shaft
44
+1. Me hace pensar en una buena comparación entre los libros y el alfabeto . (Se traduce libremente como: El alfabeto es una colección de letras, que supera los libros tanto en estructura como en contenido. Mientras que en los libros las letras están todas mezcladas, las del alfabeto se escriben sucesivamente en orden ascendente. )
back2dos
1
Espero que no evites a todas las personas que tienen algún interés en ti.
3
@Rook: Tener a alguien haciendo preguntas sobre el mundo de la programación es una bendición. No los evites. Habla con ellos. Tanto como puedas.
44
Trato de mezclar las cosas usando la puntuación. AZ no es lo suficientemente interesante para mí.
MJB
13

La programación es muy parecida a la composición musical . Lo cual está lejos de ser un proceso repetitivo.

  • Empiezas a pensar en la visión general de lo que necesitas para lograr
  • Piensas en una pequeña parte de tu composición y la escribes
  • Una vez hecho, lo juegas (F5 en Visual Studio)
  • Repites el proceso, según sea necesario
  • A veces tomas ideas o te inspiras de otros compositores.
  • A veces refactorizas tu canción moviendo o reelaborando partes

A veces, no sabes lo que quieres y juegas. Probablemente la mejor manera de obtener las composiciones más interesantes ...


fuente
1
Jaja ... +1 por jugarlo (F5 en Visual Studio). Ahora, si solo pudiera agregar una tecla F5 a mi guitarra ...
JasCav
3
-1 para Visual Studio;)
Jordania
Pierre, aunque no estoy en desacuerdo con tu respuesta general al OP, no estoy de acuerdo con que la composición musical sea similar a la programación. La composición es más difícil: creo que lo puse razonablemente bien en esta publicación: linkedin.com/…
azheglov
1
@azheglov: ¿más difícil basado en qué? Cualquiera puede componer. Ahora muy pocos estarán en MTV como muy pocos de nosotros serán entrevistados por CNN
Incluso si, por ejemplo, componer música es "más difícil", los problemas en la escala CS para compensar: cada línea de código puede ser más fácil de escribir que una sola nota, por lo que tenemos proyectos con literalmente millones (si no más) líneas de código. Entonces, incluso si cada acción atómica es más simple, simplemente se espera que los mejores programadores resuelvan problemas más difíciles.
Tikhon Jelvis
4

Usualmente explico que la programación es resolución creativa de problemas. Tiene un problema: desea una función en un producto (y generalmente elijo un producto conocido, Amazon.com, MS Word, etc.), y no está allí. Nunca se ha hecho antes, y usted es el primero, así que esto es como cualquier proyecto de arte: tiene una visión, pero necesita encontrar un camino.

También me concentro en el hecho de que hay más de una forma de resolver el problema, un montón de formas realmente malas, y probablemente más de una buena manera. A la larga, puede haber una mejor manera, pero esa mejor manera no será obvia durante mucho tiempo (extensibilidad, reutilización, etc.), por lo que en el momento del desarrollo, hay muchas decisiones importantes.

Finalmente, el producto final puede ser amado u odiado por el destinatario. Al igual que algunas personas aman a Picasso y otras no pueden hacer cara o cruz del arte moderno; algunas personas pueden amar una característica, y otras pueden odiarla. Hace lo mejor que puede para la mayoría de las personas, y cree que no puede complacer a todos.

Enfocado en:

  • territorio desconocido
  • nadie responde
  • sujeto a interpretación

Muestra que este trabajo se parece mucho más al arte, y mucho menos al trabajo aburrido y repetitivo.

Hablo con frecuencia con los artistas (y parecen tener una creencia instintiva de que el trabajo en la computadora no es creativo. Por lo general, también puedo relacionarlo con la forma de arte favorita del artista. En cierto nivel, la mayoría de los artistas también son técnicos: pintura , bailar, hacer música y probablemente cualquier otro arte, todo implica una serie de actividades repetitivas que lo llevan al punto de ejecución de algo nuevo, diferente y creativo. Dicho de esta manera, los artistas generalmente tienen problemas para negar que actividades aparentemente repetitivas puedan conducir a obras de inspiración y belleza.

En ese momento, generalmente están dispuestos a admitir que solo porque mi "arte" involucra un conjunto de declaraciones de sintaxis de aspecto extraño y diagramas UML de aspecto insípido, no significa que no sea creativo en ese sentido. Los modelos del sistema eventualmente hacen algo bastante diferente a la suma de sus partes.

bethlakshmi
fuente
2
Siendo un artista, me gusta esta comparación. Tendrá sentido para la mayoría de los artistas, de todo tipo, y para aquellos que puedan relacionarse con actividades artísticas. (No estoy seguro acerca de los no artistas.)
DarenW
3

La programación se trata de abstracciones. Cuanto más escribes, más similitudes puedes ver. Pero entonces es hora de abstraer. Al refactorizar, se desarrolla un marco que elimina la duplicación. Esto reduce la complejidad en el código de dominio del problema.

La programación repetitiva es posible. Pero es ineficiente.

Witek
fuente
+1 cuando la codificación se vuelve muy repetitiva, es una señal de que tal vez "¡lo estás haciendo mal!"
FrustratedWithFormsDesigner
3

Si realmente fuera así, simplemente usaríamos copiar y pegar: D

Uno de los desafíos clave en la programación es crear bloques de construcción de alta calidad, de modo que

  • puede usarlos para construir su edificio (es decir, el software que está construyendo) de componentes sólidos, aumentando así la estabilidad
  • puede reutilizarlos varias veces en el mismo edificio o incluso en diferentes edificios (para reducir la repetición) y así aumentar su productividad
  • podrá cambiar un bloque sin hacer colapsar todo su edificio, aumentando así la flexibilidad local
  • podrá cambiar todas las instancias de un bloque a la vez, aumentando así la flexibilidad global

Por su propia naturaleza, este desafío exige que no se repita .

Como corolario: si te repites como programador, pierdes tiempo en la creación de software, que no es estable ni flexible.

back2dos
fuente
1

Además de las otras respuestas que señalan cómo la repetitividad o la escritura / clic son superficiales, también podría señalar que la programación suele ser mucho más sobre la resolución de problemas que sobre la escritura (y creo que fue Djikstra quien dijo que la informática mucho sobre computadoras como la astronomía se trata de telescopios, o algo similar ).

Escribir es solo una forma de implementar la solución (y actualmente la más popular), aunque hay otras formas, como:

  • pseudocódigo en una pizarra blanca (que ilustra la solución, pero desafortunadamente no se ejecuta ni hace nada)
  • tarjetas perforadas (ahora consideradas obsoletas)
  • Tal vez arreglos lógicos programables o si desea que su solución se implemente directamente en el hardware (aunque es probable que haya que escribir algo para llevar la solución de su cerebro al PLA, no sé qué tan común es "codificar" estos cosas directamente, realmente no trabajo con ellas, solo las conozco de otros que sí lo hacen).
  • personas (recientemente escuché sobre un grupo que implementó algoritmos de clasificación como un baile)
  • Rocas en un desierto . ;)
FrustratedWithFormsDesigner
fuente
0

Gran parte del acto de programación es escribir. Pintar implica acariciar con un pincel, pero llamar repetitivo es bastante superficial.

¿Aplicarían esa lógica a: - Los vendedores hablan mucho por teléfono. - Los gerentes van a muchas reuniones. - Los cantantes solo cantan. - Los actores repiten guiones.

Si es así, es por eso que no son programadores.

JeffO
fuente
-2

Si quieres ser bueno programando, es repetitivo, pero lo mismo puede decirse de cualquier cosa. La repetición está en el corazón de dominar cualquier habilidad.

John Shaft
fuente
-2

Bueno, la programación realmente puede ser una tarea bastante repetitiva. Especialmente cuando la infraestructura ha sido construida, el aburrido proceso de construir el mismo diálogo / software comercial (solo un poco diferente) comienza una y otra vez. Tienes suerte si no tienes que participar para cumplir con los plazos o si tienes suficientes jóvenes para hacer ese tipo de trabajo.

Halcón
fuente
1
Depende del tipo de trabajo que hagas, supongo
Anto