viernes, 8 de agosto de 2008

La importancia de la lógica de Programación

¿Qué separa a un buen programador de uno “normal”?. Yo diría que la lógica de programación. El lenguaje de programación (su sintaxis) es algo que encontrarás en muchos libros o en los manuales de ayuda de la aplicación, pero ¿como es que teniendo los mismos libros para aprender, una persona realiza mejores programas que otra?.

El conocer un lenguaje de programación, su sintaxis, librerías y pormenores tiene su mérito y sobre todo, su nicho de mercado. Sin embargo, más importante que eso cuando se sale a conseguir trabajo ya sea como empleado o como “freelance” es tener lógica de programación.

A lo largo de mi carrera profesional, he aprendido a utilizar varios lenguajes de programación tales como C++, Delphi, C++ Builder, ASP, VB6, VB.NET, ASP.NET, PHP, JSP, JavaScript. ¿Y qué tienen todos ellos en común?, pues que siempre existe una manera de tomar decisiones, realizar repeticiones, declarar funciones o procedimientos, declarar variables. Es cierto que en cada uno se escriben de manera diferente.

¿Cuánto te puedes tardar en conocer (y digo conocer más no dominar) un lenguaje de programación?. Aproximadamente 15 días. ¡Claro que no será así la primera vez!. Cuando comencé a estudiar Turbo Pascal por allá de 1996 durante la preparatoria, me tomó mucho más que eso ‘agarrarle la onda’ a esto de la programada. Tuve que realizar muchísimos ejercicios y pruebas para poder comprender la lógica de programación. Sin embargo, una vez dominada la lógica aprender un nuevo lenguaje es más sencillo cada vez.

Todos hemos escuchado esa frase que dice: “al que más tiene más se le dará, y al que tiene menos, aún eso poco que tiene se le quitará”, la cual aplica también al conocimiento. Un ejemplo más claro: “use it or loose it”, “lo que no se usa se oxida”. Y esto aplica también al conocimiento. Veamos… el cerebro es una “máquina” de aprender, y mientras más aprenda más conexiones realiza entre sus neuronas, y mientras más conexiones tenga, más poder de asociación tendrá y más sencillo le resultará aprender.

Ok, ok, me desvié un poco, ¿cuál es el punto?. El punto es que mientras más lógica de programación tengas y más lenguajes de programación conozcas, más fácil te será aprender un nuevo lenguaje de programación ya que los conceptos son muy parecidos entre ellos, de hecho, si conoces C++ se puede decir que ya conoces una parte de Java ó de PHP. Y si conoces Turbo Pascal, ya conoces una parte de Delphi y por lo tanto se te facilitará aprender otro lenguaje de la misma especie como Visual Basic .NET y se te facilitará luego conocer ASP.NET . Revisa la gráfica que aparece a continuación y observa como el conocimiento de un lenguaje te facilita otro.


Sin embargo, el hecho de conocer varios lenguajes de programación no te hace mejor programador porque podría ser que ¡seas malo en todos!, o por otro lado, tal vez conoces unos pocos y eres bueno programando y cuando estudias otro lenguaje de programación ¡también eres bueno en ese!.

Tampoco olvidemos que cada lenguaje de programación tiene su ámbito (de esto hablaremos en otro post en un futuro cercano), esto es, su lugar de aplicación, no puedes intentar programar una aplicación de base de datos utilizando solamente lenguaje ensamblador, de la misma forma, no intentes programar el control remoto de la televisión utilizando Visual Basic .Net

Ok, ok…. Me desvié de nuevo del tema del post, ¿cuál es la importancia de la lógica de programación?. La importancia de la lógica es que programar no es como tener una receta, no es una lista de pasos a seguir, aunque muchos quieran verlo de esa manera, no se puede aplicar la misma solución en todas las ocasiones y lo más importante de programar aplicaciones del tipo que sea es que tengas la capacidad de adaptarte a los requerimientos del entorno. La buena noticia es que la lógica de programación es algo que se desarrolla, la mala... es que se desarrolla practicando y realizando ejercicios.

2 comentarios:

Juan Miguel dijo...

Bien expresado, pero como puedes ver la "lógica de programación" va de la mano en cómo enfrentar un problema, en mi experiencia personal (carente de mucho conocimiento de programación a estás alturas), es cómo resolver un rompecabezas, una ecuación cuadrática o simplemente encontrar la sálida a un laberinto.

Un ejemplo más fácil que me pierdo, es como acudir a un lugar determinado, existen muchas opciones para acudir a el: ´Toaar un taxi o un camión, pedir que te lleven, etc. (estas son alternativas de un mismo tipo: Apoyarse en algún medio de transporte), otra solución es: Caminar y ahí la lógica se subdivide y te indica varios caminos, calles, etc. para tomar y llegar ya sea a tiempo, antés o poco después de la hora acordada.

En realidad no hay caminos equivocados, pero sí los hay que te harán trabajar más, todo esto influye en cómo programarás y qué lógica seguirás, también recuerda que muchas veces se dice de las personas que "se fueron por el camino más díficil" o "hasta que no tocaron fondo salieron del problema".

Saludos y otro tema agradable.

Eskarabajo dijo...

Tengo 5 años trabajando como desarrollador de software, y tengo la fortuna de trabajar con un equipo grande y de muy buen nivel de desarrolladores.

Por la dinámica del trabajo, es muy común que te "Hereden" sistemas que traía otro compañero por que este se va a integrar a un nuevo proyecto.

y me he dado cuenta que otro factor importante para distinguir a un "buen programador" de uno "promedio" es la 'limpieza' con la que escriben su código, entre mejor estructurado este, respetando la indentacion de código, estándares, y nomenclaturas mas fácil sera para otro programador darle seguimiento a tus proyectos