Je suis ingénieur en mathématique et donc un peu informaticien scientifique, et c'est ce dernier terme qui importe ici.

Comme tous les camarades qui travaillent dans un domaine similaire au mien, on peut identifier certains problèmes génériques (à partir du moment où une méthode mathématique existe) :

  • comment traduire un algorithme, mais ce n'est pas le plus difficile
  • comment développer une structure adaptée
  • comment acquérir les données, comment les stocker (sous quelle forme, où, etc.)
  • comment les protéger

J'en passe.

Prenons un exemple de code que j'ai développé en quelques minutes. Ça tient sur un petit millier de ligne, dont plus des trois quarts sont des commentaires (dont un vade mecum, ce qui répond à la fonction help/man).

Problème : relever des positions et des prix sur des marchés financiers et estimer le plus simplement possible quelques indicateurs comme : les positions cumulées par année, les prix moyens par trimestre, les indicateurs de risque "fermé" (type RiskMetrics), etc. Que du calcul algébrique. Modèle de prix : un facteur gaussien (i.e. processus de Wiener le plus simple, avec vol constante).
Choix du langage : je fais du prototypage rapide, je code alors très rapidement en python, ça convient tout particulièrement à mes besoins.
Choix des structures : structures de base : listes, dictionnaire, suffisent. BOn, pour utiliser quelques structures déjà bien faites, allons pour Numeric ou numpy.
Choix de la structure de code : du très simple, fonctionnel. Je découpe mes algorithmes en petits morceaux qui s'appellent.
Choix des structures de données : là je n'ai pas vraiment le choix, ce sont de bêtes tableaux à deux entrées (ex : produit côté (appelé facteur de risque) en 1ère ligne, dates en 1ère colonne. Stockage efficace et rapide en binaire, ou en csv zippé, ça marche aussi.
Réutilisation des fonctions : load_dic, get_line, etc. pour les acquisitions de fichiers (save_dic, etc. pour les sauvegarde, bien sûr). compute_variance_matrix pour les stats dont on tire aussi les moyennes, é..., le reste, ça va se faire vite
Vision macro du code :

  1. je lis les données,
  2. je calcule mes stats,
  3. je calcul mes taux de change actualisés par pas mensuel (pour l'€, c'est juste le taux d'actualisation)
  4. je scinde les produits trimestriels (saisonniers, annuels) en autant de mois (un trimestre -> trois mois avec les positions diviéses par 3, les prix et volatilités inchangées),
  5. je fais mes petits calculs algébriques (essentiellement des sommes, des produits matriciels, etc)
  6. J'ordonne selon les requêtes
  7. j'enregistre


Faut savoir qu'on lit/visualise sous Excel... en finance, on sort peu du chantier battu...

Un de mes collègue fait à peu près pareil, sauf que lui c'est avec Matlab, ce qui est encore plus rapide mais un chouilla moins flexible mais qui permet de meilleures visualisation, forcément. Seul pb : matlab, c'est pas vraiment gratuit (et scilab, il ne veut pas en entendre parler)..

  1. je fais mes