Je suis entièrement nouveau dans la notion de science informatique et je cherche un bon point de départ.
Je comprends qu'il n'y a pas de meilleur langage objectivement, mais j'aimerais apprendre un langage qui a une présence incontestablement forte et proéminente en matière de science informatique - une langue considérée comme ayant des capacités et une efficacité exceptionnelles.
Pour commencer, je penchais vers la modélisation liée aux liaisons et interactions atomiques, avec un besoin de représentations / simulations graphiques.
Certaines langues ont-elles tendance à être meilleures pour certains domaines que d'autres (c.-à-d. Physique vs mathématiques pures)? Ou est-ce que le choix d'une langue est basé sur d'autres facteurs?
J'ai souvent entendu le nom Fortran.
Suggestions?
Réponses:
Il s'agit principalement des bibliothèques numériques à votre disposition qui vous aideront à accomplir votre tâche. C / C ++ a un grand nombre de bibliothèques numériques implémentées pour eux, mais étant des langages de bas niveau ne sont pas les meilleurs pour prototyper quelque chose rapidement.
Je pense que pour aller rapidement vers une solution, je recommanderais d'utiliser quelque chose comme Matlab ou Mathematica. Ils ont un grand ensemble d'outils et sont de très haut niveau. Très probablement, votre implémentation là-bas ne sera pas mise à l'échelle pour une utilisation en production, mais cela pourrait être un terrain de jeu agréable pour essayer différentes méthodes. Une fois que vous connaissez un chemin à suivre, vous pouvez toujours implémenter quelque chose en C / C ++ plus efficacement.
la source
Python!
Cela paraphrase ce que je pense être la meilleure façon d'aborder un problème de calcul scientifique. Commencez par mettre la main sur le problème en jouant avec des exemples de jouets dans de petits scripts. Devenez plus systématique et mettez en place une suite de code. Faites ensuite fonctionner votre code !!! Enfin, si nécessaire, effectuez l'optimisation du code. Ne réinventez pas la roue et ne faites pas d'optimisation prématurée.
(Avantages supplémentaires: Python est gratuit - aucun problème de licence, grande communauté, par exemple sur stackoverflow, modules pour une bonne programmation comme test unitaire ou journalisation ...)
la source
Essayez Python comme décrit par exemple dans le livre Python Scripting for Computational Science .
la source
Python peut être un excellent point de départ. La ressource suivante est un excellent point de départ.
http://www.openbookproject.net/thinkcs/python/english2e/
la source
Fortran: comme Matlab, facile à apprendre et à utiliser et rapidement productif, mais seulement bon pour l'informatique numérique
C ++: Difficile à maîtriser (cela vous prendra des années) mais beaucoup utilisé en dehors de l'informatique numérique (sécurité d'emploi)
Python: beaucoup recommandé de nos jours mais trop lent pour un travail non trivial. Vous devrez écrire tous vos noyaux sous-jacents coûteux en calcul en C, puis les appeler depuis Python, ce qui signifie que vous devrez apprendre (au moins) deux langues
la source
Réponse courte
Apprenez les bases du code orienté objet via python et apprenez les bases de l'informatique via C. Lorsque vous êtes au moins assez bien avec ces deux autres langages, apprenez le C ++, car vous pouvez faire à peu près tout en C ++ et exécutez-le rapidement (même s'il faut une éternité pour écrire).
Réponse plus longue
Alors, voici la chose: pour votre premier projet, vous serez dans le laboratoire de quelqu'un travaillant sur le code de quelqu'un d'autre. Dans ce cas, ce sera eux qui choisiront le langage de programmation. Ce que je pense personnellement est plutôt génial!
Je veux dire, en tant que débutant, vous ne connaîtrez pas vraiment votre cul de votre coude pendant un certain temps, et, surtout lorsque vous ne savez pas ce que vous faites, apprendre à programmer peut être empruntant. Ainsi, il est bon d'avoir la structure et les limites qui découlent du travail sur le code de quelqu'un d'autre, et c'est bien d'avoir la motivation et l'enthousiasme qui ne peuvent venir que du travail sur un vrai projet.
Néanmoins, quel que soit le langage utilisé par votre laboratoire (surtout s'il s'agit de Matlab), vous devriez probablement apprendre le python, le C et le C ++. En particulier, si vous ne venez pas d'une formation en informatique, vous DEVEZ lire "The C Programming Language" de Kernighan et Ritchie. Il a 35 ans et donne la nette impression que ses auteurs programmaient sur des cartes perforées, mais c'est le plus rare des oiseaux: un livre informatique intemporel. Cela clarifiera beaucoup de choses.
la source