Salut tout le monde.
Cette année j'ai fait une première année de licence dans un UFR de mathématiques et informatique. Et normalement, si j'ai validé mes examens terminaux, je devrais passer en L2 informatique. En effet, dans ma fac le tron commun entre la licence de math et d'info ne dure qu'une année.
J'aimerais demander conseil pour savoir comment bien commencer l'année prochaine.
Alors, niveau programme, cette année on a eu (nonobstant les maths et les options) :
- Prise en main d'Unix (commandes de bases, arborescence, expressions régulières, etc)
- Initiation à la programmation avec le C
- Numération informatique
- Programmation fonctionnelle en OCAML
- Logique
L'année prochaine on aura :
- Programmation Impérative en C
- Algorithmique
- Base de données
- Architecture
- POO en java
- web (html/css/php/javascript)
- O.S.
- Théorie des langages
- Un projet de programmation durant tout le 4ème semestre
Sans vouloir énormément travailler pendant les vacances, j'aimerais améliorer ma connaissance d'unix en général pour être totalement opérationnel l'an prochain. En TP j'utilisais systématiquement emacs, mais je suis conscient d'être loin de faire l'honneur au logiciel de Stallman.
Auriez-vous des documents/sites/ouvrages pour améliorer ma connaissance d'unix et d'emacs ?
Ensuite, en prévision de la prochaine rentrée universitaire, j'aimerais savoir quels documents je pourrais utiliser pour approfondir les notions que l'on verra en cours.
On m'avait chaudement recommandé de prendre le C Ansi de K&R en version originale, mais je suis sûr qu'il y a un tas d'autres ouvrages qu'il serait intéressant d'acquérir ainsi que des tas de sites qu'il serait intéressant de consulter.
Ensuite, j'aimerais vous demander des conseils plus généraux : quelle est la méthodologie à adopter en licence d'informatique, avez-vous des remarques à faire qui me serait bénéfiques, etc ?
Merci d'avance. ![]()
Le programme de la L2 va dependre de ton universite. Tu peux certainement trouver le programme sur le site web de ton UFR. A propos d'unix et d'emacs, je ne connais rien d'autre que la pratique.
Déjà stop avec Emacs, c'est réservé aux papys à trois mains qui codent en faisant des trous dans des cartes
Tous les gens vont rire de toi quand ils feront du Java avec Eclipse et que toi tu galérera avec Emacs
Je dis ça pour ton bien
![]()
http://eclim.org/
@Ark
Sans vouloir troller plus que toi, il risque de bien se marrer quand il aura fini son projet de TP sur son emacs avant que ces petits camarades seront toujours en train d'attendre que eclipse veuille bien booter...
@tuxshadow, les editeurs de code c'est comme les distrib linux chacun a sa preference plus ou moins objective. Si tu te sens bien sur emacs ya pas de raison de changer a priori. Ca veut pas dire qu'il faut pas essayer les autres de temps en temps pour se faire une idée.
Pour ce qui est de tes cours et de la manière de bien t'y préparer, je peux te dire ce qui a marché pour moi. (mais bon c'est comme pour le reste, chacun ses preferences
)
Que ce soit pendant les cours ou pendant les vacances, ce qui m'a permis de savoir programmer correctement a ma sortie de la fac ce sont les multitudes de projet persos que j'ai fait a coté. Pas forcement pour apprendre de nouvelles choses, mais plutot pour etre sur que j'avais compris ce que j'avais appris en cours.
Avec un cours d'intro en programmation (caml ou C) tu as ce qu'il faut pour faire tout un tas de petites applications. L'important c'est de reussir a trouver des projets motivants et d'avoir de l'ambition sans viser trop haut ![]()
Dans mon cas ca a été simple, j'ai codé des jeux videos, des remake de jeux basique pour commencer (pong, arkanoid, shoot, tetris, ...). Quand on a eu un cours de reseau j'ai fait une version online du pong, quand on a eu un cours de php/html/css/sql/... j'ai fait un forum perso ect...
Pour avoir été des deux cotés du bureau de prof a la fac, je peux t'assurer qu'on voit la différence entre ceux qui viennent en cours et font les 6 TP du semestres et ceux qui bossent chez eux sur des projets perso en plus. L'informatique ca vient par la pratique au moins autant que par les connaissances téhoriques.
jamais été fan d'emac non plus (préfère vim
) mais pour des projets de taille moyenne éclipse/netbean c'est quand même plus simple
Les editeurs sont un troll courant. Tout le monde a un avis un peu different. Je sais que je n'arrive pas a utiliser eclipse. C'est trop lent, trop gros, trop de fonctionnalite qui sont cense t'aider mais qui te ralentissent. Et pour le travail a distance (qui represente en gros 80% de mon temps de programmation) c'est la merde complete.
Qu'est ce que tu entends par "le travail à distance" ?
"En effet, dans ma fac le tron commun"
Le meilleur conseil que je puis vous donner est de faire attention au MCP.
sur un serveur distant je suppose ![]()
après j'ai du mal a évaluer la puissance d'emac mais je me vois pas coder un vrai projet dessus
(ni sur vim)
mpeg, je code directement sur des clusters distant. Faire de l'edition de fichier distant sur un lien transcontinentale avec eclipse, c'est pas la joie. Les gens avec qui je travaille et qui l'utilisent perdent des donnees "en transit" plusieurs fois par mois. Avec ssh, screen et emacs -nw, je n'ai jamais perdu une ligne de code.
De plus, l'utilisation d'un editeur "tout terrain" me permet d'avoir exactement la meme interface que j'ecrive du code C, C++, du code java, un makefile, un script shell, un mail, ou du latex.
Je vois je vois, mais quel est l’intérêt concrètement? Par exemple tu es en France et tu travailles sur un pc aux USA?
Tu pourrais pas attendre de revenir pour exploiter, modifier, terminer tes projets?
L'interet est que la machine dont j'ai besoin est dans un super calculateur en californie et que mon bureau est en ohio. Et comme la machine coute un peu 1 million de dollars, bah je ne vais pas en construire une localement.
En pratique, je ne programme jamais sur une machine locale, parceque une machine qui rentre dans mon bureau ne sera pas assez puissante pour mes besoins.
Je ne peux pas developper localement parceque les architectures sont trop differente. Donc concretement je programme exclusivement a distance.
Sans compter qu'en fonction de ce que je fais ce mois ci, j'utilise peut etre une machine qui est a plus de 2000Km de la machine que j'utilisait le mois d'avant.
Ahhh d'accord je vois, vraiment excellent.
Mais en gros ce type de dispositif ne s'adresse "que" aux personnes qui ont besoin d'une puissance de calcule assez phénoménal (donc d'un supercalculateur) et qui ne peuvent se déplacer sur place.
Mais ça se passe la "location" d'un supercalculateur? Tu y as droit d'office en tant que post-doc je suppose (ou par l'intermédiaire d'un genre d'accord universitaire ou entre chercheurs?)
ça se passe comment*
Ca depend. Certaines machines sont a nous. On a acheter un petit cluster (64 noeuds, 32 GPU) il y a quelques annees, mais il est quand meme dans un batiment specialise a l'autre bout de la ville. En pratique, tu ne vas jamais sur place. A quoi ca servirai, je peux travailler aussi bien a distance?
Certaines machines sont louees. (Typiquement amazon ec2.)
Certaines machines nous sont prete. Intel nous a mis a disposition des machines equippe de Xeon Phi.
Certaines machines appartiennent a des collegues, mais pas forcement dans le meme etat.
Certaines machines sont mises a disposition de collegues par leur institutions et on obtient des access par collaboration.
Concretement les machines sont cheres et sont payes par des fond de recherches ou sont mises a disposition par des entreprises (NVIDIA nous offres des GPUs a chaque generation par exemple.)
Mais dans l'ensemble, compte tenu du prix des machines et de l'utilite qu'un groupe peut en avoir, en pratique les chercheurs et les universite se "pretent" des machines.
Bon. Sinon ça vaut le coup que je le prenne le K&R ?
Version originale ou traduction française ?
La VO est bien. la VF etait un peu etrange parfois (de memoire)
"On a acheter un petit cluster (64 noeuds, 32 GPU)"
pour faire du minage de bitcoin ?
elite, bitcoin ne vaut pas le prix de l'electricite necessaire pour le miner...
On fait different truc sur le cluster. Notre domaine de specialite est HPC. On utilise notre machine comme une petite version des gros centre de calcul au peta flop. On fait un peu de tout comme kernel sous jacent: algo d'imagerie (segmentation), algo de graphe (traverse, centralite, pagerank, detection de communaute), bioinformatique (clustering, bicluster, sequence alignment, sequence matching), algebre lineaire creuse (eigensolving, preconditionning). Si tu veux plus de details, va voir [1].
[1] http://bmi.osu.edu/hpc/