[Programmation] Votre methode pour apprendre?

Répondre
Partager Rechercher
Citation :
Publié par Manserk
je l'ai appris en cours ça

les différentes étapes... ect. je vois pas comme on pourrait faire de deux façon différentes en fait
loop unrolling, register reuse, branch prediction, out-of-order execution, ...
Citation :
Publié par Mothra
Intel possede le meilleurs compilateur pour a peu pres toutes les plateformes (windows compris). Mais il est vrai que de toute facon ca ne change pas grand chose pour les genres de projets que vous considerez ici, vu que le truc le plus lent c'est le gars qui clique.

Sinon ma methode pour apprendre c'est d'ecrire des petits jeux, des trucs pas trop ambitieux, mais ludiques et motivants. Genre un puissance 4, avec un ordinateur qui joue aussi (sans ia, juste avec des regles pour repousser la defaite).
Sur des proc Intel ce qui est loin de le rendre meilleur pour Windows L'optimisation pour AMD est mauvaise avec ICC.

Sinon tiré de Stackoverflow :
Citation :
I used to work at Intel, and developed an in-house (C++) application where performance was critical. We tried to use Intel's C++ compiler, and it always under performed gcc - even after doing profile runs, recompiling using the profiled information (which icc supposedly uses to optimize) and re-running on the exact same dataset (this was in 2005-2007, things may be different now). So, based on my experience, you might want to try gcc (in addition to icc and MSVC), it's possible you will get better performance that way and side-step the question. It shouldn't be too hard to switch compilers (if your build process is reasonable).
Citation :
Publié par Olblach
c'est comme si vous disiez que pour commencer à bricoler il vaut mieux apprendre avec un marteau qu'un tournevis...beaucoup ici ne comprennent pas que les langages sont de simples outils.

Si ma problématique c'est de récuperer des infos dans un fichier texte de 200 000 lignes j'utiliserai Perl
si je veux faire de la programmation 3D j'utiliserai C/C++
si je veux faire un machin avec 2 boutons qui fasse un calcul à deux balles j'utiliserai C#
si je veux que mon programme fonctionne à la fois sous windows et linux ou même sur un téléphone j'utiliserai Java
si je veux faire un site web vite fait avec une petite base de données j'utiliserai PHP
si je veux faire un programme de recherche scientifique qui s'appuie sur des algorithmes sophistiqués j'utiliserai Eiffel
si je veux faire un programme avec des règles logiques j'utiliserai prolog
si je veux faire un programme assez complexe mais qui doit prendre un minimum d'espace j'utiliserai Forth
si je veux faire un programme lisible et facile à maintenir j'utiliserai Delphi

etc...etc..etc...

Au plus tu en apprendras, au plus tu maitriseras d'outils et tu sauras faire des choses différentes. Maintenant pour débuter on considère que c'est le Pascal le plus adapté, et en objet je dirai Eiffel.
Tsssss


Si ma problématique c'est de récuperer des infos dans un fichier texte de 200 000 lignes j'utiliserai Python
si je veux faire de la programmation 3D j'utiliserai C/C++ ou Python
si je veux faire un machin avec 2 boutons qui fasse un calcul à deux balles j'utiliserai Python
si je veux que mon programme fonctionne à la fois sous windows et linux ou même sur un téléphone j'utiliserai Python ou Java
si je veux faire un site web vite fait avec une petite base de données j'utiliserai Python/Django ou Ruby on Rails
si je veux faire un programme de recherche scientifique qui s'appuie sur des algorithmes sophistiqués j'utiliserai Python
si je veux faire un programme avec des règles logiques j'utiliserai prolog
si je veux faire un programme assez complexe mais qui doit prendre un minimum d'espace j'utiliserai C
si je veux faire un programme lisible et facile à maintenir j'utiliserai Python ou Ruby
Citation :
Publié par Kedare
Tsssss


Si ma problématique c'est de récuperer des infos dans un fichier texte de 200 000 lignes j'utiliserai Python
si je veux faire de la programmation 3D j'utiliserai C/C++ ou Python
si je veux faire un machin avec 2 boutons qui fasse un calcul à deux balles j'utiliserai Python
si je veux que mon programme fonctionne à la fois sous windows et linux ou même sur un téléphone j'utiliserai Python ou Java
si je veux faire un site web vite fait avec une petite base de données j'utiliserai Python/Django ou Ruby on Rails
si je veux faire un programme de recherche scientifique qui s'appuie sur des algorithmes sophistiqués j'utiliserai Python
si je veux faire un programme avec des règles logiques j'utiliserai prolog
si je veux faire un programme assez complexe mais qui doit prendre un minimum d'espace j'utiliserai C
si je veux faire un programme lisible et facile à maintenir j'utiliserai Python ou Ruby


En voilà un qui n'a rien compris à l'informatique

RAD, machine virtuelle, programmation par contrats, ça te parle ?
Citation :
Publié par Kedare
Tsssss


Si ma problématique c'est de récuperer des infos dans un fichier texte de 200 000 lignes j'utiliserai Python
si je veux faire de la programmation 3D j'utiliserai C/C++ ou Python
si je veux faire un machin avec 2 boutons qui fasse un calcul à deux balles j'utiliserai Python
si je veux que mon programme fonctionne à la fois sous windows et linux ou même sur un téléphone j'utiliserai Python ou Java
si je veux faire un site web vite fait avec une petite base de données j'utiliserai Python/Django ou Ruby on Rails
si je veux faire un programme de recherche scientifique qui s'appuie sur des algorithmes sophistiqués j'utiliserai Python
si je veux faire un programme avec des règles logiques j'utiliserai prolog
si je veux faire un programme assez complexe mais qui doit prendre un minimum d'espace j'utiliserai C
si je veux faire un programme lisible et facile à maintenir j'utiliserai Python ou Ruby
Lol, tu sais c'est pas parce que t'utilises plus Python qu'autre chose que tout le monde devrait faire pareil, ni que c'est forcément le mieux à faire.
Citation :
Publié par Olblach
RAD, machine virtuelle, programmation par contrats, ça te parle ?
Les RADs c'est pour les feignants et ceux qui savent pas programmer,
Les VMs je vois pas le rapport,
La programmation par conctrat j'ai jamais vraiment essayé...
@Kedare et Olblach : pourriez-vous expliciter le lien entre vos interventions et le titre du sujet "[Programmation] votre méthode pour apprendre" svp, perso j'ai du mal à voir.

Surtout que sortir des acronymes pour montrer qu'on est un ouf et qu'on les connait... C'est très jolien quoi.
Citation :
Publié par Arendallan
@Kedare et Olblach : pourriez-vous expliciter le lien entre vos interventions et le titre du sujet "[Programmation] votre méthode pour apprendre" svp, perso j'ai du mal à voir.

Surtout que sortir des acronymes pour montrer qu'on est un ouf et qu'on les connait... C'est très jolien quoi.

Comme d'hab sur JOL quoi.
J'ai la plus grosse cémoiquisuismieuxquetoi.
Kedare no offense mais tu as 18ans ( si ton profil est bien à jour ) je doute que tu aies une grande expérience dans le monde réel.
Ta réponse me rappelle celle sur MySQL il y a qq temps.
Citation :
le C c'est tres bien pour apprendre tout en prenant de bonnes habitudes : le langage est tres strict, donc a la moindre bourde ca coince.
ironie ON

Et quand tu en corriges une, par "décalage" tu en as 10 qui popent. Royal le C

/ironie OFF
Citation :
Publié par Eno
Kedare no offense mais tu as 18ans ( si ton profil est bien à jour ) je doute que tu aies une grande expérience dans le monde réel.
Ta réponse me rappelle celle sur MySQL il y a qq temps.
Merci
Je commençais à croire que j'étais le seul à penser ça.
Citation :
si je veux faire un programme de recherche scientifique qui s'appuie sur des algorithmes sophistiqués j'utiliserai Python
Si je suis un scientifique et que corriger des erreurs de code n'est pas ma préoccupation première, pas plus que de rechercher comment utiliser telle ou telle fonction, j'utiliserais un programme par interface graphique type Labview ( "briques" de C inside ).

