La programación es un arte, no una ciencia. ¿Quién está de acuerdo?

La programación comparte filosofías de la ciencia, la ingeniería y el arte. Además, hay programadores que aplican estas tres filosofías:

  • A los programadores de tipo científico les gusta escribir y diseñar algoritmos. Pueden tener una sólida base matemática y una amplia comprensión de las metodologías científicas.
  • Los programadores de ingenieros son muy estrictos con la especificación y la corrección de la implementación. Son buenos desarrolladores de software.
  • Los programadores artísticos son bastante diferentes y, en mi experiencia, raros. Valoran la belleza del código fuente, tienen fuertes sentimientos o intuición de cómo deberían funcionar las cosas y no les importa si el código realmente resuelve el problema o no, si es elegante y hermoso, eso es suficiente.

Siempre he argumentado que la programación real es arte: tomas una idea, la manipulas y le das un poco de magia. A veces su creación funciona tal como la soñó, pero a veces no. Cuando no funciona, borras todo e intentas algo diferente. En realidad estás jugando con ideas y técnicas, tratando de resolver un problema que tenías en mente, o terminas haciendo algo completamente diferente. La programación es arte cuando no tienes ni idea de qué hacer: usas tu imaginación para proponer algo. Cuando tiene un concepto funcional (implementado como un programa), puede extenderlo (mediante ingeniería) y demostrar que funciona (con la ciencia) pero que ya no es arte, es trabajo.

La pregunta implica que necesita algún tipo de “talento” especial para programar. Usted no Cualquiera puede programar, pero algunos programadores son mejores que otros.

En el sentido más amplio, hay dos aspectos en la “programación”:

a) Resuelva un problema que necesita ser programado, por ejemplo, desarrolle un algoritmo de clasificación o búsqueda, cree un protocolo de comunicación, cree un nuevo códec de video, etc. Para hacerlo, necesita tener habilidades informáticas o de ingeniería. Esta parte es mucho más “ciencia” que arte.
b) Luego debe traducir su solución al código de la computadora usando un lenguaje (C, C ++, etc.). Para la creación de prototipos, cualquier nivel de habilidad de programación es probablemente lo suficientemente bueno, pero para un código rápido y súper eficiente, es esencial una buena comprensión del lenguaje de programación específico. De hecho, esta parte puede aprovechar las habilidades de programación “artística”.

Quizás una mejor pregunta es:
“¿Quién está de acuerdo en que la programación es una expresión de la ciencia de transformar la información?”
o
“La programación es un arte, no una aplicación de lógica. ¿Quién está de acuerdo?”

La programación, como habilidad, es el dominio de expresar definiciones de procesos en un lenguaje de computadora. Es una habilidad de lenguaje.
Existen definiciones de proceso para transformar la información de A a B. La expresión es como y arte, es la habilidad que se desarrolla.

Para expresar cualquier contenido correctamente, debe conocerlo. Las definiciones de proceso pueden ser muy técnicas, la semántica es importante y definitivamente son causales. Es necesario un enfoque lógico (¿científico?) Para comprenderlo y expresarlo.

Aunque una metodología científica requiere lógica, un enfoque lógico no requiere una metodología científica. La lógica es lo fundamental.

La ciencia de la programación es la comprensión de los fundamentos de una tecnología y una medida formalizada de las formas eficientes de realizar una tarea específica (ejemplo: clasificación). En la práctica, un programador no necesariamente conoce todos los detalles de un algoritmo de clasificación para usarlo. Al igual que un pintor, no necesita conocer la química de la pintura para crear una imagen.

Muchas veces, las definiciones de proceso son arbitrarias. Un programador usa una habilidad de expresión para mostrar el proceso, sea lo que sea. Al igual que un escritor con una historia, o un orador público, cada uno ha dominado la expresión.

Como comentario general, no estoy de acuerdo. La programación es artesanía. Requiere mucho trabajo.
Algunas personas son tan buenas en eso que sus resultados podrían ser percibidos como obras de arte. Lo mismo ocurre con la aplicación de pintura sobre lienzo, eso es un oficio, no necesariamente un arte …
Y la programación definitivamente no es ciencia, al igual que un vaso de precipitados o una pipeta no son ciencia. Todos se pueden usar en ciencia, pero no son ciencia en sí mismos.

Errr … espera.

¿Qué es la fotografía? ¿Es un arte?

¿Qué pasa si estás tomando fotos de la escena del crimen?

¿Qué pasa si estás tomando fotos de una estrella distante que se está convirtiendo en una nova o una división celular? ¿Todavía arte?

¿Qué tal un fotomatón? ¿Es artística una cámara que funciona con monedas?

¿Qué sucede si está tomando miles de imágenes de un objeto a intervalos precisos para que alguien pueda reconstruir ese objeto por otros medios?

Cada tarea tiene arte, ciencia, ingeniería y artesanía. Puede enfocarse en un aspecto y excluir los otros, pero la disciplina no tiene la obligación de seguirlo.

Si está analizando si un problema tiene una solución computable o está resolviendo cómo optimizar una sección lenta, esa es la ciencia. Si está intentando, con un equipo, sacar algo a tiempo que cumpla con los requisitos, está diseñando. Si solo estás dando vueltas hasta que las cosas parezcan “correctas”, de alguna manera subjetiva que no puedas expresar, entonces es arte.

Falsa dicotomía.
En el mejor de los casos, no es ciencia ni arte, aunque puede tener elementos de ambos, artesanía y comercio: en cambio, en el mejor de los casos, es ingeniería. Y ahí es donde reside la verdadera fuerza y ​​belleza.

… así como la repetibilidad, robustez y capacidad de clasificación para el desarrollo.

La diferencia entre “Informática” (la teoría del mundo de TI) e “Ingeniería de software” (la práctica y las mejores prácticas) se pierde en muchos, pero es significativa. Ambos son necesarios, pero si está contratando un programador, contrate a un ingeniero de software, así como, por una fuga, contrataría a un plomero, no a un teórico de la dinámica de fluidos.

La programación es una ciencia. A medida que aprende a codificar, está aprendiendo la ciencia de comunicarse con una máquina y cómo decirle qué quiere que haga por usted.
¡La programación se convierte en un arte cuando ha obtenido suficiente experiencia no solo para codificar bien y eficientemente, sino también con estilo y estilo! Esto no sucede de la noche a la mañana. Para algunos nunca sucede. Todo lo que son capaces de hacer es trazar las líneas necesarias en el orden adecuado para realizar la tarea requerida.
Para otros … ¡la codificación es un juego que no solo se gana sino que se gana como un JEFE! Solo sabrás de lo que estoy hablando si alcanzas ese nivel de competencia.

Yo diría un oficio, en lugar de un arte. La creatividad a veces implica, pero no mucho tiempo. Pero sobre todo es el despliegue experto de una serie de técnicas conocidas. Hay mucha experiencia detrás de conocer las técnicas, cuándo implementarlas y cómo hacerlo de manera confiable, pero muy pocas reglas precisas. La programación se parece más a la herrería que a las bellas artes.

La programación es crear instrucciones para una máquina. Lo que la máquina realiza podría ser arte o ciencia. O algo mas.

Para mí, la programación es un concepto muy abstracto, como “construir”. Puedes construir como manualidad, para crear arte, como (o para) investigación científica o simplemente por diversión, como juego. Lo mismo con la programación.

Trabajé en un código escrito como arte.
Fue horrible.

No expresas tus emociones o recuerdos en el código. Solucionas problemas. No escriba código por el mero hecho de escribir, pero escriba código porque necesita ese fragmento de código.

Si deseas hacer arte, comienza a pintar o cantar o algo …

Los fundamentos de la programación son científicos. Su diseño es lingüístico. Su belleza está diseñada. Su calidad es artesanal. Su función es pragmática.

Los fundamentos del arte son subjetivos. Su diseño involucra los sentidos humanos. Su belleza se revela más que diseñada. Su calidad también está hecha a mano. El arte puede enorgullecerse de ser inútil.

La programación es un oficio construido sobre bases científicas. Es casi tan artístico como puede ser un instrumento musical, antes de que alguien comience a tocarlo. El proceso creativo que implica es solo el segundo al resultado final y, por lo tanto, pretende eliminarse a sí mismo. En este sentido, la programación es antiartística.

Hay arte y ciencia en la programación, pero la mayor parte es fontanería, como decía el otro póster.

Aparte de hacer demostraciones de la vieja escuela, no considero programar un arte.

Ni siquiera lo considero una ciencia hoy en día. Ahora hay tantas capas entre la CPU y el código, que hay más y más posibilidades de tener comportamientos impredecibles e irrepetibles.

Hay algunos aspectos de ciencia, si desea calcular el tiempo de ejecución de un programa o desarrollar un nuevo algoritmo que no se haya hecho antes.

Pero la mayoría de la programación en estos días es básicamente una tubería de alcantarillado. Necesita conectar un formato de datos pésimo a otro formato de datos pésimo y usar alguna API ridícula para hacerlo. Yuck No hay mucha ciencia en eso.

No lo llamaría un “arte”, porque eso suena demasiado limpio y artístico. Más como un oficio o comercio, como conectar líneas de alcantarillado.

Creo que si uno mira un campo lo suficientemente profundo, encontrará que el arte, la artesanía y la ciencia juegan un papel importante.

Así como la belleza está en el ojo del espectador, también lo es la interpretación del arte.

Mi opinión es que hay muchos matices de programadores / ingenieros.

Mi sugerencia es buscar también la definición de ingeniero. Creo que el ingenio / la creatividad también pertenecen a la definición, por lo tanto, un ingeniero es un artista que utiliza las matemáticas, las ciencias y las habilidades de resolución de problemas para crear sus obras.

La programación no es un arte. Quienes creen que es un arte generalmente producen un código imposible de mantener. No está escribiendo el código usted mismo, lo está escribiendo para resolver un problema y la forma en que lo escribe es para que todos los demás tengan que mirarlo y solucionarlo.

Creo que nada es inherentemente arte, es por qué o cómo lo haces lo que lo califica como arte. Para mí, la pintura fotorrealista generalmente no es arte; Todo es técnica y no hay diseño ni expresión. También creo que el diseño industrial puede ser arte si se hace teniendo en cuenta el diseño en lugar de la producción. Entonces, sí, la programación puede ser arte, pero no es inherentemente arte.

Totalmente de acuerdo.
Hay ciencia, pero la belleza está en el arte.

Tomar nota:
No puede ser signatario del Manifiesto Ágil: “Ágil” es ahora una palabra de moda comercial que a menudo se usa mal.

Pero puede firmar el “Manifiesto de Software Craftsmanship” – Manifiesto para Software Craftsmanship

Otros enlaces:
Badass Programmers | Manifiesto
Programación, hijo de puta

Creo que para mí es más un arte, lo que significa que la creatividad es alta. Sé esto porque cuando llego profundamente al código, las horas pueden pasar y parecen solo minutos. Eso se debe a la actividad cerebral correcta requerida y el cerebro derecho no tiene sentido del tiempo.

Creo que, como la arquitectura, es una conexión pura entre los cerebros izquierdo y derecho que requieren creatividad y análisis.

Creo que la pregunta se refiere al “arte” no como en “bellas artes” sino como la palabra derivada de Ars. Es un campo de práctica, como el derecho y la medicina. Estoy de acuerdo con la declaración.

Pero también creo, como han dicho muchos aquí, que hay un gran componente creativo para la programación.

La ciencia es el estudio sistemático (método científico) del mundo natural. La programación no es eso.

More Interesting

¿Qué significa el término 'factor' en ciencia?

¿Los iones yoduro son agentes reductores más fuertes que los iones hidróxido?

¿Cuál es el agente más efectivo para un extintor de incendios que involucra equipos líquidos, gaseosos y eléctricos, CO2 o polvo seco?

¿Los científicos seculares están perfectamente de acuerdo con todas sus observaciones, y todas sus observaciones concuerdan entre sí?

¿Quién está ganando terreno en la batalla entre la ciencia y la racionalidad versus el pensamiento mágico y la irracionalidad? ¿Por qué?

¿Cómo se formaron los océanos?

¿Por qué algunos átomos como el aluminio tienen una retención más débil en sus electrones de valencia?

¿Podríamos perforar un agujero en el núcleo de la Tierra? ¿Cuanto tiempo tardaría? ¿Sería una mala idea hacerlo? ¿Qué tal usar un láser para perforar?

La electronegatividad de un átomo de H es más que un átomo de P, pero el estado de oxidación de P en la molécula de PH3 es -3. ¿Por qué?

¿Por qué una llama siempre apunta hacia arriba?

Los fotones nacen a la velocidad de la luz sin fase de aceleración. ¿Sería posible que ya existan bajo otra forma y una vez que 'encuentran' una fuente de energía, se transforman a lo que conocemos como luz, manteniendo su velocidad existente?

¿Por qué, si el hielo no pudiera flotar en el agua, la Tierra estaría cubierta de hielo todo el año?

¿Es posible una experiencia lista para usar (OOBE)? Si es así, ¿qué tan difícil es?

¿Cuál ha sido el "arenque rojo" científico más grande de la historia?

¿De dónde vienen los meteoroides? ¿Cómo se forman?