Soy completamente nuevo en la noción de ciencia computacional y estoy buscando un buen punto de partida.
Entiendo que no existe un lenguaje objetivamente mejor, pero me gustaría aprender un lenguaje que tenga una presencia indiscutiblemente fuerte y prominente con respecto a la ciencia computacional, uno que se considera que tiene una capacidad y eficiencia excepcionales.
Para comenzar, me inclinaba hacia el modelado relacionado con la unión e interacciones de los átomos, con el requisito de representaciones / simulaciones gráficas.
¿Algunos idiomas tienden a ser mejores para algunos campos que otros (es decir, física versus matemática pura)? ¿O la elección de un idioma se basa en otros factores?
He escuchado mucho el nombre de Fortran.
Sugerencias?
Respuestas:
Principalmente se trata de las bibliotecas numéricas disponibles para usted que lo ayudarán a cumplir su tarea. C / C ++ tiene una gran cantidad de bibliotecas numéricas implementadas para ellos, pero ser lenguajes de bajo nivel no es lo mejor para crear prototipos de algo rápidamente.
Creo que para avanzar rápidamente hacia una solución, recomendaría usar algo como Matlab o Mathematica. Tienen un gran conjunto de herramientas y son de muy alto nivel. Lo más probable es que su implementación allí no se adapte al uso de producción, pero podría ser un buen lugar para probar diferentes métodos. Una vez que conoce el camino a seguir, siempre puede implementar algo en C / C ++ de manera más eficiente.
fuente
¡Pitón!
Esto parafrasea lo que creo que es la mejor manera de abordar un problema en la informática científica. Comience por resolver el problema jugando con ejemplos de juguetes en pequeños guiones. Sea más sistemático y configure un conjunto de códigos. ¡Entonces haz que tu código funcione! Finalmente, si es necesario, optimice el código. No reinventes la rueda y no hagas una optimización prematura.
(Ventajas adicionales: Python es gratis, sin problemas de licencia, gran comunidad, por ejemplo, en stackoverflow, módulos para una buena programación como pruebas de unidad o registro ...)
fuente
Pruebe Python como se describe, por ejemplo, en el libro Python Scripting for Computational Science .
fuente
Python puede ser un gran punto de partida. El siguiente recurso es un excelente punto de partida.
http://www.openbookproject.net/thinkcs/python/english2e/
fuente
Fortran: similar a Matlab, fácil de aprender y usar y rápidamente productivo pero solo bueno para computación numérica
C ++: Difícil de dominar (te llevará años) pero se usa mucho fuera de la computación numérica (seguridad laboral)
Python: Recomendado mucho en estos días pero demasiado lento para trabajos no triviales. Deberá escribir todos sus núcleos computacionalmente costosos subyacentes en C y luego llamarlos desde Python, lo que significa que tendrá que aprender (al menos) dos idiomas
fuente
Respuesta corta
Aprenda los conceptos básicos del código orientado a objetos a través de Python, y aprenda los conceptos básicos de la informática a través de C. Cuando esté al menos bastante bien con esos otros dos idiomas, aprenda C ++, porque puede hacer casi cualquier cosa en C ++ y hacer que se ejecute rápidamente (aunque lleva una eternidad escribir).
Respuesta más larga
Entonces, aquí está la cosa: para su primer proyecto, estará en el laboratorio de alguien trabajando en el código de otra persona. En cuyo caso, ellos serán los que elegirán el lenguaje de programación. ¡Lo cual personalmente creo que es genial!
Quiero decir, como principiante, realmente no vas a conocer tu trasero por un tiempo, y, especialmente cuando no sabes lo que estás haciendo, aprender a programar puede ser aburrido. Por lo tanto, es bueno tener la estructura y los límites que provienen de trabajar en el código de otra persona, y es bueno tener la motivación y la emoción que solo pueden venir de trabajar en un proyecto real.
Aún así, independientemente del idioma que use su laboratorio (especialmente si es Matlab), probablemente debería aprender Python, C y C ++. En particular, si no viene de una formación en informática, DEBE leer "El lenguaje de programación C" de Kernighan y Ritchie. Tiene 35 años y da la clara impresión de que sus autores estaban programando en tarjetas perforadas, pero es el más raro de los pájaros: un libro de ciencias informáticas atemporal. Hará muchas cosas mucho más claras.
fuente