El porqué no todo el mundo puede ser programador (un enlace compartido por Narciso N.)

183 views
Skip to first unread message

Saúl Piña

unread,
Feb 6, 2015, 9:57:13 AM2/6/15
to publice...@googlegroups.com
No todo el mundo puede llegar a ser programador. La programación no es un asunto para cualquiera. 
Es una tarea muy especializada que requiere la combinación de actitudes, conocimientos y un ambiente correcto para poder desarrollarse.
En este artículo se explica algunas razones. Comencemos por el principio: Hay que tener pasión para resolver problemas La programación de software es para el individuo que siente pasión por resolver problemas.
La experiencia indica que no todo el mundo le agrada la idea de andar resolviendo problemas.
El proceso de resolver problemas implica tener una mente proactiva, lista para el trabajo duro y constante.
La mayoría de las personas son perezosas en este sentido. Toma tiempo dominar este arte El que piense que ser programador es cuestión de un evento, no está pensando correctamente o lo están desinformando deliberadamente.
Llegar a ser un programador eficiente es producto de un proceso de aprendizaje que tarda años.
La programación es un arte que se aprende en modo ?prueba y error?, consumiendo años de esfuerzo y energías.
En pocas palabras, requiere trabajo duro y constante para llegar al nivel de ser productivo. Hay que tener la actitud correcta El programador debe tener una actitud positiva, y al mismo tiempo, una mente tenaz.
El proceso de escribir un código fuente es complejo,  envuelve tener pendiente multitudes de
detalles técnicos (sintaxis, variables, procesos, bucles, entradas, salidas, etc.).
La misma naturaleza de la tarea hace que cada paso sea un desafío. Aquí no existen atajos. No existe un asunto más tedioso y aburrido que "debuggear" y luchar contra ese "sentimiento de impotencia"
que surge cuando tenemos un código fuente que no parece compilar nunca, aun cuando el código luce estar perfectamente escrito.
Sí, todos hemos pasado por esto, al final sólo faltaba un "punto y coma" o cerrar una llave para que el código compilara. Recientemente, leí en un ensayo de Paul Graham,
que el verdadero programador disfruta el proceso de  "debuggear". No lo ve como una pérdida de tiempo sino que disfruta
cada segundo hasta encontrar la solución. Yo creo que Graham tiene razón. Si no te gusta "debuggear" quizás no sientes pasión por este arte. Pensar "outside the box" Para aprender programación es necesario pensar de manera abstracta.
El pensamiento abstracto es fácticamente demostrable que no le es atractivo al "Layman" o "Average Joe" Recuerdo perfectamente en la universidad aprendiendo POO (Programación Orientada a Objetos)
cuando el profesor explicaba los términos: herencia, polimorfismo, objeto, método, clase, etc.
La mayoría de los estudiantes no captaban los conceptos. Era como si se les hablara en Mandarín.
La abstracción requiere dos cosas: (1) el método correcto de enseñanza; (2) una mente fértil. Planificación y diseño, luego ejecución Codificar es una cosa, planificar y diseñar la solución de un problema es otra cosa muy diferente.
La mayoría de las personas que he visto fracasar en el intento de convertirse en programadores tienen una característica en común:
no tienen una sólida base de conocimientos en matemáticas y algoritmos. Es cierto que la programación es un arte, pero al mismo tiempo también es una ciencia.
Es una combinación de creatividad y estructura mental. No están separadas, al contrario, coexisten indistintamente.
Para resolver problemas computacionales es necesario pensar "outside of the box", pero para aplicar esa solución creativa,
y llevarla a la realidad, es necesario orden y estructura. Es aquí donde muchos fracasan.
No es posible llegar a una solución eficiente si no contamos con un algoritmo que aproveche de la mejor forma los recursos computacionales disponibles. Hay que ser curioso   La mayoría de los programadores competentes son personas muy curiosas.
Les gusta aprender constantemente y averiguar el porqué de las cosas.
De hecho, la mayoría que conozco son autodidactas y no paran de aprender.
La programación no es estática. Es una profesión que viene en constante evolución (nuevos lenguajes, IDE, Frameworks, etc.).
Si no eres curioso y dependes de otras personas para aprender, la programación no es para ti.

Victor Espina

unread,
Feb 6, 2015, 2:19:50 PM2/6/15
to publice...@googlegroups.com
Excelente.  Lo tomo prestado para ponerlo en mi blog.  

Victor

edgar suarez kummers

unread,
Feb 6, 2015, 4:13:59 PM2/6/15
to publice...@googlegroups.com
Felicitaciones por el texto, que es muy acertado en sus aseveraciones.

Sin criticarlo para nada porque es muy completo, te sugeriría que le añadieras el perfil de un programador ubicandolo dentro de los rasgos de la ´personalidad definidos en lña sicología aplicada, obviamente de aquellos que se pueden generalizar.

Saludos

Jorge L. Florez C.

unread,
Feb 6, 2015, 4:18:07 PM2/6/15
to publice...@googlegroups.com
Hola, yo discrepo con dicha observación, mas bien lo que no todo el mundo puede ser, es analista, que es a lo que se ajusta más dicho texto y no a un programador.

Saludos
Jorge Florez
Lima - Perú

edgar suarez kummers

unread,
Feb 6, 2015, 4:20:56 PM2/6/15
to publice...@googlegroups.com
Buenas Jorge Florez:

¿ Y cómo arreglarías esas observaciones para que se ajusten a tu buen criterio ?

Saludos agradecido

Fernando D. Bozzo

unread,
Feb 6, 2015, 6:21:22 PM2/6/15
to publice...@googlegroups.com
Muy bueno Saúl!

Rengo 2 observaciones sobre lo que comenta:

1) No está hablando de un PROGRAMADOR, sino de un DESARROLLADOR (aunque haya escrito lo contrario), ya que programar lo puede hacer cualquiera, porque solo es necesario escribir instrucciones de programa "que hagan algo", copiar código de algún sitio o preguntar todo sin buscar nada (comodidad..... a alguno seguro que le suena :), y como se habrá visto, en los foros hay bastantes personajes que tienen este perfil. El Desarrollador, por el contrario, además de saber programar tiene todo el resto de aptitudes que comenta el autor, además de pasión y curiosidad. La pasión, la curiosidad y la capacidad de análisis creo que diferencian claramente a uno de otro.

2) Un buen programador no es el que hace programas que "funcionen" solamente, sino que hace eso con un código legible, optimizado, preparado para que pueda ser leído y entendido por otros y que sigue las pautas de las buenas prácticas de programación. He visto muchos programas que "funcionan" pero que son inmantenibles y que han causado muchos problemas a otros programadores a la hora de hacerle cambios, por estar mal escritos (código spaghetti) o mal modularizados.


Saludos.-

Fernando D. Bozzo

unread,
Feb 6, 2015, 6:22:05 PM2/6/15
to publice...@googlegroups.com
Errata:

Rengo => Tengo

edgar suarez kummers

unread,
Feb 6, 2015, 7:18:53 PM2/6/15
to publice...@googlegroups.com
También se debería contemplar el tipo de software, o sea en qué se va a emplear la aplicación.

Pienso que en orden de complejidad de mayor a menor se pueden agrupar así:

0 - inteligencia artificial (faltando cientos o decenas de años para eso)(autoprogramación) 

1 - aplicaciones sobre la mente humana. (psicología y psiquiatría)

2 - aplicaciones sobre la salud humana. (medicina, anatomía, fisiología, farmacología)

3 - aplicaciones de control de procesos. (aviación, industrialización, navegación)

4 - aplicaciones sobre las ciencias conocidas. (física, química, biología, materiales)

5 - aplicaciones sobre las normas conocidas. (derecho, contaduría)

6 - aplicaciones sobre entretenimiento. (juegos y esparcimiento)

Las primeras, 0 y 1 son divergentes.

Las otras son convergentes.

La 0 - ejemplo: se mueren los pilotos de un avión y el computador de abordo se auto programa para llevar a los pasajeros a feliz término. Caso hace un año, el avión de Malaysia que no se sabe donde quedó. Caso dos, los aviones que impactaron las torres gemelas. 

La 1- saber como tratar a tiempo a los locos que nos pretenden gobernar sin necesidad de traer del futuro a alguien que impida que preñen a sus madres. Saber como tratar al futuro o futura conyuge.

La 2- acompañamiento a los médicos para lograr diagnósticos rápidos y precisos, no llega a inteligencia artificial, pero deben ser formidables aplicaciones. En dos de mis enfermedades y en por lo menos tres de mis muertes fallidas hubieran sido muy útil haber contado con algo así.

La -3 sin llegar a los niveles de inteligencia artificial, pero que los programas recomienden a los navegantes y pilotos las mejores opciones y los mejores diagnósticos acerca del estado de sus naves y de su entorno.

La 4- Para uso en las industrias, construcciones, alimentos, agricultura, minería, pesca, ganadería.

la 5- Que utilice mucho las matrrices inversas.

la 6- juegos que desarrollen la mente de un niño o de un adulto que parezca o se crea niño.

Claro, en todo lo anterior tener unos conocimientos mínimos similares a los gurús de este foro, que ya los conocemos todos los demás miembros.

Saludos agradecido por su tiempo.

Reply all
Reply to author
Forward
0 new messages