Journal apprendre à programmer..

Posté par  .
Étiquettes : aucune
0
7
juil.
2004
Bon voila c'est decidé ça fait un moment que ça me démange, j'ai decidé de
me mettre à la programmation. Je ne suis pas informaticien mais je suis
motivé. J'aimerais donc avoir vos conseils avisés pour débuter cette enorme
tache.
On m'a conseillé de me mettre d'abord à un langage 'simple' (comprendre
abordable par un newbyte) comme perl ou python, puis si ça roule de me
pencher sur du plus compliqué. Qu'en pensez-vous? Quels sites ou livres me
conseillez-vous ?


Merci de vos lumières...


ps : je ne suis pas informaticien mais j'ai des bonnes bases de
mathématiques..
  • # Oui bon ca va hein

    Posté par  . Évalué à 2.

    Puisque tu es un newbyte motivé, je te conseille de lire et de comprendre chacune des versions de ce programme tout simple :

    http://www.99-bottles-of-beer.net/(...)

    Si la version brainfuck tu comprends, ton but atteinds tu auras.
  • # Blague à part ...

    Posté par  . Évalué à 1.

    Je te conseille effectivement par commencer par Perl. Il y avait un Login sur le Perl qui était assez bien fait (les codes ne sont pas assez expliqué, et cela s'apparentait plus à une copie de la documentation officielle).

    Pour l'apprendre :
    - d'abord une petit introduction de Léa : http://lea-linux.org/dev/perl.html(...)
    - la doc officielle : http://www.enstimac.fr/Perl/DocFr.html(...)
    - n'hésite pas à visiter le site du CPAN : http://www.cpan.org/.(...) Tu y trouveras notament des scripts : http://www.cpan.org/scripts/index.html(...)

    Bon courage (tu vas en avoir besoin ...)
    • [^] # Re: Blague à part ...

      Posté par  (site web personnel) . Évalué à 3.

      En fait la doc fournie avec Perl est très complète et devrait suffire dans la plupart des cas.

      man perl
      perldoc -f fonction
      perldoc -q mots clés pour trouver une question de la FAQ
      etc...

      Evidemment si c'est pour apprendre à programmer, ça suffira pas mais alors c'est de la doc plus générale qu'il faut. Quant à savoir si Perl est un bon langage pour commencer, c'est une autre affaire.

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # pas le perl

    Posté par  (site web personnel) . Évalué à 3.

    pas perl pour commencer..
    pas de C non plus... c est pas forcement propre

    plutot des vieux langages comme pascal voir meme basic!
    tu commences par faire des trucs simples qui ont fait leur preuves, comme dire si un nombre et premier, trouver les N premiers nombres premiers...

    sinon, essaye tout de suite différents types de langages.. fonctionnels, impératifs, logiques... (scheme, ocaml, prolog...)
    ca t aidera..
    • [^] # Re: pas le perl

      Posté par  . Évalué à 3.

      on peut rajouter l'ada dans la liste ;)
    • [^] # Re: pas le perl

      Posté par  (site web personnel) . Évalué à 1.

      dire si un nombre est premier ... c pas simple de faire qq chose de performant. mais il y a des algos naif qui sont facile a coder.

      trouver N nombres premiers rentre dans la meme categorie avec ln(N)/ln(2) < 32

      le meilleur langage de programmation pour apprendre reste de ne pas en apprendre un tout de suite mais de faire de l'algorithmie haut niveau et bas niveau, et pour les plus courageux de faire des circuits logiques et les chronogrammes qui vont avec.

      ( qui a dit MMIX ? )
  • # Python

    Posté par  (site web personnel) . Évalué à 6.

    Python est un bon langage pour commencer. Je crois d'ailleur que chez O'Reilly il y a un bouquin qui s'appelle apprendre à programmer avec Python.

    Sinon tu peut essayer le PHP aussi.

    Par contre je trouve le PERL un peu tordu pour un néophyte.
    • [^] # Re: Python

      Posté par  . Évalué à 5.

      Je te conseille aussi fortement python.
      Respire un bon coup, tape-toi ça (http://lfe.developpez.com/tutoriel/python/(...)) et ne reviens pas sur linuxfr avant d'avoir fini... bonne lecture !
    • [^] # Re: Python

      Posté par  (site web personnel) . Évalué à 5.

      Le cours "Apprendre à programmer avec Python" me semble aussi tout indiqué :
      http://www.oreilly.fr/catalogue/2841772942.html(...)

      Il est aussi dispo en ligne gratuitement et librement (fichier openoffice ou pdf sous license GFDL) mais la version papier et reliée de chez O'Reilly me semble un bon investissement.

      Une fois les concepts de bases de la programmation impérative (et éventuellement orientée objet) assimilés, jetter un coup d'oeil du côté des languages fonctionnels comme OCaml est bonne idée (http://caml.inria.fr(...) ).
      Prolog (langage logique et déclaratif) aussi mais moins utilisable pour faire des applications courantes.
    • [^] # Re: Python

      Posté par  . Évalué à 4.

      Ce bouquin est en ligne aussi : http://www.ulg.ac.be/cifen/inforef/swi/python.htm(...)

      Mais sinon, je ne pense pas que les bases mathématiques soient importantes. Je suis une bille en maths (je n'exagère pas) mais je fais de tout en programmation, sauf les trucs genre réseaux de neurones mais bon...
  • # Oublie ça

    Posté par  . Évalué à -9.

    C'est devenu une complexité énorme programmer aujourd'hui

    Tes mathématiques ne sont pas suffisantes

    -la connaissance des ces concepts/technologies est nécessaire :

    -UML, Processus unifié de développement,
    -Les patrons de conception
    -Les patrons GRASP
    -langages Pascal,C/C++, SQL, Java, Python, Cobol,
    -L'orienté-objet
    -Linux et les langages de script
    et en option :
    -bus PCI, architecture du PC
    -ATL, COM/DCOM, ActiveX, Win32 (spécifique à windows)
    -statistique appliquée, comptabilité, gestion, bases de -données (pour l'info de gestion)
    -électricité et magnétisme, traitement des signaux
    -programmation en réseaux (sockets), N.B. : maîtrise et -connaissance des environnements LAN et WAN nécessaire.
    • [^] # Re: Oublie ça

      Posté par  (site web personnel) . Évalué à 2.

      euh... tu maitrises vraiment tout ça?
      UML, c'est certes trés utile mais je ne suis pas convaincu que ce soit indispensable pour les bases de la programmation. Un Hello World n'en a pas besoin.
      Les langages, il en existe énormément et je suis persuadé qu'il n'existe personne les connaissant tous.
      L'orienté objet? Le C s'en est passé pendant presque 20 ans. C'est certes pratique mais pas forcément indispensable.
      Pour le reste, pareil...

      S'il veut débuter en programmation, ses bases en math seront utiles, et la motivation une aide précieuse. S'il veut aller plus loin, il aura effectivement besoin de connaitre un peu tout ça (et encore...)

      Sinon j'ai commencé à programmer en C* mais je ne suis pas certains que ce soit le mieux pour débuter. Peut-être Perl (voire PHP?) mais je n'ai pas vraiment d'avis sur la question. Essaie de trouver galement un livre sur les bases de l'algo, ça peut être utile je pense.

      * les bases, j'était en DUT GEII (électronique) et connaitre un peu de C peut être utile, mais il s'agissait plus des bases au cas où. Depuis j'ai fait un DUT info en 1 an et là on m'a tout de suite mis du C++.
  • # Python

    Posté par  . Évalué à 2.

    Je te conseille le python
    C'est très facile !
    http://www.p3b.org(...) : python bleu, blanc belge fournit de bons didacticiels...
    • [^] # Re: Python

      Posté par  . Évalué à 2.

      Comme pas mal d'autres : je te conseillerais de te mettre a Python. Et puis a Ruby en meme temps, comme ca tu auras des elements de compararaison sur les contraintes d'implantation . Ces deux langages sont assez proches, tres simples, tres elegants, tres securisants, bien documentes, bien maintenus et permettent de fournir un code assez efficace, tres propres et optimisable ensuite. Nickel pour debuter.

      Et en plus, comme Python est un langage interprete, peut etre un langage compile histoire de voir a quoi ca ressemble. Ada est tres securisant pour un debutant.

      En plus, ca sert toujours de regarder un peu ce que tu peux faire avec le shell (c'est jamais perdu).

      Quand tu auras fait tes premiers pas, c'est toujours interessant d'ouvrir son horizon et a ce moment la, va voir du cote du C, C++, Java, Perl. Mais en attendant, pour debuter Python/Ruby/Ada/Shell ca me semble etre super pour apprendre.

      NB : apprendre a programmer, ce n'est pas que pianoter du code. A ta place j'en profiterai pour m'intesser aussi aux outils suivants, souvent negliges au debut, mais tres importants des que le code commence a prendre de l'ampleur :
      - gestion concurrente de code (pour les gros projets) : cvs/subversion...
      - gestion des bugs : bugzilla (etc/etc)
      - make/automake pour la synchronisation des builds
      - debugger code/memoire

      etc etc la liste est longue
      • [^] # Re: Python

        Posté par  . Évalué à 1.

        J'oubliais : pour Python l'environnement de développement par excellence, c'est pour moi Eric. Eric permet en plus d'utiliser facilement PyQt, le binding pour Qt en Python. Le débuggage avec Eric se fait très simplement en plus...
    • [^] # Apprendre à programmer avec Python

      Posté par  (site web personnel) . Évalué à -2.

      Un bon livre, disponible chez O'Reilly mais également sous "GNU Free Documentation License" sur le site de l'auteur. Ce court a été conçu à l'origine pour les élèves de l'enseignement secondaire belge.

      http://www.ulg.ac.be/cifen/inforef/swi/python.htm(...)
      http://www.oreilly.fr/catalogue/2841772942.html(...)
  • # En espérant t'aider

    Posté par  . Évalué à 0.

    Salut,

    Je pense que la première question à se poser est tout d'abord programmer pour quoi faire, après le langage en découlera (plutot une liste de langage qui peux correspondre).

    Après si c'est juste pour apprendre a programmer, je pense que le plus intéréssant (et le plus motivant) est de se lancer dans un petit projet (un utilitaire quelconque, un petit jeux genre casse-brique, etc...) et de le construire.

    Sur les bases de la programmation, il existe pas mal de livres, et de sites qui sont intéréssant: tu as par exemple http://www.programmationworld.com/(...) qui offfre (il me semble) un panel assez intéréssant.

    Tu as des cours en Pascal et C qui me semble bon (et rigoureux) la: http://www-ipst.u-strasbg.fr/pat/program/(...)

    En espérant t'avoir aidé: perso j'ai appris un peu tout seul (le C), a la crade, et c'est dans les quelques options d'info que j'ai pris a la fac (du CAML et du Pascal) que j'ai compris l'importance de programmer proprement, et la beauté de la programmation (on avais "fait" en 2e année de DEUG MIAS un compilateur LOGO en CAML). Mais bon j'ai arreté la programmation (j'fais plus que des maths).


    PS: comme compilo Pascal t'as par exemple FreePascal: http://www.freepascal.org/(...)
  • # merci

    Posté par  . Évalué à 2.

    Merci à tous pour ces conseils, j'ai commencé par aller sur developpez.com, ccm pour lire les tutoriels de base sur UML, alog and co.
    J'ai fais un tour chez eyrolle commander apprendre à programmer en python + debuter en PERL.
    Je vais m'y mettre en douceur, merci de vos conseils, je pense me mettre au python pour voir puis jeter un oeil au C ou C++.
    Je retourne mettre le nez dans la doc a+ et merci.
  • # Le Fortran

    Posté par  . Évalué à 0.

    Ça déchire, le fortran. C'est l'idéal pour débuter.
    • [^] # Re: Le Fortran

      Posté par  . Évalué à 1.

      mouarf, alors le fortran c'est certainement très bien pour débuter, mais alors personnellement j'ais été élevé au C/C++ et je peux dire que .... j'ais du mal avec le fortran :) Faut dire aussi que c'est du fortran 77 et que c'est sous HP1000.
      Tiens au fait, quelqu'un a déjà bosser sous HP1000? Je technicien HP nous dit que nous sommes les seul en france à encore utiliser ces bécanes (heureusement au fil des rénovation on passe sous linux).
  • # Tout dépend de tes objectifs...

    Posté par  . Évalué à 0.

    Si tu veux devenir un développeur professionnel, je te conseille de débuter avec l'assembleur, puis le C, et ensuite, tout dépend de tes gouts. Sinon, je te conseille plutot le PHP. Tu pourras débuter de manière simple et apprendre des concepts plus compliqués à ton rythme (programmation objet, etc...)
  • # PYTHON !

    Posté par  (site web personnel) . Évalué à 3.

    le python est un langage très simple ... sa syntaxe se rapproche du basic ...

    les bases : http://www.idealx.org/doc/instant_fr.fr.html(...)

    et son interpréteur te permettra de tester en live tes lignes de codes

    et quand tu maitriseras le python, tu te rendras compte que ça ne sert à rien d'apprendre des langages plus complexes comme le java, le c ou le caml ...
    car avec python, tu peux TOUT faire, simplement et bien ... (prog, jeux 2d/3d, web, reseau, ...) ... grace à l'immensité des bibliotheques existentes :

    http://www.python-eggs.org/links.html(...)
    http://www.cbel.com/python_programming_language/(...)
    http://www.cetus-links.org/oo_python.html(...)
    http://www.codebox.8m.com/phython.htm(...)
  • # Java

    Posté par  . Évalué à 5.

    Java c'est beau.
    Ca se lit comme de l'anglais.
    Tout le contraire des langages interpretés si prisés ici.
    Les classes de base couvrent un grand nombre de besoins y compris un framework pour faire des interfaces graphiques. C'est multiplateforme ( les autres aussi, mais je connais plus de windowziens avec java installé que wxpython ou perl ).
    Et une fois que tu connais un peu java, tu peux jeter un coup d'oeil au C++, puis au C.
    Apres un coup de shell et de php et tu seras mur pour attaquer les trucs moches à base d'expressions régulières et de syntaxe imbitable.
    Et une fois que tu en sera là, tu pourra acheter un t-shirt "|'m @ haxor" chez thinkgeek.
    • [^] # Re: Java

      Posté par  . Évalué à 1.


      Java c'est beau.
      Ca se lit comme de l'anglais.
      Tout le contraire des langages interpretés si prisés ici.


      Pourquoi te lancer dans des affirmations gratuites comme celle-ci ? Pour te ridiculiser ? Pour faire le kador parce que tu as bien appris des cours de java à l'école ?

      Java est très verbeux et c'est loin de se lire comme de l'anglais, à part pour écrire un "Hello, world".

      Voilà une série de comparaisons des syntaxes de java et de python pour des cas concrets, de tous les jours:

      http://www.pycs.net/users/0000323/weblog/2004/04/23.html(...)
      http://www.pycs.net/users/0000323/weblog/2004/04/29.html(...)
      http://www.pycs.net/users/0000323/weblog/2004/05/28.html(...)

      En termes de lisibilité, y'a pas photo, il me semble. Ce qui n'enlève rien aux qualités intrinsèques de java.

      Apres un coup de shell et de php et tu seras mur pour attaquer les trucs moches à base d'expressions régulières et de syntaxe imbitable.

      Pfff... c'est vrai, tu as raison, les expressions rationnelles ça sert vraiment à rien...

      Quelle misère, c'est ça la prochaine génération de développeurs ?!?
  • # tu commences par une semaine de LOGO

    Posté par  . Évalué à 1.

    bin tu commences par une semaine de logo et tu comprendras bien le principe de la programmation et tu pourras passer à python avec joie...

    avec le logo, tu peux faire des choses récursives et dessiner des flocons de Von Koch, par exemple

    http://www.cs.berkeley.edu/~bh/logo.html(...)
  • # php

    Posté par  . Évalué à 0.

    - php est bien plus simple que Perl
    - la syntaxe php est plutot limpide, peux d'astuces du langage
    - pas d'allocation, pas de pointeur, pas de coredump (plantage)
    - tu peux commencer par des petits scripts qui te permettront de realiser des petits site Web
    - et pour finir les concepts objets sont intéressant tu pourras meme utiliser des framework tres intéressants,
    - php s'interface avec tout, base de données mais aussi les interfaces via GTK,
    - je l'ai proposé a mon fils qui rentre en seconde, il n'a pas encore bcp accroché mais bon ...

    et pour finit n'oublie pas dans tous tes scripts (bientot programmes) :
    error_reporting(E_ALL) ; c'est un gage de qualité indispensable et qui atténue le "laxisme" du langage.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.