OVH Cloud OVH Cloud

Je me lance, de Francis Glassborow, premiers avis sur ce livre.

41 réponses
Avatar
Loïc Joly
Comme la question de la qualité de ce livre a déjà été débattue ici, je
donne mon premier avis à chaud (j'ai lu une partie, survolé le reste, je
pense en faire une vraie critique quand j'aurais fini).

Les points forts :
- Vraiment aucune connaissance préalable
- Un environnement de développement livré avec et des infos détaillées
sur comment s'en servir
- Des explications qui ont l'air claires, de bonnes analogies
- Des commentaires de la beta testeuse du livre qui peuvent donner une
autre perspective
- Un livre vraiment fait pour apprendre seul
- Un apprentissage des différents éléments dans le bon ordre,
utilisation de la STL
- L'utilisation d'une bibliothèque graphique assez simple permettant de
faire dès le début des programmes assez ludiques

Les points faibles :
- Ne va pas très loin (pas de polymorphisme, de création de templates,
d'exceptions, survol des constructeurs...)
- Je trouve que le style de s'adresser directement au lecteur introduit
parfois des précautions oratoires un peu gênantes à force. Je suis plus
dubitatif que vraiment contre.
- Un nombre important de typos, dont certaines très gênantes (un *
remplacé par un gros point comme on en voit dans une liste de points).
Je pense que ce livre est une des nombreuses victimes de la traduction.
- Peut-être un peu lent (difficile de juger pour un non débutant).

En résumé : Pour des personnes vives d'esprit, avec un certain niveau
d'études scientifiques, je continuerai probablement à conseiller
/Accelerated C++/ de Koenig et Moo. Pour les autres, ou les allergiques
à l'anglais, ce livre pourrait être un premier pas, à complèter
impérativement par un autre (mais lequel ? Une suite du même auteur ?).


--
Loïc

10 réponses

1 2 3 4 5
Avatar
Nadine St-Amand
En résumé : Pour des personnes vives d'esprit, avec un certain niveau
d'études scientifiques, je continuerai probablement à conseiller
/Accelerated C++/ de Koenig et Moo.



Pour les autres, ou les allergiques
à l'anglais, ce livre pourrait être un premier pas, à complèter
impérativement par un autre (mais lequel ? Une suite du même auteur ?).


Si je peux me permettre, j'ai écrit un livre très pédagogique à
l'intention des débutants (mais avec quelques sections avancées,
notamment sur les pointeurs et la surcharge des opérateurs).

Il est actuellement en relecture (tracer tous les typos et oublis
potentiels) mais déjà disponible en ligne.

C'est le fruit de 3 ans de cours particuliers de C++, il s'agit du
matériel didactique préparé pour mes élèves.

http://cplusplus.cdoc.biz/

Les gens très interressés peuvent me laisser leur adresse e-mail pour
être notifiés de la sortie en version papier et des ajouts (une section
architecture est en dev) ou des modalités d'utilisation (pour
l'enseignement).

--
Nadine St-Amand
Livre-tutorial illustré de C et C++ http://cplusplus.cdoc.biz/

Avatar
Nadine St-Amand
Loïc Joly wrote:
En résumé : Pour des personnes vives d'esprit, avec un certain niveau
d'études scientifiques, je continuerai probablement à conseiller

/Accelerated C++/ de Koenig et Moo.

Pour les autres, ou les allergiques
à l'anglais, ce livre pourrait être un premier pas, à complèter
impérativement par un autre (mais lequel ? Une suite du même auteur ?).



Si je peux me permettre, j'ai écrit un livre très pédagogique ( en
français ) à l'intention des débutants (mais avec quelques sections
avancées, notamment sur les pointeurs et la surcharge des opérateurs).

Il est actuellement en relecture (tracer tous les typos et oublis
potentiels) mais déjà disponible en ligne.

C'est le fruit de 3 ans de cours particuliers de C++, il s'agit du
matériel didactique préparé pour mes élèves.

http://cplusplus.cdoc.biz/

Les gens très intéressés peuvent me laisser leur adresse e-mail pour
être notifiés de la sortie en version papier et des ajouts (une section
architecture est en dev) ou des modalités d'utilisation (pour
l'enseignement). Tout commentaire est également le bienvenu.

--
Nadine St-Amand
Livre-tutorial illustré de C et C++ http://cplusplus.cdoc.biz/
Générateur de code sql2php http://www.phpbackend.com

Avatar
Nadine St-Amand
#include <iostream.h>

dans le premier programme d'un cours pour debutant? Nous sommes en
2005: ou bien le cours est tres vieux (ISO/IEC 14882 date de 1998) ou
celui qui l'a ecrit n'est pas a jour.


Il est est basé sur la syntaxe que devaient apprendre mes élèves au
moment ou je l'ai écrit (ce qui était enseigné dans les écoles vers
2000-2002) et comme cela prend quand même plusieurs années écrire un
livre...

cela fait donc partie des revisions dont je parlais (ainsi que ajouter
le namespace obligatoire).

Ceci dit, la logique qui y est présentée est indépendante de ce détail
de syntaxe et reste toujours vraie.

--
Nadine St-Amand
Livre-tutorial illustré de C et C++ http://cplusplus.cdoc.biz/
Générateur de code sql2php http://www.phpbackend.com

Avatar
Nadine St-Amand
#include <iostream.h>

dans le premier programme d'un cours pour debutant? Nous sommes en
2005: ou bien le cours est tres vieux (ISO/IEC 14882 date de 1998) ou
celui qui l'a ecrit n'est pas a jour.



Il est est basé sur la syntaxe que devaient apprendre mes élèves au
moment ou je l'ai écrit (ce qui était enseigné dans les écoles vers
2000-2002) et comme cela prend quand même plusieurs années écrire un
livre...

Cela fait donc partie des revisions dont je parlais (ainsi que ajouter
le namespace obligatoire). Selon la quantité de clients que je vais
attirer, je vais procéder aux modif rapidement et vendre la version revisée.

Ceci dit, la logique qui y est présentée est indépendante de ce détail
de syntaxe et reste toujours vraie.

--
Nadine St-Amand
Livre-tutorial illustré de C et C++ http://cplusplus.cdoc.biz/
Générateur de code sql2php http://www.phpbackend.com

Avatar
kanze
Gabriel Dos Reis wrote:
Nadine St-Amand writes:

| > #include <iostream.h>

| > dans le premier programme d'un cours pour debutant? Nous
| > sommes en 2005: ou bien le cours est tres vieux (ISO/IEC
| > 14882 date de 1998) ou celui qui l'a ecrit n'est pas a
| > jour.

| Il est est basé sur la syntaxe que devaient apprendre mes
| élèves au moment ou je l'ai écrit (ce qui était enseigné
| dans les écoles vers 2000-2002) et comme cela prend quand
| même plusieurs années écrire un livre...

oui mais un problème fondamental est que la sémantique de
<iostream.h> varie d'un compilateur à l'autre ; ce qui est
moins le cas de <iostream>.


Aujourd'hui. Dans le temps, c'était l'inverse qui était vrai.

Et puis, je considère que même en 2000-2002, on pouvait/devait
apprendre <iostream> aux élèves -- je sais que je l'ai fait
:-) Mon opinion est que l'Accelerated C++ de Koenig et Moo
devrait être une base fondamentale.


Je ne sais pas pour 2000, mais pour 2002, au moins, non
seulement on pouvait, mais on *devait* le mentionnait. Quand on
travaille dans l'industrie, on a souvent un régard sur le code
existant, donc, du passé, mais quand on enseigne, il faut penser
que les élèves vont se servir de leur enseignement dans
l'avenir.

Maintenant, si le seul compilateur disponisble sur les machines
des élèves était g++ 2.95.2, il faudrait aussi enseigner
<iostream.h>. Mais aussi, et non à la place. (Et si quelqu'un
comme moi s'énerve des différences, parfois gratuites, je crois
que pour un élève débuttant en C++, elles ne doivent pas jouer
un rôle.)

--
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
Jean-Marc Bourguet wrote:
Nadine St-Amand writes:

#include <iostream.h>

dans le premier programme d'un cours pour debutant? Nous
sommes en 2005: ou bien le cours est tres vieux (ISO/IEC
14882 date de 1998) ou celui qui l'a ecrit n'est pas a
jour.


Il est est basé sur la syntaxe que devaient apprendre mes
élèves au moment ou je l'ai écrit (ce qui était enseigné
dans les écoles vers 2000-2002) et comme cela prend quand
même plusieurs années écrire un livre...


Deja a l'epoque ce n'etait deja plus a enseigner a des
debutants (meme si en 2000 j'en aurais parle plus tard parce
qu'il y avait un risque important qu'ils se retrouvent face a
cela dans le code existant, en 2002 ce risque etait deja plus
faible -- je suis a peu pres certain que nous avions fait la
transition par exemple, et nous sommes plutot conservateurs
--, de nos jours n'en parlons pas).


Je ne sais pas. Ici, on n'a passé à <iostream> que cette année.
Et pas dans tous les projets. (On n'a arrêté de compiler les
bibliothèques de base avec Sun CC 4.2 qu'il y a quelque mois.)

Mais c'est probablement un cas d'exception. Et il y a une
différence entre « mentionner qu'une telle chose a existé, et
que vous risquez de le voir », et l'utiliser comme base de
l'enseignement.

--
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
Gabriel Dos Reis
Nadine St-Amand writes:

| Jean-Marc Bourguet wrote:
|
| > Deja a l'epoque ce n'etait deja plus a enseigner a des debutants (meme
| > si en 2000 j'en aurais parle plus tard parce qu'il y avait un risque
| > important qu'ils se retrouvent face a cela dans le code existant, en
| > 2002 ce risque etait deja plus faible
|
| En 2000, c'était effectivement encore enseigné dans des écoles,

Entre 1999 et 2002, j'ai enseigné dans ce qu'on appelle en France les
(Grandes) Écoles et fait de la formation continue. J'ai également
formé des gens qui étaient déjà dans l'industrie (genre une dizaine
d'années d'expérience de C/assembleur TFT :-)) Donc, je pense que
j'ai vu un peu de la théorie et la pratique.

À l'École Centrale de Lyon par exemple, l'equipe enseignante faisait
très attention (même si la première semaine, j'ai dû travailler avec
une version ancienne de EGCS ;-/) D'après des échanges avec quelques
collègues d'autres institutions, il semble que ce ne soit pas isolé,
même si on pouvait encore trouver des gens enseignant quelque chose
qui se rapproche de C with Classes que de C++.

Je ne suis plus en France, mais cela m'étonnerait que les choses aient
regressé.

Des bouquins sur C++, il y en a déjà plein.
Ce dont la communauté a besoin, c'est de bons bouquins.
Sans excuses :-)

-- Gaby
Avatar
kanze
Nadine St-Amand wrote:
En résumé : Pour des personnes vives d'esprit, avec un
certain niveau d'études scientifiques, je continuerai
probablement à conseiller /Accelerated C++/ de Koenig et
Moo.


Pour les autres, ou les allergiques
à l'anglais, ce livre pourrait être un premier pas, à
complèter impérativement par un autre (mais lequel ? Une
suite du même auteur ?).


Si je peux me permettre, j'ai écrit un livre très pédagogique
à l'intention des débutants (mais avec quelques sections
avancées, notamment sur les pointeurs et la surcharge des
opérateurs).

Il est actuellement en relecture (tracer tous les typos et
oublis potentiels) mais déjà disponible en ligne.

C'est le fruit de 3 ans de cours particuliers de C++, il
s'agit du matériel didactique préparé pour mes élèves.

http://cplusplus.cdoc.biz/


Juste quelques petits commentaires, vite faits. (Je n'ai regardé
que quelque pages du chapitre 1.)

-- En C++, normalement, on écrit : « int main() », et non « int
main( void ) ». (L'utilisation de void, ici, est un hack,
rendu nécessaire pour des raisons de compatibilité avec C.)

-- Je ne veux pas être plus royaliste que le roi, mais est-ce
que l'expression « point flottant » est réelement français ?
J'aurais dit « virgule flottant ». (Mais j'ai vu d'après
l'adresse email que tu es au Canada. C'est peut-être la
cause de la différence.)

-- Plus généralement : il ne faut jamais, jamais parler des
réels quand on parle des nombres dans l'ordinateur. Ça mène
à trop d'expectations qui ne collent pas. Ce sont des
virgules flottans, on peut s'en servir pour stocker un très
petit sous-ensemble des réels, mais on ne s'en sert que si
on est au courant des limitations, et qu'on sache ce qu'on
fait. (Et je sais, ce n'est pas facile à dire à un débutant,
il y a des types dont tu n'as pas le droit de t'en servir,
parce qu'il faudrait un cour entier seulement pour apprendre
à s'en servir.)

-- Je me méfie beaucoup d'un livre d'aujourd'hui qui parle
immédiatement, dans le premier chapitre, de char[] et
d'int[]. Le type chaîne de caractères, c'est std::string en
C++, et un tableau d'entiers s'écrit std::vector<int>.
Surtout dans les devoirs, dans les réponses proposées : un
prénom ou un nom ne se stocke jamais dans un « tableau
char[] ». (Et ça, depuis que je fais du C++, c-à-d 1990
environ.)

-- L'encodage ASCII ne fait pas partie du C++, et de toute
façon, la façon que sont encoder des caractères est un thème
pour les gens plutôt avancés -- on doit l'aborder quand on
aborde <locale>, je crois, mais pas avant.

Enfin, je n'ai pas regardé beaucoup, mais le peu que j'ai
régardé ne m'a pas fait une impression positive.

--
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
Gabriel Dos Reis wrote:

Des bouquins sur C++, il y en a déjà plein. Ce dont la
communauté a besoin, c'est de bons bouquins. Sans excuses :-)


Il y a même quelques très bons bouquins. De mon point de vu, ce
dont la communauté a le plus besoin, c'est que les programmeurs
qui utilisent le C++ les lisent, et les comprenent.

--
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
Gabriel Dos Reis
writes:

| J'aurais dit « virgule flottant ».

C'est ce que j'ai toujours entendu dire en France.
(avec le « e » à la fin)

-- Gaby
1 2 3 4 5