C'est juste un exemple bien entendu...mais franchement, en sciences on a autre chose à foutre que de la branlette intellectuelle sur la prog.*

Et tu serais étonné du reste de ce que l'on peut faire avec de "ridicules" logiciels comme Matlab.

* sans vouloir vous offenser, Mesdames, messieurs et mesdemoiselles, amateurs de programmation
Citation :
Publié par Drys Kaine
Si je suis un scientifique
Alors aucun des posts ici n'est pertinent, les problèmatiques redeviennent exactement les même qu'ailleurs.
Un scientifique qui veux exploiter un supercalculateur ne le fera pas en VB.net, de même qu'un qui veut rapidement un programme aidant à la présentation de ses travaux n'aurait pas forcément intérête à chasser les bugs de C des jours complets.
Les scientifiques utilisent, encore et toujours, Fortran. Ils ont de bonnes raisons pour ca, et pour autant que je trouve ce langage ignoble ya pas grand chose a leur opposer quand ils expliquent leur choix.
Tout est une question de temps et de couts, tous les scientifiques n'ont pas besoins d'optimiser leurs calculs. ça dépend vraiment de ce que l'ont veut faire
Moi j'ai appris en auto-didacte en commençant par PHP. Pourquoi PHP me demanderez vous, simplement parce que avec quelques bases de xHTML, CSS et JS on peut créer rapidement des scripts avec un design acceptable.

