Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Début en C et C++

106 réponses
Avatar
HB
Bonjour,


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.

Donc faut il l'apprendre ?

Merci de vos réponses

10 réponses

1 2 3 4 5
Avatar
espie
In article <48b69d4c$0$20832$,
HB wrote:
Bonjour,


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.

Donc faut il l'apprendre ?



Apprendre le C pour apprendre le C++ n'est pas necessaire.

Par contre, je ne suis pas sur que ca soit contournable pour faire de
l'automatisme et de l'informatique industrielle.

Cote ref, je recommande toujours le `thinking in C++' de Bruce Eckel
(si tu lis l'anglais) pour un premier contact, comme en plus c'est dispo
sur le net gratuitement, ca evite de prendre des risques...
Avatar
Marc Boyer
On 2008-08-28, HB wrote:
Bonjour,

En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.



Très bien.

cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.



Dans quel langage ?

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.

Donc faut il l'apprendre ?



Apprendre le C est une connaissance utile.
Passer par le C pour apprendre le C++ est un détour inutile.

Pour apprendre le C++ directement:
"Accelerated C++" de Koening & Moo

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
Avatar
Jean-Marc Bourguet
"HB" writes:


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.



Si l'objectif est d'apprendre le C++, le passage par le C n'est pas
necessaire, vraisemblablement meme nuisible. Le C est en premiere
approximation un sous-ensemble du C++, mais il y a un certain nombre de
choses qui ne se font pas de la meme maniere et donc commencer par le C
c'est prendre pour ces choses des habitudes dont il faudra se detacher par
apres.

Si l'objectif est d'apprendre les 2, la question est simplement une
question d'ordre. Je pense que pour quelqu'un qui n'a pas d'experience de
la programmation, commencer par le C++ doit etre plus facile; mais ca va
dependre aussi de la personnalite et de l'apprenant et de l'enseignant ou
des auteurs des ouvrages utilises et dans le cadre d'une formation de
contraintes diverses telle que la coordination entre cours.

Dans ton cas, vouloir prendre de l'avance sur un programme (qui commence
dans un mois?), il y a deux approches:
- prendre le langage qui sera enseigne en premier
- prendre quelque chose de bien different. Ni C ni C++ si un des deux est
un langage, ni Java ni C# -- conceptuellement trop proches. Si tu peux un
nom, je suggererais Python qu'on peut apprendre facilement seul et a
beaucoup moins d'idiosyncratie que le C ou le C++, mais on peut facilement
trouver d'autres candidats. L'idee est de donner un autre point de vue sur
la programmation que celui qui te sera enseigne, et avoir une bonne idee
des differents points de vue possible sur la programmation aide a faire un
bon programmeur.

Donc faut il l'apprendre ?



Comme Marc, je pense que tu n'y couperas pas avec dans cette filiere la.
C'est plus une question d'ordre que d'autre chose.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
pjb
"HB" writes:

Bonjour,


En début d'année, je vais suivre une formation dans l'automatisme et
l'informatique Industriel.



Les compilateurs n'intègrent pas de correcteur orthographique (ce
serait dangereux, on a plusieurs cas de catastrophes historiques dues à
une simple différence d'un caractère dans un source, alors ce ne sont
pas les correcteurs orthographiques qui vont aider de ce côté).

Donc la première chose à apprendre, c'est à ne pas faire de faute
d'orthographe ou de grammaire.

Si c'était la formation qui était industrielle, ce serait :
"une formation dans l'automatisme et l'informatique industrielle".

Si c'était l'automatisme qui était industriel, ce serait :
"une formation dans l'automatisme industriel et l'informatique".

Si c'était l'informatique qui était industrielle, ce serait :
"une formation dans l'automatisme et l'informatique industrielle".

Si c'était l'automatisme et l'informatique qui étaient industriels, ce serait :
"une formation dans l'automatisme et l'informatique industriels".

Mais en aucun cas ça ne peut être:
"une formation dans l'automatisme et l'informatique Industriel".

Comme on dit chez nous: "Syntax Error" ;-)


cependant je ne connais rien en langage de programmation. je suis à la
recherche de site voir des livres, afin de prendre de l'avance.



Non, à la recherche de sites, virgule, voir de livres.

Question au passage, pour apprendre le C++ j'entend différente sons de



J'entends, tu entends, différents sons de cloche.


cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.



Certains disent. Auparavent. D'autres le conseillent, virgule, enfin
que celà...




Bon, il va falloir commencer à faire attention à ces petits détails,
si tu veux ne pas perdre trop de temps, et ne pas trop t'exaspérer
avec les compilateurs...



Donc faut il l'apprendre ?



Tu vas continuer à recevoir autant d'avis que d'interlocuteur.

De mon point de vue, et bien que l'on puisse considérer C et C++ comme
deux languages différents, je pense qu'il vaudrait mieux apprendre
d'abord C, puis C++.



D'un autre côté, ce ne sont pas les langages que je conseillerais à
des débutants en informatique, mais plutôt lisp (ou scheme), ou
python, ou forth.



(Pour dire que C ou C++ ne sont pas nécessaires à l'automatisme ou à
l'informatique industrielle, j'ai réalisé des programmes d'automatisme
(pilotant des périphériques via un port parallèle) en BASIC, dans une
vie antérieure).

--
__Pascal Bourguignon__
Avatar
Mickaël Wolff
Pascal J. Bourguignon a écrit :

D'un autre côté, ce ne sont pas les langages que je conseillerais à
des débutants en informatique, mais plutôt lisp (ou scheme), ou
python, ou forth.



Je ne suis pas d'accord. Les langages interprétés introduisent des
erreurs d'approche. Quelle ne fut pas ma stupéfaction lorsque je
découvris qu'il n'était pas possible de construire des noms de variable
à partir de chaîne en passant du pascal interprété des TI au C ANSI ^^;
Le C reste pour moi, en conjonction avec une approche de
l'assembleur, la seule manière valable d'approcher les langages de
programmations. Mais on ne va pas refaire le troll de fr.comp.lang.c ;)

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Sylvain SF
HB wrote on 28/08/2008 14:42:

Question au passage, pour apprendre le C++ j'entend différente sons de
cloche, certain dissent qu'il faut apprendre le C au parvant, d'autre le
conseil fortement enfin d'autre que cela n'est absolument pas nécessaire.



mon grain de sel pour apporter a contreverse ...

certaines techniques avancées du C sont - comme dit ci-avant - des
mauvaises pratiques si l'on prétend faire du C++ (de puriste).
ces techinques sont rarement ce que l'on apprend, encore moins ce
que l'on retiens, lors de la découverte d'un langage.

ok, il y aura hélas toujours un array de struct incluant des unions
que même un bouquin de C pour débutant introduira, le lecteur zappera.

le fait de parler d'info industriel m'autorise à penser que les
compétences attendues tiennent plus de la pertinence numérique
que la maitrise objet, pour un design propre ou pour la STL.

utiliser un bouquin dédié C pour apprendre la syntaxe de base,
les types primitifs et tous leurs opérateurs, ne me parait pas
du tout du temps perdu - savoir utiliser des <> est très bien,
ne pas confondre & et && est un préalable.

Sylvain.
Avatar
pjb
Mickaël Wolff writes:

Pascal J. Bourguignon a écrit :

D'un autre côté, ce ne sont pas les langages que je conseillerais à
des débutants en informatique, mais plutôt lisp (ou scheme), ou
python, ou forth.



Je ne suis pas d'accord. Les langages interprétés introduisent des



Qui a parlé d'interprète? Là n'est pas la question. Ce qui compte
c'est d'avoir un environnement interactif et réactif, une boucle de
lecture, évaluation et affichage (= Read Eval Print Loop = REPL).
L'évaluation peut être faite de n'importe quelle manière, et certaines
implémentations par exemple de Common Lisp, parmis les plus populaires
n'ont pas d'interpréteur et compilent toutes les expressions fournies
avant de les exécuter dans la BLEA.

On pourrait certainement envisager de façon avantageuse d'apprendre le
C avec une de ces implémentation interactive:

CINT - http://root.cern.ch/root/Cint.html
EiC - http://eic.sourceforge.net/
Ch - http://www.softintegration.com


erreurs d'approche. Quelle ne fut pas ma stupéfaction lorsque je
découvris qu'il n'était pas possible de construire des noms de
variable à partir de chaîne en passant du pascal interprété des TI au
C ANSI ^^;
Le C reste pour moi, en conjonction avec une approche de
l'assembleur, la seule manière valable d'approcher les langages de
programmations. Mais on ne va pas refaire le troll de fr.comp.lang.c
;)



Bon, sans refaire de troll, mentionnons juste que l'approche à la meta
programmation que tu réalisais avec cette implémentation de pascal est
interdite en C (sans avoir recours à l'écriture d'un compilateur
complet), et qu'on ne peut pas considérer ceci comme un avantage de C.

Quand à l'assembleur, s'il s'agit d'un bon macro-assembleur, il peut
être supérieur au C (du point de vue de la meta programmation).

--
__Pascal Bourguignon__ http://www.informatimago.com/

There is no worse tyranny than to force a man to pay for what he does not
want merely because you think it would be good for him. -- Robert Heinlein
Avatar
Fabien LE LEZ
Un compilateur C++ est capable de comprendre du code écrit en trois
langages différents :

- le langage C ;
- le "C with new", où on programme exactement comme en C, mais en
remplaçant "malloc" par "new[]" et "free" par "delete[]" (et peut-être
"printf" par "cout") ;
- le C++.

Si tu connais déjà un autre langage, que ce soit Python, Ruby ou Java,
tu n'auras pas trop de mal à apprendre le C++.

Si tu connais déjà le C, tu auras beaucoup de mal à programmer
correctement en C++, car tu dériveras souvent vers le "C with new" :
tu appliqueras des solutions typique du C, ce qui ne pourra aboutir
qu'à des programmes bancals au mieux, voire complètement
inutilisables.

S'il s'agissait d'apprendre le C++, le conseil serait fort simple :
oublie totalement le C, et commence la programmation par un langage
plus facile, comme Python ou Ruby. [Note : la bataille fait rage entre
les deux. Vu de l'extérieur, Python semble une bonne introduction à la
programmation en général ; Ruby se focalise beaucoup plus sur la
programmation objet, ce qui peut être un bon chemin vers C++.]

Le drame, c'est que beaucoup d'écoles enseignent le "C with new" mais
l'appellent "C++". C'est une escroquerie, mais elle est tellement
répandue qu'il est difficile de l'éviter.
Si ton prof de C est aussi chargé du "C++", la probabilité qu'il
t'enseigne réellement le C++ est quasiment nulle.


Alors, que faire ?

Mon conseil : tiens-toi à l'écart du C++ pour l'instant. Le moment
venu, absorbe ce que les professeurs te diront, recrache-le sur ta
copie pour obtenir ton diplôme, et une fois qu'il est en poche, lis
quelques bons bouquins de C++ pour te faire une idée de ce que tu as
réellement appris.

En attendant, pour occuper utilement ton temps, tu as trois choix
possibles :

- Tenter d'apprendre le C. Ça te donnera soit de l'avance sur
ton programme, soit du retard parce que tu seras parti dans une
mauvaise direction (ou au moins, différente de celle de ton prof),
qu'il te faudra désapprendre.

- Apprendre un langage totalement différent, comme Python. Ça te
donnera une première approche de la programmation, qui t'évitera
d'être noyé quand tu commenceras le C.

- Améliorer ton anglais. Il faut se rendre à l'évidence : on ne
fait rien de bon en informatique si on ne sait pas lire un texte en
anglais. Lis beaucoup (des romans, des bouquins techniques, n'importe
quoi qui t'intéresse), avec un dictionnaire à portée de la main. Du
temps passé à lire, et en particulier en anglais, n'est jamais du
temps perdu.

Accessoirement, si tu lis un cours en anglais sur un langage
quelconque, tu fais d'une pierre deux coups.
Avatar
Fabien LE LEZ
On Thu, 28 Aug 2008 16:17:14 +0200, (Pascal J.
Bourguignon):

De mon point de vue, et bien que l'on puisse considérer C et C++ comme
deux languages différents, je pense qu'il vaudrait mieux apprendre
d'abord C, puis C++.



Comme tu l'as prévu, je suis en profond désaccord avec cette idée. Le
C est probablement le pire chemin imaginable pour arriver au C++.
Avatar
Fabien LE LEZ
On Thu, 28 Aug 2008 19:22:08 +0200, Sylvain SF
:

certaines techniques avancées du C sont - comme dit ci-avant - des
mauvaises pratiques si l'on prétend faire du C++ (de puriste).
ces techinques sont rarement ce que l'on apprend, encore moins ce
que l'on retiens, lors de la découverte d'un langage.



Si tu dis "chaîne de caractères" à un programmeur C, même relativement
débutant, il pensera tout de suite "tableau de char", "malloc",
"strcat()", etc.
Ce qui fait de très mauvaises bases pour passer au C++.

Et je ne pense pas que la notion de chaîne de caractères soit une
notion avancée.

Dans la plupart des autres langages (Java, Javascript, PHP, etc.), une
chaîne de caractères est simplement un objet, qu'on peut retourner
d'une fonction, stocker, modifier, etc., aussi facilement qu'un
entier. Le C et l'assembleur font les choses différemment, de façon
beaucoup plus complexe, ce qui les met à part des autres langages.


le fait de parler d'info industriel m'autorise à penser que les
compétences attendues tiennent plus de la pertinence numérique
que la maitrise objet, pour un design propre ou pour la STL.



Détrompe-toi.

Si un jeu vidéo est mal programmé et plante, au pire, je dois
recommencer le niveau. Ça peut être gênant si ça arrive trop souvent,
mais bon, y'a pas de quoi fouetter un chat.

Si le programme de gestion d'un haut fourneau n'est pas parfait, et
qu'un bug lui fait faire des conneries, au mieux tu te retrouves avec
des pertes financières supérieures à ce qu'un programmeur gagnera dans
toute sa vie ; au pire, des vies humaines sont en jeu.

ne pas confondre & et && est un préalable.



Ça, même en PHP tu peux l'apprendre.
1 2 3 4 5