OVH Cloud OVH Cloud

debutant en programmation

59 réponses
Avatar
Rolupi
Bonjour,

Petite question de debutant en programmation:
comment faut-il si prendre pour apprendre la programmation en c/c++

Doit on prendre des cours, acheter des livres, refaire des programmes des
autres.......
Et vous, combient de temps avez vous mis pour devenir un "bon" programmateur
et comment vous vous y ete pris.

merci.

10 réponses

2 3 4 5 6
Avatar
julien
del yahoo wrote:
julien wrote

del yahoo wrote:

Fabien LE LEZ wrote in message

Et je persiste dans mon opinion : je ne pense pas que quelqu'un qui
n'a pas la rigueur suffisante pour respecter des règles de grammaire
de base dans au moins une langue, ne peut pas programmer sérieusement.
Et surtout pas en C++, et encore moins en C.


Tout dépend de ce que l'on appelle 'de base', en Français comme en C++.

Et néglige aussi pas mal de processus cognitifs...


Moi j'avais 19.5 de moyenne en grammaire (c'est de la logique), et 0 en
orthographe.
Et j'ai toujours eu une des meilleurs notes en grammaire, et la plus
mauvaise en orthographe.

C'est grave docteur ?



Est-ce que cela te pose problème ?


Sérieusement, le Francais n'a rien à voir avec la rigueur, au contraire
on aprend qu'il n'y a pas de régles sans exceptions, alors qu'en
programmation, c'est l'inverse, il ne faut faire aucune exception, et
faire preuve de la même rigueur sans jamais les transgresser.



Ne passons pas d'un extrème à l'autre: il y a une rigueur dans les
languages naturels, mais elle admet des exceptions.

Quand à la programmation, dire qu'aucune règle n'admet d'exception,
c'est en C++ assez ridicule aussi. Des règles en C++ avec des
exceptions, on peut en faire plein, genre:
- "on peut lancer une exception partout, sauf dans un destructeur"
- "n'utilisez jamais de variable globale, mais des singletons, sauf
quand vous ne pouvez pas faire autrement"
- "ne mélanger jamais les types signées et non signés, réservez les
types signés à l'arithmétique et les non signés aux champs de bits,
sauf pour les tailles (size_t)"
- "toujours utiliser l'héritage public pour traduire 'isA'", mais
Gabriel fait hériter Vecteur2D de Point dans un de ces codes


C'est des régles pas des exceptions. Une exception n'a pas de raison
logique. Après si tu me trouve une raison logique qui explique pourquoi
certains mots finissant par "ou" prenent un x au puriel, et d'autre non,
je te souhaite bon courage.



Sans parler des règles tellement complexes que des gens en débattent
ici en citant des passages de la norme pour généralement arriver
à la conclusion que c'est l'interprétation de Gabriel qu'il faut
retenir car c'est en lui qu'on a le plus confiance pour ce type
de question.


S'il y a débat, c'est justement qu'il n'y a pas une liste d'exception à
aprendre, mais que c'est le fruit d'un raisonnement, et du "bon usage".
Et d'aileur les exceptions que tu sites, viennent d'une mauvaise
conception de départ, mais au lieu de tout refaire, c'est plus simple de
mettre une rustine.



Le monde réel n'est ni tout blanc ni tout noir.


Sauf s'il est composé de 0 et de 1 ;)




Marc Boyer





Avatar
julien
James Kanze wrote:

Olivier Azeau wrote:
julien wrote:

wrote:

Ce sont des fautes de frappe, non « c'est une faute de
frappe ». Et c'est un peu ce que disait Fabien -- si tu n'as
pas assez de rigueur pour écrire correctement, en évitant
les fautes de frappe, tu n'as pas assez de rigueur pour
devenir un bon programmeur. Parce que la programmation exige
beaucoup de rigueur (et je ne connais aucun compilateur qui
accepte des fautes de frappe).


Ose me dire que tu n'a jamais fait de faute de frappe en
programmant! Si c'est le cas, c'est que tu dois être un
newbie, qui n'a pas tapé beaucoup de choses...


C'est peut être surtout parce qu'il fait très attention à ce
qu'il écrit, non ?


En partie. Il y a en fait un ensemble de raisons -- par exemple,
il y a longtemps que j'ai appris à taper correctement :
rapidement, sans régarder le clavier, et sans faire beaucoup de
fautes. En fin de compte, le clavier, c'est l'outil dont je me
sers le plus, et un bon ouvrier sait manier ses outils. (Comme
quoi, la programmation n'est pas uniquement un travail
intellectuel.) Et crois-moi, ça aide. Il y a aussi que je fasse
peut-être plus d'attention que la plupart du fait que le
français est une langue étrangère pour moi.

Et c'est peut-être, effectivement, que j'écris des programmes
depuis plus de trente ans, et que donc j'ai bien appris
l'importance de ce genre de détails. J'étais assez nul en
orthographe quand j'étais à l'école, aussi. Précisement parce
que je n'avais pas encore compris l'importance des détails.



Avec toutes les mauvaises habitudes de la programmation d'il y a 30 ans
sur les bandes perforées.
Et si tu écris des programmes depuis 30 ans ta carriére est pas top.


Pour la remarque du "newbie", je crois qu'il vaut mieux en
rire :-)

Et TOUT les compilos te prévient pour 99% des fautes de
frappes. C'est d'ailleur une des principale fonctions d'un
compilo (à par celui de te pondre un executable rapide)


Si tu te sers d'un compilo comme d'un correcteur
orthographique, je n'ose imaginer combien de fois il te faut
le lancer avant d'arriver à compiler un fichier (surtout si tu
fais autant de fautes "de frappe" que quand tu écris en
français)

Mais même avec ça, tu risques gros avec les erreurs que le
compilo ne détectera pas.


Dans l'application sur laquelle je travaille actuellement, on a
des automatons et des automations.


Et vous n'êtes pas assez futé pour vous dire qu'il peut y avoir une
erreur de frappe, et donc changer le nom...
C'est un gros manque de rigeur!
Et je vous conseil d'ailleur de revoir très fortement vos méthodes de
programmation, si ce genre de pratique ne vous choque pas, c'est qu'il y
a du boulot, ou des mauvaises habitudes à perdre.

Biensur si on pense que l'orthographe c'est indispensable en
programmation, ne changeons surtout pas ces noms, ca serait désastreux
un programme avec une faute d'orthographe, il risquerait de ne pas
marcher ;)


Je t'assure, on fait
attention, et on ne compte pas sur le compilateur pour détecter
les erreurs.

J'ai vu une fois un bug dû à un point virgule mal placé.
C'était une boucle classique, un peu comme celle-là :
for(int i=0; i<10; ++i);
a[i] = x;

Bien sûr le compilo n'y a vu que du feu et le bug est resté
bien caché pendant très longtemps.

Sans parler des noms de variables qui ne diffèrent que d'une
lettre et que l'on intervertit facilement si l'on n'y regarde
pas de trop près.

Je ne partage que très peu l'opinion exprimée dans ce thread
comme quoi la connaissance de l'orthographe de sa langue
maternelle est essentielle pour bien programmer (parce que
j'ai beaucoup de contre-exemples pour infirmer cette règle)
mais je suis sûr d'une chose : savoir prêter attention aux
détails (et ne pas croire que le compilo va le faire à notre
place) est une condition primordiale pour programmer
efficacement.


Je crois que c'est surtout ça. Même aujourd'hui, je ne m'estime
pas fort en orthographe. Mais je sais me servir d'un
dictionnaire, quand il faut.



Bravo, et le rapport à la programmation?

Le problème c'est que dans l'esprit collectif l'orthographe est un
révélateur du niveau d'éduction/intellectuel/social. Et que ceux qui
sont bon en orthographe, essaie de se convaincre qu'ils sont donc bon en
tout, et que ca reflète leur compétence dans tous les autres domaines.
C'est malheureusement pour eux faux.




Avatar
Pierre Maurette
[...]
Dans l'application sur laquelle je travaille actuellement, on a
des automatons et des automations.



Et vous n'êtes pas assez futé pour vous dire qu'il peut y avoir une
erreur de frappe, et donc changer le nom...
Bien, l'autiste ;-)

Un "automaton" n'est pas un gardien de prison en voiture. Jetez un oeil
sur un Google, ou sur un dico Anglais.
--
Pierre


Avatar
julien
Pierre Maurette wrote:

[...]

Dans l'application sur laquelle je travaille actuellement, on a
des automatons et des automations.




Et vous n'êtes pas assez futé pour vous dire qu'il peut y avoir une
erreur de frappe, et donc changer le nom...


Bien, l'autiste ;-)
Un "automaton" n'est pas un gardien de prison en voiture. Jetez un oeil
sur un Google, ou sur un dico Anglais.


Justement, qu'est ce qui t'oblige a garder le même nom dans ton programme?

Ton programme n'en a rien à faire de ton dico d'anglais...

Tu peux l'appeler TrucMuchAutomatonSucksGrave et Automation, ca ne fera
aucune différence pour l'ordi et ca t'évitera de faire des fautes.
Personne ne pourra confondre les deux même fatigué, et aucune erreur de
frappe possible (ou alors il faut éviter les substances illicites)

Mais il faut avoir une certaine souplesse d'esprit et vouloir rendre son
code robuste aux erreurs humaines, ce qui ne semble pas être ton cas...

Essaie de faire preuve de rigeur au lieu de te croire supérieur au
autres, et ne pense pas tout savoir, car tu as encore beaucoup à
apprendre (comme moi).



Avatar
kanze
julien wrote:
James Kanze wrote:


[...]
Et c'est peut-être, effectivement, que j'écris des
programmes depuis plus de trente ans, et que donc j'ai bien
appris l'importance de ce genre de détails. J'étais assez
nul en orthographe quand j'étais à l'école,
aussi. Précisement parce que je n'avais pas encore compris
l'importance des détails.


Avec toutes les mauvaises habitudes de la programmation d'il y
a 30 ans sur les bandes perforées.


Mes clients ne partage pas ton avis ; ils savent que j'ai su
évoluer.

Et si tu écris des programmes depuis 30 ans ta carriére est
pas top.


Pouquoi ? J'aime ce que je fais. J'en suis bien payé. Qu'est-ce
que je dois vouloir de plus -- de m'emmerder avec des détails
administratifs ?

[...]
Dans l'application sur laquelle je travaille actuellement,
on a des automatons et des automations.


Et vous n'êtes pas assez futé pour vous dire qu'il peut y
avoir une erreur de frappe, et donc changer le nom...


Il n'y a pas d'erreur de frappe. Et évidemment, je ne change pas
le nom, parce que ça cassera tous les programmes qui compilent
avec mes en-têtes.

On dirait que tu ne comprends pas trop de la vie
professionnelle, et de ce qu'on s'attendra de toi.
L'irresponsibilité, ça ne se paie pas bien.

C'est un gros manque de rigeur!


Le respect de mes collègues est une manque de rigueur ? Tu ne
travaillerais jamais chez un de mes clients avec cette attitude.

Et je vous conseil d'ailleur de revoir très fortement vos
méthodes de programmation, si ce genre de pratique ne vous
choque pas, c'est qu'il y a du boulot, ou des mauvaises
habitudes à perdre.


Le respect des autres est une mauvaise habitude à perdre ?

Biensur si on pense que l'orthographe c'est indispensable en
programmation, ne changeons surtout pas ces noms, ca serait
désastreux un programme avec une faute d'orthographe, il
risquerait de ne pas marcher ;)


Changer un nom par hazard dans un programme qui marche, sans
savoir ce qu'on fait, ça risque effectivement de casser le
programme. Changer un nom dans un fichier d'en-tête, sans
s'organiser avec la reste de l'équipe, et tu ne toucheras plus
aux sources, ça c'est sûr.

[...]
Le problème c'est que dans l'esprit collectif l'orthographe
est un révélateur du niveau d'éduction/intellectuel/social.


Le problème, c'est qu'il faut communiquer avec les autres, et
une orthographe standard y aide.

Et que ceux qui sont bon en orthographe, essaie de se
convaincre qu'ils sont donc bon en tout, et que ca reflète
leur compétence dans tous les autres domaines. C'est
malheureusement pour eux faux.


Il ne s'agit pas ici si on est bon en orthographe ou non. Tout
le monde peut écrire correctement, s'il veut bien faire
l'effort. Il s'agit ici plutôt d'une attitude de base, qui dit
qu'à peu près suffit, et que les détails ne sont pas importants.
Ou qui dit que la communication, c'est pour les autres ; ils
n'ont qu'à comprendre ce qu'on a écrit, sans qu'on fasse un
effort, nous.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
kanze
julien wrote:
Olivier Azeau wrote:
julien wrote:

wrote:

Ce sont des fautes de frappe, non « c'est une faute de
frappe ». Et c'est un peu ce que disait Fabien -- si tu
n'as pas assez de rigueur pour écrire correctement, en
évitant les fautes de frappe, tu n'as pas assez de rigueur
pour devenir un bon programmeur. Parce que la
programmation exige beaucoup de rigueur (et je ne connais
aucun compilateur qui accepte des fautes de frappe).


Ose me dire que tu n'a jamais fait de faute de frappe en
programmant! Si c'est le cas, c'est que tu dois être un
newbie, qui n'a pas tapé beaucoup de choses...


C'est peut être surtout parce qu'il fait très attention à ce
qu'il écrit, non ?


Et donc s'il ne fait pas attention en écrivant sur un
newsgroup, tu en déduis qu'il n'en fera pas de même avec un
programme. C'est pas un peu simpliste comme raisonnement?


Comme quelqu'un d'autre a dit, ça montre qu'on considère les
machines plus importantes que les hommes, et qu'on n'est pas
près à faire l'effort nécessaire de communiquer correctement
avec les collègues. Or, étant donné que l'informatique, c'est
surtout un travail d'équipe, ça ne s'annonce pas bien pour la
vie professionnelle.

Comme je te l'ai fait remarqué, c'est pas parce qu'on est non
rigoureux dans un domaine qu'on ne l'ai pas dans un autre.


La rigueur est indépendante du domaine. On est rigueureux, ou on
ne l'est pas.

Un compilo ne connais pas l'orthographe...


À bon. Essaie de lui faire des fautes, « wile » à la place de
« while », par exemple. Essaie de ne pas écrire le nom de la
variable le même chaque fois.

Et sache que pour un (bon) programmeur seulement 5% de son
temps est pris à taper son programme, il réfléchit les 95% du
temps.


Surtout, il communique avec ses collègues. Il documente. La
réflection ne sert que si elle est documentée ; sinon, c'est
comme si on ne l'avait pas faite.

J'ai vu une fois un bug dû à un point virgule mal placé.
C'était une boucle classique, un peu comme celle-là :
for(int i=0; i<10; ++i);
a[i] = x;


Un bon compilo te met un warning...


Il n'a pas intérêt. J'ai souvent les boucles for vides dans mon
code.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34




Avatar
Matthieu Moy
writes:

Le respect de mes collègues est une manque de rigueur ?
^^^

Hein, quoi, qui a parlé de rigueur, d'orthographe et de grammaire ?

(désolé, j'ai pas pu résister.)

--
Matthieu

Avatar
Michel Michaud
Dans le message ,
julien wrote:
for(int i=0; i<10; ++i);
a[i] = x;


Un bon compilo te met un warning...


Il n'a pas intérêt. J'ai souvent les boucles for vides dans mon
code.


Un bon compilateur ne met pas d'avertissement pour les boucles
« vides » qui font quelque chose (dans le for lui-même j'imagine),
mais il en met pour les boucles vides qui ne font rien, comme celle
ci-haut. Tu en mets beaucoup dans tes programmes ?

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/



Avatar
Fabien LE LEZ
On Tue, 01 Mar 2005 21:30:55 +0100, Matthieu Moy :

Hein, quoi, qui a parlé de rigueur, d'orthographe et de grammaire ?


S'il écrit mieux en anglais et en allemand, tout va bien ;-)

--
;-)

Avatar
Fabien LE LEZ
On Tue, 1 Mar 2005 15:38:04 -0500, "Michel Michaud" :

mais il en met pour les boucles vides qui ne font rien, comme celle
ci-haut.


Donc, en gros,

for (int i=x; i!=y; ++i);

génère un warning, tandis que

for (Machin i=x; i!=y; ++i);

n'en génère pas ?


--
;-)

2 3 4 5 6