La période ou j'ai le plus appris reste mon travail de fin d'étude où j'ai eu l'occasion de développé un système en utilisant des techniques plus avancées (genre la POO, l'utilisation de design pattern comme MVC, registry, ActiveRecord, ect).

Bref pour apprendre, je trouve que la meilleur façon est de viser haut et de s'accrocher pour voir jusqu'où on peut pousser la réflexion...
Citation :
Publié par Arendallan
@Kedare et Olblach : pourriez-vous expliciter le lien entre vos interventions et le titre du sujet "[Programmation] votre méthode pour apprendre" svp, perso j'ai du mal à voir.
Tu comprendras en lisant le fil. A la base j'essayais d'expliquer à ces messieurs qui se prenaient la tête à coup de "Apprends Python", "Non java c'est mieux" ou "Il faut débuter en C" que les langages sont des outils et qu'il faut utiliser celui qui est le mieux adapté à son problème.

Maintenant tes jugements sur les kikitoudurs et autres ne m'intéressent pas plus que cela.
Citation :
Publié par Eno
Kedare no offense mais tu as 18ans ( si ton profil est bien à jour ) je doute que tu aies une grande expérience dans le monde réel.
Ta réponse me rappelle celle sur MySQL il y a qq temps.
Je programme depuis bien longtemps (depuis que j'ai 13-14 ans a peut pret) donc oui j'ai de l'expérience
Mais je fais surtout tout ce qui est coté serveurs, scripts administratifs. La GUI et le coté client je trouve ca chiant

En faite on disait juste que commencer a programmer par le C c'est stupide...
Citation :
Publié par Eno
Tout est une question de temps et de couts, tous les scientifiques n'ont pas besoins d'optimiser leurs calculs. ça dépend vraiment de ce que l'ont veut faire
T'es a l'ouest, parmi les defauts de Fortran, ne pas faire de bonnes optimisations n'est pas dans la liste. Etre penible a ecrire, oui, par contre le langage est fait de telle facon que beaucoup de choses sont exploitables par le compilo pour appliquer correctement le deroulage de boucles et l'analyse de dependances.

Ked: apprendre la programmation != apprendre un langage. Commencer par C ou Python ou Fortran ou Pascal ou Caml n'a pas grande importance. Ce qui importe c'est de comprendre les concepts comme la recursion, les boucles, les conditions, les pointeurs (du coup poru Python ou Caml ca peut etre problematique, vu que ce concept est atrophie). Bref je en vois pas pourquoi commencer par C soit specialement stupide. De mon cote je pense que Pascal est le meilleurs langage pour apprendre (complet, imperatif, muni de pointeurs mais typage assez strict), mais c'est juste pour se mettre en jambe. Une fois qu'on sait faire du pascal on sait plus ou moins faire du C, du Java (moche imperatif like) etc. Bref on a assez pour se confronter au monde.
Commencer par le C n'est pas une bonne idée car ca te plonge directement dans la gestion de la mémoire dés le début alors que c'est pas vraiment la priorité quand tu débute en programmation où tu doit plutôt te concentrer sur la logique de programmation et algorithmique
Citation :
Publié par Kedare
Je programme depuis bien longtemps (depuis que j'ai 13-14 ans a peut pret) donc oui j'ai de l'expérience
Mais je fais surtout tout ce qui est coté serveurs, scripts administratifs. La GUI et le coté client je trouve ca chiant

En faite on disait juste que commencer a programmer par le C c'est stupide...
Oui mais tu n'as aucune idée ce que c'est de coder pour une compagnie, il y a des contraintes que tu ne connais pas. cf ton post avec le Python. Le Python est un bon langage ( je code moi même avec ) mais on ne peut pas s'en servir partout comme tu semble le penser. Par exemple Django c'est cool mais niveau API c'est juste à des années lumières de PHP.
Et le C n'est pas un mauvais langage pour apprendre, il est très bon, seulement il est beaucoup plus difficile d'accès que Java/C#/Python/Ruby/Perl.

Citation :
Publié par Mothra
T'es a l'ouest, parmi les defauts de Fortran, ne pas faire de bonnes optimisations n'est pas dans la liste. Etre penible a ecrire, oui, par contre le langage est fait de telle facon que beaucoup de choses sont exploitables par le compilo pour appliquer correctement le deroulage de boucles et l'analyse de dependances.
.
Je n'ai pas compris le rapport entre ta réponse et la mienne que tu as quote. Mon post n'était pas une réponse pour le tient en fait
Le pascal c'est très bien pour commencer, c'est très proche de la formulation utilisée en algorithmique dans les livres, et ya pas besoin de faire intervenir des notions pas évidentes a comprendre au debut (genre pointeurs / allocation mémoire etc...).
Cela dit on peut très bien utiliser du C dans s'occuper de la mémoire, tant qu'on a pas besoin de structures dynamiques.

De toute facon une fois que tu touches un peu en algo, peu importe le langage (bon ok on met de coté les prolog / lisp etc... )
Citation :
Publié par Mothra
Ce qui importe c'est de comprendre les concepts comme la recursion, les boucles, les conditions, les pointeurs (du coup poru Python ou Caml ca peut etre problematique, vu que ce concept est atrophie)
Je pense que ça dépend de l'optique dans laquelle on apprend. Typiquement, si c'est pour découvrir les principes de l'algorithmique, Python est à mon sens pas mal du tout puisqu'il permet vraiment sans se prendre la tête, de faire pas mal d'expériences. Par ailleurs, son côté interprété fait qu'il est accessible en mode console (Matlab-like), donc on peut faire des essais en live et voir ce que ça donne, et se rendre compte qu'un programme c'est une suite d'instructions qu'on aurait tout aussi bien pu taper dans la console.

C'est vraiment un truc appréciable à mon sens, mais bon j'ai appris de cette façon et je fais de l'informatique scientifique, avec cet aspect algo très présent et les pointeurs ne sont pour moi que des histoires d'optimisation de mémoire - qui sont sans doute un aspect non négligeable pour d'autres applis.

Enfin, la méthode pour apprendre une fois le langage choisi, je plussoie les petits projets marrants. Tu te fixes un but (type puissance 4, pas forcément en graphique mais avec de l'ASCII) et tu fais des essais pour y arriver (les forums sont là pour les questions sur lesquelles tu bloques vraiment). Petit à petit, tu fais des trucs de plus en plus complexes, et qui se rapprochent de ce pour quoi tu apprends à programmer (faire des simulateurs de combats D&D ou une interface web c'est pas la même chose).
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés