Apprendre le langage C et quelques questions

Le
heron maladroit
question :

Ne souhaitant pas passer trop de temps sur le langage C, ça fait 1 an
que j'ai commencé et je considère y donner encore 1 année de plus (=
à
raison de 4 à 8 heures par semaine), je pense que ce n'est pas
nécessaire de lire le K&R en profondeur pour un niveau en C que je
veux garder "basique". C'est bien de l'avoir sous le coude et par
moment pour voir un peu un style de programmation définitivement
brillant au niveau algorithmes.

En effet, étant comptable, je ne sais pas très bien à quoi le langage
C pourrait me servir concrètement. L'informatique occupe beaucoup mon
temps en dehors du temps de travail mais je ne vois pas pour le temps
que je peux y consacrer pour apprendre comment dans les conditions
actuelles du marché, trouver un travail dans ce domaine en qualité
d'autididacte. Peut-être je peux envisager d'écrire des petites
applications sur des appareils mobiles ou des applications web ? On
dirait que les grands éditeurs mettent en place des outils de
développement maison pour les appareils Androïd, iPhone

Et également, j'utilise linux et je ne sais pas quel niveau en langage
C il faut pour apprécier plus en profondeur cet OS ? J'ai vu que le
langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?

J'ai quelques bases en C qu'on retrouve dans d'autres langages
(notamment au niveau algorithmique, pointeurs), c'est pourquoi
j'envisage après de me consacrer au C++. Mais je souhaite avant
consolider les bases et les aspects un peu délicats de ce langage
assez éprouvant à apprendre (mais j'ai commencé avec beaucoup de
sacrifices sur les loisirs, la vie de famille etc et je ne ferais pas
machine arrière). Je garde professionnellement la tête hors de l'eau,
je donne la priorité pour gagner de l'argent mais c'est beaucoup
d'énergie Côté francophone, l'initiative d'entreprendre et
également d'apprendre n'est pas tant encouragée. Malheureusement, on
voit le résultat ; l'état en France préfère une distribution Linux
anglo-saxonne au dépit de Mandriva.C'est un autre débat.

Je voudrais savoir si jusqu'à présent la "route" que j'ai choisie est
cohérente. Et surtout comment orienter la dernière année
d'apprentissage. Dans un livre, j'ai pu voir la bibliothèque Glib.
J'ai trouvé que la programmation était assez différente de celle de
stdio, stdlib. Faudrait-il que je me consacre à cet bibliothèque afin
d'avoir une connaissance plus pratique de ce langage ? Ou est-ce que
c'est réserver à un usage niveau expert du langage C, qui ne serait
pas très "utile" lors d'une conversion vers C++, Python, Php,
Javascript des langages vers lesquels je souhaite m'orienter par la
suite. Des langages comme Vb net, C sharp m'intéresseraient également.
Avant, je considère passer approximativement le double du temps que
j'ai passé à apprendre le C sur le C++ afin de comprendre la POO. Je
ne sais pas si c'est cohérent.

Merci pour vos conseils (on dirait que ce groupe est de moins en moins
animé - faut-il s'exprimer en anglais pour retrouver les experts de ce
forum)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 9
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vivien Moreau
Le #22159171
On 2010-05-23, heron maladroit wrote:

Ne souhaitant pas passer trop de temps sur le langage C [...]



Alors, ça commence mal à mon humble avis. ;-)

je pense que ce n'est pas nécessaire de lire le K&R en
profondeur pour un niveau en C que je veux garder "basique".



Hum, en tant que débutant, j'ai bien l'impression que le K&R
*soit* la base.

En effet, étant comptable, je ne sais pas très bien à quoi le langage
C pourrait me servir concrètement. [...]



Pourquoi en fais-tu alors ?

Peut-être je peux envisager d'écrire des petites
applications sur des appareils mobiles ou des applications web ? On
dirait que les grands éditeurs mettent en place des outils de
développement maison pour les appareils Androïd, iPhone...



Si tu vises de faire du web, fais du web enfin ! Ça n'a rien
à voir avec le C. Et ça n'est vraiment pas un prérequis.

Je voudrais savoir si jusqu'à présent la "route" que j'ai choisie est
cohérente.



L'avis du débutant que je suis est que non, ta route n'est
pas vraiment cohérente. Tu fais du C, mais tu ne sembles pas
savoir pourquoi. C'est visiblement pour apprendre à
programmer, mais pour ça de nombreux langages te seront plus
utiles, comme Python qui t'a été déjà cité si je ne m'abuse.

[...]



Tu veux faire autre chose que du C, en fait. Alors fais-le.
Tu penses que ça sera un retour en arrière, mais non ou très
peu. Et tu progresseras beaucoup plus rapidemment ensuite.

--
Unix is simple. It just takes a genius to understand its simplicity
--Dennis M. Ritchie
alain
Le #22159561
heron maladroit wrote:
question :

je pense que ce n'est pas nécessaire de lire le K&R en profondeur pour un niveau en C que je
veux garder "basique".



C'est LA Bible.
Tu peux le lire en un week-end et tu auras les meilleures bases possibles.
Mickaël Wolff
Le #22159551
Le 24/05/2010 07:59, Vivien Moreau a écrit :

Alors, ça commence mal à mon humble avis. ;-)



Je suis d'accord sur ce point. L'apprentissage de la programmation
est un processus qui prend beaucoup de temps. Et avec le C, la
difficulté est assez élevée puisqu'il faut gérer la mémoire
explicitement. Ce qui semble être quelque chose de difficile.


Hum, en tant que débutant, j'ai bien l'impression que le K&R
*soit* la base.



Ça dépend pour quoi faire ^^; Je n'ai pas lu le K&R car mon formateur
nous l'avait fortement déconseillé (peu accessible au programmeur
débutant). Mais je ne doute pas qu'il soit une référence que tout
développeur C doit avoir au moins parcouru.


En effet, étant comptable, je ne sais pas très bien à quoi le langage
C pourrait me servir concrètement. [...]





L'apprentissage du C te permet déjà d'entre-apercevoir qu'il n'est
pas la technologie dont tu as besoin dans l'immédiat. C'est déjà pas
mal. Et au moins, tu auras compris ce que sont les pointeurs, les
problèmes liés à l'allocation et l'initialisation de la mémoire, son
usage, etc.

Si tu vises de faire du web, fais du web enfin ! Ça n'a rien
à voir avec le C. Et ça n'est vraiment pas un prérequis.



En quoi le C n'a rien à voir avec le Web ? On peut faire sans
problème du Web en C. Il y a même des cas où c'est considéré comme
incontournable (routeurs avec interface de configuration web par exemple).

Et personnellement, je considère encore toujours que des
connaissances (au moins basiques) de C et d'assembleur sont nécessaires
dans le cursus de l'apprentissage de la programmation. Rien que pour
comprendre les mécanismes sous-jacents de son langage de programmation
préféré. Mais tout le monde sur cette liste ne partage pas cet avis, et
cette remarque risque de lever un énorme troll velu et féroce.


Je voudrais savoir si jusqu'à présent la "route" que j'ai choisie est
cohérente.



L'avis du débutant que je suis est que non, ta route n'est
pas vraiment cohérente. Tu fais du C, mais tu ne sembles pas
savoir pourquoi. C'est visiblement pour apprendre à
programmer, mais pour ça de nombreux langages te seront plus
utiles, comme Python qui t'a été déjà cité si je ne m'abuse.



Quitte à troller À noter que c'est un très bon bouquin (un peu verbeux, mais bon, il
faut bien modeler les esprits).

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
xtof.pernod
Le #22159891
Le 23/05/2010 21:36, heron maladroit a fait rien qu'à écrire :
Ne souhaitant pas passer trop de temps sur le langage C, ça fait 1 an
que j'ai commencé et je considère y donner encore 1 année de plus (à
raison de 4 à 8 heures par semaine), je pense que ce n'est pas
nécessaire de lire le K&R en profondeur pour un niveau en C que je



ah, pourquoi ça..

Plus d'un le considère comme la bible du C.
Ne serait-ce que parce que c'est, par définition, le 1er.
Mais c'est pas usurpé..

veux garder "basique".



ah bah ça, c'est l'apanage d'un autre language.

C'est bien de l'avoir sous le coude et par
moment pour voir un peu un style de programmation définitivement
brillant au niveau algorithmes.



C'est pas plutôt des cas dits "d'école", que le bouquin aborde ?
Ce qui est très bien, il en faut ; mais si je me souviens bien
l'illumination n'est que temporaire.

En général, il est pas recommandé aux débutants (en programmation),
mais si on a deja trifouillé 2, 3 languages, il est chaudement
recommandé de l'avaler.


On
dirait que les grands éditeurs mettent en place des outils de
développement maison pour les appareils Androïd, iPhone...



eh ben.. bon courage, bonne chance, bonne année.. (s)


Et également, j'utilise linux et je ne sais pas quel niveau en langage
C il faut pour apprécier plus en profondeur cet OS ? J'ai vu que le



entre 0 et +oo ? toute valeur est acceptable amha.

langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?



Le 1er est écrit à l'aide du 2ème.

J'ai quelques bases en C qu'on retrouve dans d'autres langages
(notamment au niveau algorithmique, pointeurs...), c'est pourquoi



algorithmie, oui, on trouve ça dans pas mal de languages.
[sauf peut-être certains, où l'algorithmie se sent que très peu]
</mode "c'est_gratuit"="off">

(..)
Je voudrais savoir si jusqu'à présent la "route" que j'ai choisie est
cohérente.



Si tu arrives quelque part, c'est qu'elle l'était.

(je peux pas répondre pour toi, bien qu'a vu de nez, ça semble
un peu partir dans tous les sens..)

(...) Php,
Javascript des langages vers lesquels je souhaite m'orienter par la
suite. Des langages comme Vb net, C sharp m'intéresseraient également.



Allez, 2 balles de conseil, qui n'engage que celui qui le suivra:
laisse tout tomber sauf 1 ou 2, et focalise toi là dessus.

Je suggère JS et/ou PHP, parce qu'on peut faire plein de jolies choses
relativement rapidement.

Sinon, à 2 ans par language..

(...) la POO, Je
ne sais pas si c'est cohérent.



J'ai bien ma petite idée là-dessus =)

Merci pour vos conseils (on dirait que ce groupe est de moins en moins
animé -



ah, bah qu'est-ce qu'il te faut !
Tu as vu le nombre de réponses / la taille des enfilades que tu génères ?

f.c.l.c not dead !

faut-il s'exprimer en anglais pour retrouver les experts de ce
forum...)



C'est toi qui vois...

Tu speakes bien l'english, ou si tu vas profiter du fait que tu apprends
7 languages (de progra) pour en apprendre un 8ème ?

--
christophe.
Vivien Moreau
Le #22160381
On 2010-05-24, Mickaël Wolff wrote:

Le 24/05/2010 07:59, Vivien Moreau a écrit :
Si tu vises de faire du web, fais du web enfin ! Ça n'a rien
à voir avec le C. Et ça n'est vraiment pas un prérequis.



En quoi le C n'a rien à voir avec le Web ? On peut faire sans
problème du Web en C. Il y a même des cas où c'est considéré comme
incontournable (routeurs avec interface de configuration web par exemple).



OK, je suis effectivement allé trop vite. *À son niveau*,
s'il veut faire du web, ce n'est je pense pas vers le C
qu'il faut se tourner ( encore une fois, Python ? ).

--
Unix is simple. It just takes a genius to understand its simplicity
--Dennis M. Ritchie
Antoine Leca
Le #22160761
xtof.pernod écrivit :
[ K&R ]
Plus d'un le considère comme la bible du C.
Ne serait-ce que parce que c'est, par définition, le 1er.



Il n'y a rien d'évident à ce que ce fût le premier : après tout C a été
conçu en 1972, et le K&R1 a été publié en 1978.

De plus, la 1re version du K&R ne doit surtout pas être conseillée comme
unique livre pour apprendre le langage C aujourd'hui, car elle est très
déphasée avec la réalité d'aujourd'hui.

Et si tu considères la 2e version du K&R, celle de 1988, ce n'est plus
du tout le 1er bouquin écrit sur le langage...


J'ai vu que le
langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?



Le 1er est écrit à l'aide du 2ème.



Pas toujours : certains sont écrit avec Yacc, en C++, ou avec C# ;
d'autres le furent en assembleur, et je suis sûr qu'il y a plein
d'autres exemples. Dans tous les cas, cela n'a rien à voir avec le sujet
de ce groupe...


Antoine
FX
Le #22162611
heron maladroit a écrit :
Ne souhaitant pas passer trop de temps sur le langage C, ça fait 1 an
que j'ai commencé et je considère y donner encore 1 année de plus (à
raison de 4 à 8 heures par semaine)



Je trouve que ça fait déjà pas mal. Ca fait presque 80 journées de 8
heures en tout ! En école d'ingénieur, section informatique, je ne pense
pas avoir passé autant de cours sur le langage C. Mais on a eu d'autres
cours gravitant autour, et c'est plus difficile sans professeur pour
expliquer...


On
dirait que les grands éditeurs mettent en place des outils de
développement maison pour les appareils Androïd, iPhone...



Oui. Androïd, c'est du Java avec une API google. iPhone c'est de
l'Objective-C. Il y a aussi Windows Mobile en C/C++ et C#, je crois, qui
se rapprocherait plus de ce que tu connais.


Et également, j'utilise linux et je ne sais pas quel niveau en langage
C il faut pour apprécier plus en profondeur cet OS ?



Un bon niveau en C, et un très bon niveau en architecture des
ordinateurs et des OS en général.


J'ai vu que le
langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?



Je ne sais ce que tu entends par "pont", mais ce sont 2 langages très
différents. Je ne vois pas en quoi la connaissance de l'un peut t'aider
sur l'autre.


Je voudrais savoir si jusqu'à présent la "route" que j'ai choisie est
cohérente. Et surtout comment orienter la dernière année
d'apprentissage.



Impossible de répondre à cette question tant que tu ne sais pas
précisément ce que tu veux faire. Si tu t'orientes finalement vers du
dev python, ça fera peut-être beaucoup de temps perdu.


Dans un livre, j'ai pu voir la bibliothèque Glib.
J'ai trouvé que la programmation était assez différente de celle de
stdio, stdlib. Faudrait-il que je me consacre à cet bibliothèque afin
d'avoir une connaissance plus pratique de ce langage ?



La GLib est liée à GTK, une des multiples librairies UI existantes,
peut-être la meilleure en C pur. Mais je te déconseillerais d'utiliser
le C pour développer une application fenêtrée, car c'est l'un des
domaines où l'orienté objet est très utile. GTK/GLib utilisent une sorte
d'émulation des objets qui n'est à mon goût pas des plus didactiques.
Oriente-toi plutôt vers du C++ ou du Java (ou d'autres langages encore)
pour cela.
xtof.pernod
Le #22162851
Le 24/05/2010 08:59, Vivien Moreau a fait rien qu'à écrire :
On 2010-05-23, heron maladroit wrote:
Ne souhaitant pas passer trop de temps sur le langage C [...]


Alors, ça commence mal à mon humble avis. ;-)



+1 =)

je pense que ce n'est pas nécessaire de lire le K&R en
profondeur pour un niveau en C que je veux garder "basique".



Hum, en tant que débutant, j'ai bien l'impression que le K&R
*soit* la base.




En tant que redoublant, j'ai la nette impression que c'est *la*
référence..

Après, ça reste un bouquin: on aime, on aime pas.

C'est pas le dogme sur lequel on prête serment avant de
se voir consacré 'programmeur'.

En même temps, la phrase "Je programme en C et j'ai pas lu K&R",
ça sonne bizarrement..

En effet, étant comptable, je ne sais pas très bien à quoi le langage
C pourrait me servir concrètement. [...]



Pourquoi en fais-tu alors ?




Pour le fun, peut-être ?!

Ce qui me turlupine, c'est ces 2 phrases:
je pense que ce n'est pas nécessaire de lire le K&R





et

C'est bien de l'avoir sous le coude et par




moment pour voir un peu un style de programmation définitivement
brillant au niveau algorithmes.


Après, t'es pas obligé de le dévorer comme un furieux, une
petite lecture de temps en temps, bricoler un peu les exemples,
toussa..

C'est pas du temps de perdu, quelque soit ce que tu feras après.

(...)





--
christophe.
xtof.pernod
Le #22162841
Le 24/05/2010 12:02, Vivien Moreau a fait rien qu'à écrire :
On 2010-05-24, Mickaël Wolff wrote:
Le 24/05/2010 07:59, Vivien Moreau a écrit :
Si tu vises de faire du web, fais du web enfin ! Ça n'a rien
à voir avec le C. Et ça n'est vraiment pas un prérequis.



En quoi le C n'a rien à voir avec le Web ? On peut faire sans
problème du Web en C.





(Et inversement.)

Il y a même des cas où c'est considéré comme
incontournable (routeurs avec interface de configuration web par exemple).





Moyennement convaincant. Que représente l'interface de gestion
d'un routeur, qu'elle soit en vt-100, html, etc. par rapport au
logiciel de routage + services associés..

OK, je suis effectivement allé trop vite. *À son niveau*,
s'il veut faire du web, ce n'est je pense pas vers le C
qu'il faut se tourner ( encore une fois, Python ? ).



JS ? PHP ? Java ? Perl (nan je rigole, là) ?

Bref, en C on peut faire beaucoup de (bien belles =) choses, de
l'appliquette au système d'exploit'.

Après, c'est plus de l'affinité, du goût et des couleurs..

De toutes façons, il a bloqué ses prochaines 14 années, il a le
temps d'essayer et de tirer les conclusions qui lui iront bien.

--
christophe.
xtof.pernod
Le #22162921
Le 24/05/2010 14:16, Antoine Leca a fait rien qu'à écrire :
xtof.pernod écrivit :
[ K&R ]
Plus d'un le considère comme la bible du C.
Ne serait-ce que parce que c'est, par définition, le 1er.



Il n'y a rien d'évident à ce que ce fût le premier : après tout C a été
conçu en 1972, et le K&R1 a été publié en 1978.



Ben, si quelqu'un a réussi a écrire un bouquin sur le C, entre le
moment où il était dans le ciboulot des sus-cités K. et R., et le
moment où ils l'ont jugé suffisamment stable pour pondre leur doc'..

Je suis preneur, si tu as les ref's..


De plus, la 1re version du K&R ne doit surtout pas être conseillée comme
unique livre pour apprendre le langage C aujourd'hui, car elle est très
déphasée avec la réalité d'aujourd'hui.



Un bouquin -d'informatique- de 30 ans d'âge, déphasé ?!?
Pinaise, quelle époque on vit là.

Tu noteras qu'un algorithme, ça vieillit pas/ça reste valable,
et que leurs exemples peuvent être allègrement envoyé dans
tout compilateur supportant le 'niveau K&R'.


J'ai vu que le
langage Shell est quelque chose d'utile pour personaliser Linux. Y-a-t-
il un pont entre le Shell (un des shell) et le langage C ?



Le 1er est écrit à l'aide du 2ème.



Pas toujours : certains sont écrit avec Yacc,



*avec*. Ca génère quoi, yacc(1), d'après toi ?

en C++, ou avec C# ;



Alors là, chacun son auto-flagellation.

d'autres le furent en assembleur, et je suis sûr qu'il y a plein
d'autres exemples.
Dans tous les cas, cela n'a rien à voir avec le sujet
de ce groupe...



Ben, je te le fais pas dire =)

Antoine



(encore que: "Apprendre le langage C", c'est hors charte dans f.c.l.c ?)

--
christophe.
Publicité
Poster une réponse
Anonyme