[PROGRAMMATION] Quelques conseils pour un débutant (moi)

Répondre
Partager Rechercher
Citation :
Provient du message de Bio
Selon moi aucun langage ne permet l'apprentissage et la compréhension de la méthodologie objet.

Non c'est clair mais à mes yeux les concepts objets sont plus faciles à discerner en Java où ils ne sont pas pollués par des acrobatie de programmation comme l'héritage multiple ou la surcharge d'opérateurs (on devrait pendre le mec qui a pensé à ça )


Bon maintenant si le monsieur il veut faire du C++ pourquoi pas; c'est un langage avec pas mal d'avantages aussi.
Et il peut être pas mal de voir le C d'abord, juste histoire de s'habituer un peu


Pour l'algorithmique j'ai un peu peur qu'on puisse pas vraiment apprendre ça seul m'enfin c'est ptet moi qui suis pas doué aussi.

lol s'il s'y retrouve encore après se thread


-------------
Nepher
A propos du fait de passer directement au C ou pas, j'ai une réponse à cette question, tirée d'un bouquin sur le C++, qui est assez intéressante (et en désaccord avec la majorité des avis cités plus hauts) :

Citation :
Est il nécessaire d'apprendre d'abord le langage C ?

Nombreux parmi vous sont ceux qui se posent cette question, puisque le C++ est un sous-ensemble du langage C. La réponse de son créateur et de la plupart des programmeurs C++ est la suivante : il est inutile d'apprendre le langage C, voire préférable de commencer directement par le C++.

La programmation C est basée sur les concepts de programmation structurée ; C++ sur ceux de la programmation orientée objet. Il est inutile d'étudier d'abord le langage C puisque vous devrez alors vous défaire des habitudes néfastes du langage C. Ce livre ne s'adresse pas obligatoirement à un public ayant une expérience préalable de la programmation.

Si vous êtes programmeur C, vous pouvez vous contenter de survoler les permiers chapitres du livre. Le développement orienté objet n'est réellement abordé qu'à partir du chapitre 6.
La réponse a le mérite d'être claire. En ce qui concerne le fait que le C++ introduit la programmation orientée objet, chose délicate pour un débutant, il est clairement expliqué que l'on peut très bien apprendre les "bases", ce qui correspond en fait à ce à quoi se limite le C, sans avoir forcément besoin de faire du C pour ça. Ce n'est pas parce que le C++ apporte la programmation orientée objet que l'on est forcément obligé de commencer cash par ça quand on apprend ce langage.

En ce qui concerne le choix du compilateur, j'ai une préférence pour visual C++, non pas pour le compilateur en lui-même qui n'est pas mieux qu'un autre, mais pour la montagne de doc qu'apporte le Microsoft Developper Network (MSDN).
Le monsieur dit qu'il a toucher un brin de pascal, je pense donc qu'il à un minimum de bases concernant l'algo simple, qu'importe la méthode.

Euh toucher au GC de java c'est un gros bidouillage bien sale ca, java, dieu merci gère 'correctement' la destruction des objets. Chaque language à ses règles, java c'est comme le feu, il est ton ami à condition que tu le prenne pas trop pour ton pote.

L'apprentissage du C lui donnera avant tout l'habitude de lire du code avec toute ce que ca implique.

Un var = z >= q ? x : y n'est pas forcement évident pour tout le monde et il est très possible qu'un livre de C++ omette l'explication de ce genre de base syntaxique qu'il retrouvera dans bon nombre de language si il désire en étudier par la suite.

Java est certes un "light" du C++, cependant je persiste à penser qu'il est necessaire de connaitre C/C++ avant de l'aborder.
D'un autre coté dans un livre de C++ ils vont pas dire :

"Vous pouvez ranger ce livre et allez acheter un bouquin sur le C"

Ceci dit je suis tout à fait d'accord que ce n'est pas nécessaire.
Ca me paraît juste judicieux


---------------
Nepher
Citation :
Provient du message de Khelben
A propos du fait de passer directement au C ou pas, j'ai une réponse à cette question, tirée d'un bouquin sur le C++, qui est assez intéressante (et en désaccord avec la majorité des avis cités plus hauts) :
Du fait que le livre soit pour le C++, je pense qu'on peut qualifier sa réponse de partiale

Pour ma part, j'ai conseillé le C avant le C++ (que je considère comme un très mauvais langage) parce que ce n'est pas avec le C++ que tu vas apprendre comment fonctionne le programme. Et ce fonctionnement, tu en auras bien besoin le jour où tu as un écrasement mémoire (au hasard).

De plus, comme l'a dit Moushi, avant d'apprendre le modèle objet, il me semble préférable de faire un peu d'algorithmie avant (et c'est pas parce qu'on a bidouillé 3 lignes de Pascal qu'on connait l'algorithmie. Y'a une grosse différence entre pisser du code à la va comme je te pousse et structurer sa pensée pour optimiser son programme : on a un programme dans les deux cas, mais l'efficacité et la rapidité ne sont pas franchement comparables). Franchement, je déconseille le C++ en premier langage (bien plus que Java, d'ailleurs).
Citation :
Provient du message de Nepher
D'un autre coté dans un livre de C++ ils vont pas dire :

"Vous pouvez ranger ce livre et allez acheter un bouquin sur le C"
Non mais ils vont plutot dire "Avant tout nous considerons que vous avez les bases du C expliquees dans notre precedent ouvrage (meme editeur)".
Citation :
Provient du message de Kathandro
Oulà non, sûrement pas...
Oui c'est une typo. J'aurais dû écrire delete et non pas free.

Citation :
Provient du message de Nepher
Tiens c'est marrant c'est exactement ce que moi j'appelle du bricolage et pas de la programmation propre
Non car si on te change le garbage collector tu jettes ton programme ?

Provient du message de Bio
La va vraiment falloir que tu m'expliques ce que tu veux dire par des exemples voir même un bout de code parce que se soustraire au fonctionnement du Garbage Collector CA c'est du bricolage comme le dit Nepher.
Et pour une programmation propre t'as toujours des jolis outils genre OptimizeIt

Provient du message de Haze/Orcanie
Euh toucher au GC de java c'est un gros bidouillage bien sale ca, java, dieu merci gère 'correctement' la destruction des objets. Chaque language à ses règles, java c'est comme le feu, il est ton ami à condition que tu le prenne pas trop pour ton pote.
Mon but n'était de lancer un débat, simplement de dire qu'en Java il convient de tenir compte de la gestion de la mémoire lorsque l'on programme. C'est une croyance qui a la vie dure de penser que Java peut se passer de cela.

Oui, Java prend à sa charge l'allocation et la désallocation de l'espace mémoire. Tu crées tes objets et quand ils ne sont plus nécessaire à l'application, Java se charge de désallouer l'espace mémoire par le mécanisme de garbage collection. D'où la conclusion hâtive de dire "En Java, on n'a plus besoin de se soucier de la gestion de la mémoire".

Or un garbage collector - peu importe lequel - a un rôle précis. Son job consiste à trouver les objets qui ne sont plus requis par l'application et à libérer l'espace qu'ils occupent. Donc oui un programme Java ne demande plus de la part du programmeur de gérer lui-même la nettoyage de la mémoire MAIS çà ne résout pas les problèmes pour autant, il est à la _charge du programmeur_ de rendre les objets non requis éligibles par le garbage collector.

Pour un exemple, tu possèdes une classe qui crée une interface utilisateur. Cette interface est fermée par l'utilisateur donc plus nécessaire. Elle restera malgré tout en mémoire si tu ne fais rien explicitement pour la rendre éligible par ton garbage collector. Il ne s'agit pas de créer une instance du garbage collector, ni même de faire un appel dessus. Il s'agît de mettre la mémoire de ton mémoire dans un état tel que le garbage collector pourra la nettoyer efficacement. Cela consiste à supprimer les références vers cet objet ou vers l'îlot d'objets concernés. C'est une partie du code que Java n'écrit pas pour toi et qui est nécessaire.

@Sepuko,
Commencer par C++ puis Java, c'est ce que j'ai fait, la programmation objet n'est pas si difficile qu'il y parait. C'est déconcertant au début, et les pointeurs demandent un effort de concentration. L'avantage du C++ (d'un point de vue de l'apprentissage) c'est que tu restes près de ce qui se passe dans ta machine qu'en Java. Le désavantage c'est que justement tu dois gérer plus de choses qu'en Java.
Répondre

Connectés sur ce fil

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