En la red puedes encontrar, por ejemplo, listas de los 10 lenguajes de programación que deberías aprender o de los 10 mejores, y cosas por el estilo. Desafortunadamente no todo lo que está en la red es oro ni todo lo que te llega es aplicable. En muchos casos, no siempre se responde la principal duda de un novato:
¿Cuál es el lenguaje de programación que debo usar/aprender?
Y no hay respuestas claras, porque cada caso es distinto. Es decir, todo depende. Digamos, si ya sabes hacia donde te dirigirás profesionalmente la elección es más sencilla. En otras palabras, primero debes definir ciertas cosas dentro de tu cerebro.
Caso #1
Si no eres bueno en las matemáticas; pero tienes creatividad y te gusta estar pegado a la computadora con los videojuegos, buscando las nuevas aplicaciones para celular. Es posible que debas orientarte a la programación orientada a objetos. De hecho hay plataformas gratuitas disponibles en la red y tutoriales que te permiten de marea rápida iniciar con algunos ejemplos prácticos, como Android Studio.
Sin embargo, si te vas directamente a Android Studio te darás cuenta que requieres aprender algo de Java. Afortunadamente también hay muchos tutoriales en YouTube por ejemplo y puedes ir buscando como resolver problemas puntuales en diversos foros como Stack Exchange: Hot questions, por ejemplo.
Por supuesto que hay casos en los que requieras algo de matemáticas; pero lo interesante de esta vertiente es que el campo de aplicaciones es muy amplio y puedes siempre escoger involucrarte en aplicaciones que no usen tanta matemática.
Caso #2
Si eres ingeniero o estudias un posgrado relacionado con la ciencia básica o de alguna otra área; pero tienes ciertas bases de matemáticas y además te gusta programar o deseas involucrarte un poco más; entonces hay algunas recomendaciones que puedo hacer.
La verdad es que hay muchas opciones. Algunas son comerciales y otras son gratuitas. Algunas son más fáciles de usar (mucho mucho) que otras. Entonces, en vez de nombrar los programas y sus características, le haremos a la inversa.
2a Si sabes o has tomado algún curso de métodos numéricos en la carrera y no te fue tan mal, es posible que sepas como implementar uno de estos métodos (casi como una receta) con lápiz y papel. Digamos, sabes o tienes una idea de que resultados esperar cuando aplicas un método numérico; pero no te interesa desarrollar un programa e invertir tanto tiempo en algo que solo usarás quizá unas 20 veces. Si este es tu caso, lo que requieres es aprender un lenguaje de programación de alto nivel como: MAPLE, Mathematica, Matlab, por ejemplo.
De estas 3 opciones debe decirse que:
- todas son comerciales,
- las primeras dos permiten manejo de expresiones algebraicas (cálculo analítico),
- Matlab está mas enfocado a cosas numéricas.
- son muy amigables (con colores),
- aprendes a programar muy rápido,
- tienen una ayuda muy completa y de fácil búsqueda,
- sus comandos tienen sintaxis parecida.
- hallar las raíces de un polinomio o de una ecuación trascendental,
- resolver ecuaciones diferenciales ordinarias (numérica o analíticamente (solo MAPLE y Mathematica))
- construir programas de cálculos repetitivos, entre otros
- las capacidades computacionales que tienes son escasas y debes optimizar los recursos. Es decir, que tu computadora es un poco obsoleta,
- MAPLE, Mathematica o Matlab simplemente consumen todos los recursos disponibles y no pueden completar el trabajo,
- ya tienes disponible un programa que funciona; pero que está en otro lenguaje, por nombrar algunas.
- si hay un error numérico, es un poco difícil detectarlo. Debes incluir en el código doble precisión o quadruple, si es necesario, y estructuras que te permitan manejar la propagación del error
- un programa construido en una computadora podría no funcionar igual en otra
- requieres usar un compilador cada vez que desees ejecutar el programa
- debes ejecutar todo el programa y no lo puedes hacer por partes como en MAPLE, Mathematica o Matlab
- incluso los cálculos más sencillos como el método de bisección por ejemplo, pueden requerir cierto tiempo de programación y aún así fallar o no ser exactos. Esto no ocurre en MAPLE, Mathematica o Matlab.
No comments:
Post a Comment