IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Apprendre Java avant C++ ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 79
    Par défaut Apprendre Java avant C++ ?
    Bonjour,
    je débute en programmation. Mon but a terme est de connaître C++ et Java. Et en lisant différents forums certains conseillaient d'apprendre le C++ avant d'apprendre Java et d'autres le contraire.
    J'ai d'abord essaye d'apprendre le C++ mais il n'y a pas de très bon livre en francais pour débutants.

    Je voudrais donc avoir votre avis sur ce sujet.

    Merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Par défaut
    Bonjour

    Je pense qu'avant de faire de l'objet il serait bon de faire du procedural ^^ enfin a la limite tout depend de ce que tu souhaite faire par la suite avec ces languages.

  3. #3
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut,

    Citation Envoyé par spawntux
    Je pense qu'avant de faire de l'objet il serait bon de faire du procedural ^^ enfin a la limite tout depend de ce que tu souhaite faire par la suite avec ces languages.
    Là n'est pas la question, on voit tous les jours des débutants montrer de jolies programmations en procédural avec du C++ ou du Java!!! Ce n'est pas parce que le langage est estampillé "POO" qu'on ne peut pas tout mettre en vrac dans une seule et unique méthode... (ou dans plusieurs, mais sans faire de l'objet)

    Personnellement, je ferais ça dans le sens Java puis C++. Au moins pour éviter de se plonger dans la gestion mémoire et toute la gestion des pointeurs et compagnie, qui peut être un point assez ardu si tu débutes...
    Cependant, je ne dis pas que tu seras un dieu en C++ dès le départ si tu maitrises Java! Les deux langages ont leurs spécificités que n'a pas l'autre, mais tu auras déjà assimilé les particularités de la programmation orienté objet (ou au moins une bonne partie).

    En tous cas, je rejoins spawntux (mais je le dirais autrement), si tu es un vrai débutant en prog, commence peut-être par un langage un peu plus simple, au moins pour avoir les bases en algo et savoir organiser un programme pour qu'il fasse ce que tu souhaites. Parce que commencer direct par du c++ ou du java, c'est un peu passer du vélo à la ferrari (sans passer le permis!)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Par défaut
    Desolé me suis mal exprimé ^^ Par compte personnelement je serait plus du coté C++ puis JAVA enfin peu etre aussi je dit cela car j'ai commencé par apprendre le C ^^

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 291
    Par défaut
    Citation Envoyé par plegat
    Personnellement, je ferais ça dans le sens Java puis C++. Au moins pour éviter de se plonger dans la gestion mémoire et toute la gestion des pointeurs et compagnie, qui peut être un point assez ardu si tu débutes...
    Ah la la. Faut arréter de véhiculer ces clichés du temps du C avec classes.
    Même nous en production on évite au maximun d'avoir à manipuler la mémoire explicitement. Le RAII est notre ami (méconnu) pour gérer implicitement et de façon déterministe la mémoire. Et en plus, ça marche pour toutes les ressources, BD comme pots de peintures.
    Et si nous sommes beaucoup à conseiller de voir le C++ avant le C, c'est justement parce qu'un débutant, en C++, n'a pas besoin de s'encombrer avec ces considérations dès le 2e chapitre.


    Quant à l'héritage multiple, encore un truc mécompris. AMHA, Il ne faut pas se jeter dedans tant que l'on n'a pas saisi la différence entre la subtituabilité (google -> LSP) et l'héritage de réutilisation (exécrable argument "commercial" (buzz-word compliant quoi) des années 80/90 en faveur de la POO). A ce sujet, j'ai beaucoup aimé l'approche de ruby que je trouve sémantiquement beaucoup plus claire.

    En fait, l'énorme problème du C++, c'est que sa syntaxe permet de faire bien des choses qui n'ont strictement aucun sens. Du coup, quand on commence à faire des choses sémantiquement incorrectes, on produit vite du n'importe-quoi, cela participe à la compléxité du langage, et entâche clairement sa réputation -- vu que ceux qui l'enseignent ne savent pas toujours comment il faudrait l'utiliser. Le passage C->C++ (de ceux qui encadrent des apprentissages) n'a pas que du bon. Loin de là.

    En ce sens, voir Java avant a du bon. Vu qu'il limite ce que l'on peut faire, on est moins tentés d'utiliser à tords et à travers des choses comme p.ex. l'héritage. Arrivés en C++, étendre la notion d'interface pour définir des contrats devient alors une chose naturelle où l'héritage multiple est parfaitement à sa place.



    Pas vraiment d'opinion pour ce qui est de voir l'un avant l'autre. Perso, j'aurais tendance à partir sur des langages moins "commerciaux" histoire de prendre un peu de recul dès le début. AMA, algorithmie et abstraction sont les choses les plus importantes à assimiler au départ.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 109
    Par défaut
    J'ai suivit un ordre un peu different.

    En premier j'ai appris le C pour composants, avec des microcontroleur PIC.
    Bref c'était du C brut, pour dire vrai j'étais régulierement limité par l'espace de stockage du code, la vitesse de traitement (tres faible), l'espace des registres.
    Je crois pouvoir dire que c'était encore plus extreme que le C ou C++ pour ordinateur. (imaginé vos programmes sur un 16mhz, quelques octets de memoire et une dixaine de kiloOctets de stockage)

    J'ai voulu naturellement continuer sur le C++, mais je trouve que c'est inutile. Pourquoi s'embeter avec la gestion des pointeurs,de la memoire...etc... quand le java le fait?

    Les pcs sont bien assez puissants. Le java a repondu a mon attente, plus simple que le C++, plus "propre", mieux "structuré" (c'est discutable). Mais surtout on gagne enormement de temps et on se soulage l'esprit de la memoire pc ...etc...

    en pratique je n'ai jamais eu besoin d'execution qui necessite une ultra-rapidité, donc C++, pas pour moi.

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 291
    Par défaut
    Citation Envoyé par eclesia
    J'ai voulu naturellement continuer sur le C++, mais je trouve que c'est inutile. Pourquoi s'embeter avec la gestion des pointeurs,de la memoire...etc... quand le java le fait?
    Oui, excellente question. Pourquoi s'embêter à gérer précisément la mémoire en C++, quand le C++ (je ne parle pas de Java) permet de ne pas se préoccuper de libérer explicitement mémoire comme pôts de peinture ?
    (OK, j'avoue, il faut sortir boost/loki/ACE/... ou attendre le C++09)

    Ce n'est pas parce que l'on peut s'embéter à faire des trucs compliqués en C++ qu'il faut nécessairement le faire.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 63
    Par défaut
    Bonjour,

    A mon avis, c'est un faux débat. Ce qui est important c'est de bien comprendre la POO (Programmation Orientée Objet) et de construire une architecture solide pour les programmes. Après ce n'est qu'une syntaxe à apprendre et celles du C++ et de Java sont très proches, même s'ils ont leurs spécificités.

  9. #9
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Si tu commences par Java, tu seras démotivé pour faire du C++ car Java répondra à toutes tes attentes ^^

  10. #10
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par ®om
    Si tu commences par Java, tu seras démotivé pour faire du C++ car Java répondra à toutes tes attentes ^^
    +1 car dans l'ordre ( sommaire ) des langages c'est :
    assembleur -> C --> C++ --> java
    Commencer par java, pourquoi pas, c'est vrai que c'est plus simple, pas besoin de gérer la mémoire ( en dirait du BASIC à première vue ), mais lorsque l'on commence à maitriser, il y a un grand nombre d'incompréhensions vis à vis du langage ( notament les référence mémoire ) qui pourraient être évitées en commençant par le début, c'est à dire C/C++ ( pas besoin par contre d'aller jusqu'à l'assembleur, quoique pour les opérations binaires... ).
    Donc pour moi : C et C++ avant java, c'est loin d'être obligatoire, mais cela évite beaucoup de questions par la suite.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par défaut
    Moi je connais pas mal les deux, et je dirais que C++ est quand même beaucoup plus dur que Java. Noramment en C++ on trouve:

    -Surcharge des opérateurs
    -Héritage multiple
    -Fenêtres windows où on gère toutes les boucles infinies "à la main"

    Mais aussi et surtout gestion de la mémoire (segmentation fault) et débugging (exception généralisées en Java, ce qui simplifie pas mal de choses pour débugger).

    Donc si tu cherches la simplicité, c'est Java. Si par contre tu as un impératif (temps de calcul extrêmement rapide, exécutables natifs par ex.) alors C++ peut se justifier, mais c'est vraiment un language hardcore. Aussi il existe de bien meilleurs outils gratuits pour Java (Eclpise) que pour C++ (Dev C++).

    A+

Discussions similaires

  1. Apprendre Java J2EE
    Par Oraman dans le forum Langage
    Réponses: 8
    Dernier message: 07/07/2011, 09h05
  2. Combien de temps pour apprendre Java ?
    Par Amine_sas dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 15/10/2008, 19h12
  3. [Débutant] Conseils pour apprendre Java
    Par emary dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2006, 23h31
  4. [Info]Quel livre me conseillez-vous pour apprendre Java?
    Par Sébastien L dans le forum Langage
    Réponses: 25
    Dernier message: 09/02/2006, 21h54
  5. Apprendre JAVA
    Par JAVAPYTHON dans le forum Langage
    Réponses: 5
    Dernier message: 05/02/2006, 23h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo