¿Programar un Arte?

¿Programar un arte?

Últimamente he estado leyendo y encontrando una y otra vez esta discusión, ¿Programar es un arte?, Yo pienso que sí y es por el mero hecho de plasmar mis ideas y conocimiento en algo casi “tangible” como el código escrito.

La mayoría de los “profesionistas” como siempre abogan por que programar es más que teclear código mientras que los fanáticos y apasionados (mayormente autodidactas) gritan desesperadamente “Programar es un arte!”.

Por eso a continuación trataré de llegar a la conclusión de una vez por todas ya que si no mi cabeza seguirá procesando código y el bucle infinito no parará de ejecutarse.


¿Qué es el arte?

Empecemos definiendo primero que nada qué es el arte, según la wikipedia: “es una forma de expresar información y dicha información puede transmitir ideas, sentimientos o emociones, limitarse a producir o expresar excepciones y sensaciones que no sean explicables de otro modo”.

Y llegados a este punto.

¿Qué es programar?

Es plasmar un algoritmo en un lenguaje de programación. (ojo que no sólo “picar teclas” como alguien dijo por ahí).

¿Entonces es un arte o no?

Dado que la ingeniería del software no era aplicada cuando los primeros programadores provenientes de las Ciencias Matemáticas y Fisica puedo decir que ellos eran como “Artesanos” lo mismo para los programadores de la Old School que desarrollaban en assembly, c y otros lenguajes antiguos; para ellos el mero hecho de programar no era por “trabajo” era por una expresión de su conocimiento e ideas plasmadas en código, por el goce y el disfrute, por lo tanto Programar ERA un arte.

Con la llegada de la profesionalización de carreras de Informática y el desarrollo poco a poco de la Ingeniería de Software, la programación pasó de ser “Artesanal” a “Ingeniería”.

Actualmente se considera “técnicos” o “programadores” (pica código) a aquellos que programan sin definir detalles de un proyecto, sin planificación ni nada. El problema de esto es que muchos de estos “pica códigos” ya tienen definido y especificado su algoritmo sea en su cabeza o por papel.

Para finalizar y como analogía, diré que “Hacer hamburguesas de McDonalds ES UN ARTE” más que un proceso de producción bien definido.

Quién me diga que no y siga pensando que todo es Ciencia e Ingeniería entonces debería leerse la biografía de Ray kroc y darse cuenta de como habla del pan para hamburguesa y las papas fritas.

Y tú, ¿ sigues pensando que programar NO es un arte? Te invito a expresar tu opinión.

edh says:

A menudo se tiende a pensar que el “Arte” son pinturas sin sentido de gente que está muy loca…

y si lo piensas bien… los programadores estamos muy locos! :D

Para programar no existe una receta mágica que solucione problemas… hay que ser creativos! como los pintores o escultores.

Yo me considero un artista, lo de ingeniero o cientifico se lo dejo a los mente-cuadrada que usan trajes apretados.

Benjamin says:

claro que es un arte muchachos, el programar requiere de inspiracion y deseo.

saludos.

Benjamin says:

por cierto lo de ser ingeniero se trata de “ingeniar” soluciones, y no eso de solo usar herramientas ya ingeniadas. esos son ingeniebrios jajaja

tabo says:

Yo no se si sera tanto un arte programar pero lo que si se es que cuesta y bastante por eso no hay nunca que menos preciar la programacion ya sea que estemos comenzando o que seamos professionales

Marcos says:

Que tal un saludo a todos, mi nombre es Marcos, 20 años, estudio ingenieria en sistemas, para no darle muchas vueltas a esto estoy haciendo un trabajo de investigacion y me intereso mucho de lo qeu hablan, han oido hablar de la crisis del software??? pues segun lo que me estan enseñando en la escuela esos errores catastroficos sedeben a la programacion ARTESANAL y lo que se pretende (al menos en mi escuela) es enseñarnos a usar una metodología para programar, me interesan mucho sus comentarios y si me lo permiten los usare en mi trabajo de investigacion.

Mi correo es shin_kou_hadou_ken@hotmail.com por si quisieran hablar al respecto, pueden e-mailearme jajaja saludos a todos

Eduardo says:

Hola Marcos,
En principio deberias definir PROGRAMACIÓN ARTESANAL.

Lo mio no es artesanal, las metodologias las escribo en mi cabeza, desarrollo un mapa mental y ideo las soluciones en mi cabeza. Yo no he estudiado ninguna ingenieria y sin embargo, cumplo con los estandares, y sigo una metodologia y un estilo de programación que muy pocas veces los ingenieros cumplen.

Definitivamente no distinguirias código hecho por mi o código hecho por un ingeniero… ¿entonces, en donde está “la artesanía?

Creo aqui, que la crisis del software se debe mas que nada a los programadores MEDIOCRES y esta categoria comprende programadores “artesanales”, autodidactas e ingenieros (nadie se salva).

Salu2 amigo un gusto saber tu punto de vista.

Este comentario te ha servido? y colabora con el blog
Reply
checho says:

hola,, pienso q si. La programación es un arte, saludos

Ignis says:

Reafirmo lo de Marcos, la verdad, en esta carrera (me refiero al diseño de software) existen los que se hacen en la escuela y los que se hacen en la practica, en lo particular, creo que el verdadero conocimiento se toma de la experiencia, fruto de la practica, y de la escuela únicamente tomas las bases más fundamentales que sirven como guía. Un Ingeniero no es buen programador/desarrollador, por ser ingeniero, por que la brecha entre lo que se enseña en las Universidades, y lo que se aprende en el campo laboral, es ENORME.

Ignis says:

Perdon, una aclaración, en mi comentario pasado, quise decir, “Reafirmo lo dicho por Eduardo…”

DarkMusician says:

Talvez escribir el codigo no es un arte por que de hecho cualquiera puede hacerlo, pero no cualquiera puede crear soluciones de la nada e ingeniarselas para facilitarle la vida a los mortales jeje e inclusive cualquiera puede escribir una hoja de estilos ,HTML, etc pero crear una pagina web con una buena navegabilidad, una interfaz agradable y al mismo tiempo original eso si es una obra de arte al menos para mi…

Saludos…

Alberto says:

En el sentido de la analogía, el artesano no tiene o un utiliza métodos científicos para realizar su tarea, Si utilizas un método para registrar tus estimaciones de tiempo para realizar cada código o función, realizas diseños previo a la codificación, encuentras defectos antes de la primera compilación y has identificado errores que cometes al realizar tu desarrollo, además tu código puede ser mantenido por otro desarrollado. Entonces creo que tu método funciona y debería propagarse, pero si no tienes ese tipo de resultados creo que es (en el sentido de la previa definición de artesano) artesanal.

Marcos says:

Hola que tal, veo que ha pasado tiempo, cuando escribi por primera vez tenia 20, ahora 22 :S jajajaja.

Ya ni recuerdo como era la discusion, pero a lo que me refiero y espero no volvamos a pelear, es que la programacion artesanal (o como yo la considero) consiste en analizar el problema de manera personal y tratar de solucionarlo (utilizando la herramienta que sea).

A diferencia de las metodologías en las cuales se requiere un analisis que conste de un “documento” que pueda ser leido por cualquier otra persona diferente a quien lo realizó, pueda ser entendido y puesto en practica, en este documento tal no te dicen como se debe solucionar precisamente pero si se incluyen caracteristicas como son las conocidas reglas de negocio bien especificadas para que el programador pueda resolverlo.
Espero que me haya dado a entender porque luego loqueo y no puedo ordenar mis ideas en palabras.

Ahora que han pasado dos años entiendo mas la importancia de esta metodología, he estado trabajando con dos personas mas en un proyecto, trabajamos por capas y mientras mi colega se encarta de algo asi como la “Vista” yo me encargo del “Controlador” y utilizamos una metodologia agil, por lo cual mi superior puede arbitrariamente analizar mi codigo y modificarlo a placer ( a veces no me causa gracia sobre todo cuando no me lo informa) para procurar que respete las reglas de negocio o para optimizarlo.

Desde que siguen un plan riguroso esto deja de ser artesanal, tal vez no siempre es necesario y una vez mas es depende del punto de vista de cada quien, pero yo requiero hacerlo asi y a parte generar una documentacion correspondiente qeu como dice ALBERTO, con la finalidad de que alguien mas pueda retomar el trabajo que yo he hecho cuando me pateen de aqui! jajaja. Saludos a todos…. atte: MaCCz

pain says:

Hola pues me parece interesante, hoy estaba ojeando un libro de programacion de juegos con direcx 9.0 y .net y la verdad me di cuenta de que se requiere muchisima imaginacion, lo mismo para diseñar una base de datos y para poder manipular los datos en ella a travez de aplicaciones, ultimamente me dio por descargar libros de la web, pero me parece un reto dificil aprender a programar, incluso llega a aburrirme, cre k tal vez no naci para esto pero de que programar es un arte, estoy seguro de que lo es, no basta con leer lineas y lineas de codigo y memorizarlas, el chiste es saber aplicarlas correctamente en una u otra situacion y sentir satisfaccion cuando resuelves un problema.

pain says:

[/html]

hola de nuevo pues me fui a buscar que “rayos” es arte y saben que?, no encontre un significado en concreto, arte tiene muchos significados :

«el arte es el recto ordenamiento de la razón» (Tomás de Aquino); «el arte es aquello que establece su propia regla» (Schiller); «el arte es el estilo» (Max Dvořák); «el arte es expresión de la sociedad» (John Ruskin); «el arte es la libertad del genio» (Adolf Loos); «el arte es la idea» (Marcel Duchamp); «el arte es la novedad» (Jean Dubuffet); «el arte es la acción, la vida» (Joseph Beuys); «arte es todo aquello que los hombres llaman arte» (Dino Formaggio).

asi que para empezar parece que cada quien puede tener su propia version de k es arte y decir que programar es un arte me llena de mas interrogantes jajaja [/html]

Edith says:

Buen artículo para los que a veces nos desmotivamos… Crisis geek como les suelo decir yo. Gracias, Marcos!