JeuxOnLineForumsPlusConnectés : 781 (sites) | 1291 (forums)Créer un compte
Forums divers
La Taverne
Les forums JOL > Forums divers > La Taverne > [PROGRAMMATION] Quelques conseils pour un débutant (moi) RSS
   
Répondre
Partager Outils Rechercher
Dueve
Reine
 
Citation:
Provient du message de Eowin
autrement je te conseille vivement le Java ( java.sun.com ), qui est bien plus simple que le C++... car il faut pas gerer la destruction des objets entre autre
Juste une remarque, ceci est faux ! Il faut absolument gérer la destruction des objets en Java. La façon de le faire est différente. Ok il n'y a plus aucun destructeur et c'est malheureusement pour cette raison que beaucoup s'imaginent pouvoir se passer de gérer la durée de vie de leurs objets...
Lien direct vers le message - Vieux
Avatar de Eowin Da Evil
Eowin Da Evil
Alpha & Oméga
 
Avatar de Eowin Da Evil
 
Citation:
Provient du message de Erewyr
Juste une remarque, ceci est faux ! Il faut absolument gérer la destruction des objets en Java. La façon de le faire est différente. Ok il n'y a plus aucun destructeur et c'est malheureusement pour cette raison que beaucoup s'imaginent pouvoir se passer de gérer la durée de vie de leurs objets...
je suis desole, mais à partir du moment ou y a pas de destructeur et t'as pas à faire delete ou free sur ton objet et ce, sans qu'il y ai fuite de memoire, on peut considerer que la destruction des objets n'est pas à ta charge.... mais c sur que lorsque tu programme, il faut savoir si tas toujours un objet sur ta reference ou pas ... =)

autrement, je te conseil le langage Brainfuck :
http://www.muppetlabs.com/~breadbox/bf/ ( bon courage =) )
Lien direct vers le message - Vieux
Avatar de Cocyte
Cocyte
Alpha & Oméga
 
Avatar de Cocyte
 
Citation:
Provient du message de Eowin
autrement, je te conseil le langage Brainfuck :
http://www.muppetlabs.com/~breadbox/bf/ ( bon courage =) )
Vaut mieux programmer directement en langage machine
Lien direct vers le message - Vieux
Avatar de Haze/Orcanie
Haze/Orcanie [CP]
Bagnard
 
Avatar de Haze/Orcanie
 
Je ne pense pas qu'une personne qui n'est pas parfaitement initié à ce que peut être un objet puisse passer aisément au java, de plus ça créerais des lacunes de connaissances en ce qui concerne les pointer (NullPointerException ), le GC, le principe d'une liste chainée codé à la main, les design pattern de base, en bref tout ça est en général expliquer dans les bouquin de C++ Tout ça est prémaché en java, mais implique tout de même qu'on sache le faire.

Tout est question d'étape, le C++ est un des languages le plus compliqué, inutile pour une personne qui code exclusivement en pasçal de s'y jeter pour le moment.

Pour répondre de mon coté à la question :

Les meilleurs référence et outil d'apprentissage sont généralement, et malheureusement en anglais, oubli les livres qui te promette d'apprendre un language en 10 jours, en général ça implique que tu ai de solides bases. Je pourrais te recommander "Le language C" de Kernighan, c'est bonne base en mon sens, un peu légère diront certain, mais il a l'avantage d'etre en français ; développement sous UNIX seulement.

Si tu tiens a t'attaquer au C++ directement, tu peux essayer "C++ The Core Language" aux édition O'Reilly, et pour un apprentissage complet quand tu seras à l'aise avec tout ca, tu as l'excellent "Pour mieux développer avec C++" de Aurelien Geron (en français en plus) qui t'initie au design pattern, STL, smart pointers etc..
Lien direct vers le message - Vieux
Nirthael
Alpha & Oméga
 
Python !
Lien direct vers le message - Vieux
Dueve
Reine
 
Citation:
Provient du message de Eowin
je suis desole, mais à partir du moment ou y a pas de destructeur et t'as pas à faire delete ou free sur ton objet et ce, sans qu'il y ai fuite de memoire, on peut considerer que la destruction des objets n'est pas à ta charge.... mais c sur que lorsque tu programme, il faut savoir si tas toujours un objet sur ta reference ou pas ... =)
En C++, une méthode violente consiste à libérer la mémoire soi-même par un free. En Java tu n'as pas cette option, cependant çà ne veut pas dire que la machine virtuelle fait tout pour toi.
Si tu programmes sans tant soucier, tu introduis des fuites de mémoire comme tu dis. ("memory leaks"). Le garbage collector de la JVM a un comportement qui lui est propre et il convient d'en tenir compte pour une programmation propre.

Sur des petits programmes que çà soit en C++ ou en Java, tu peux ignorer cette gestion de la mémoire. Dès que tu commences à faire des choses plus sérieuses, cette gestion doit ou devrait devenir un souci majeur.
Lien direct vers le message - Vieux
Nepher
Roi
 
Citation:
Provient du message de Erewyr
Le garbage collector de la JVM a un comportement qui lui est propre et il convient d'en tenir compte pour une programmation propre.

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 ?

M'enfin je ne dois pas bien voir ce que tu dis devoir prendre en compte c'est sûrement pour ça.


Pour revenir dans le sujet, le passage procédurale -> objet est pas facile mais le langage le plus facile pour ça c'est java je pense.
Pas forcément le mieux à long terme car tu vas manquer des notions mais bon ...



------------
Nepher
Lien direct vers le message - Vieux
Avatar de Kathandro
Kathandro
Bagnard
 
Avatar de Kathandro
 
Citation:
Provient du message de Erewyr
En C++, une méthode violente consiste à libérer la mémoire soi-même par un free.
Oulà non, sûrement pas...
Le free va toujours avec le malloc et ils sont spécifique au C (ce ne sont pas d'ailleurs des mots clefs du langage, ce sont des fonctions)...
Pour le C++ il vaut mieux utiliser le new et delete, c'est beaucoup plus efficace et ils sont propres au langage C++...

On a pas demandé une guerre Java-C++ autrement, non, mais bon, il veut faire du C++...

L'intérêt en premier lieu serait de voir le C en premier, puis d'apprendre le principe de la programmation objet (ça permet d'utiliser pas mal de choses efficacement (héritage, polymorphisme, encapsulation...)), pour ensuite passer au C++. Si la syntaxe est très proche, la façon de programmer est totalement différente, et il y a beaucoup de chose que le C++ restreint (notamment pour des problèmes de sécurité des données)...

Maintenant, je pense que Haze/Orcanie t'as donné des bons livres à étudier.
Lien direct vers le message - Vieux
Avatar de Bio
Bio [AJ]
Empereur / Impératrice
 
Avatar de Bio
 
Citation:
Provient du message de Nepher
Pour revenir dans le sujet, le passage procédurale -> objet est pas facile mais le langage le plus facile pour ça c'est java je pense.
Pas forcément le mieux à long terme car tu vas manquer des notions mais bon ...
Selon moi aucun langage ne permet l'apprentissage et la compréhension de la méthodologie objet.

Savoir coder en Java, en C++, en Smalltalk et j'en passe c'est bien beau mais ce n'est pas ça qui nous fait comprendre ce que sont l'encapsulation, l'héritage, le polymorphisme.

Savoir qu'écrire un bout de truc genre

Code:
public class MyClass
{
  private String _maString = "hello world";

  public MyClass()
  {
  }

  public String getMaString()
  {
     return _maString;
  }

  public static void main(String[] args)
  {
     MyClass maClasse = new MyClass();
     System.out.println(maClasse.getMaString());
  }
}
Ca revient à instancier un objet de type MaClasse c'est pas si pertinent que ça pour quelqu'un qui n'a jamis vu la prog objet.


Citation:
Provient du message de Erewyr
En C++, une méthode violente consiste à libérer la mémoire soi-même par un free. En Java tu n'as pas cette option, cependant çà ne veut pas dire que la machine virtuelle fait tout pour toi.
Si tu programmes sans tant soucier, tu introduis des fuites de mémoire comme tu dis. ("memory leaks"). Le garbage collector de la JVM a un comportement qui lui est propre et il convient d'en tenir compte pour une programmation propre.
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
Lien direct vers le message - Vieux
Avatar de Moushi
Moushi
Alpha & Oméga
 
Avatar de Moushi
 
Avant de te mettre à apprendre 1 langage, passe déjà par le principal, savoir faire un Algorithme.
Cela peut paraître con, mais savoir 'structurer' sa pensée sur 1 bout de papier est très important. (C'est une chose que l'on apprend quand on fait de l'info à la Fac).

Exemple, tu demande 2 chiffres, puis après tu fais la somme, la multiplication, puis la division de ces 2 nouveau nombres.

Ensuite quand tu as 1 algo bien, nickel. Tu peux t'amuser à le faire dans le langage que tu veux tant que celui ci reste simple (Perl, Pascal, C si tu te sens pres, ou PhP si tu veux commencer par le plus simple; perso le pascal ou C semble correct).

Pour le C par exemple, tu le fait d'abord en simple (avec des variables) puis après avec les pointeurs.

Amuse toi a faire plein d'algo, et a les transcrire pour bien apprendre et savoir retranscrire....

Ensuite , si tu as 1 pote à la fac, essaye de te faire apprendre le principe de la programmation object, quel est la différence entre le C et le C++... sinon achète un bouquin, car le plus important est de savoir le pourquoi avant de savoir le comment.

Une fois que tu as compris le principe, passe à la pratique, bouquine un livre sur le C++; puis algo ---> C++.

Mais sache une chose, tout ne viens pas par magie, tu feras beaucoup d'erreur et il faut apprendre le pourquoi, car c'est facile d'aligner des lignes de C ou C++, mais quand on fait des erreurs, ils faut en connaître la cause pour se perfectionner.
Lien direct vers le message - Vieux
Nepher
Roi
 
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
Lien direct vers le message - Vieux
Avatar de Khelben
Khelben [cy]
Alpha & Oméga
 
Avatar 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) :

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).
Lien direct vers le message - Vieux
Avatar de Haze/Orcanie
Haze/Orcanie [CP]
Bagnard
 
Avatar de Haze/Orcanie
 
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.
Lien direct vers le message - Vieux
Nepher
Roi
 
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
Lien direct vers le message - Vieux
Lwevin Myan
Alpha & Oméga
 
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).
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forums divers > La Taverne > [PROGRAMMATION] Quelques conseils pour un débutant (moi)
   

Connectés sur ce fil

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

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 19h03.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite