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

Apprendre le langage C et quelques questions

89 réponses
Avatar
heron maladroit
question :

Ne souhaitant pas passer trop de temps sur le langage C, =E7a fait 1 an
que j'ai commenc=E9 et je consid=E8re y donner encore 1 ann=E9e de plus (=
=E0
raison de 4 =E0 8 heures par semaine), je pense que ce n'est pas
n=E9cessaire 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=E9finitivement
brillant au niveau algorithmes.

En effet, =E9tant comptable, je ne sais pas tr=E8s bien =E0 quoi le langage
C pourrait me servir concr=E8tement. 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=E9, trouver un travail dans ce domaine en qualit=E9
d'autididacte. Peut-=EAtre je peux envisager d'=E9crire des petites
applications sur des appareils mobiles ou des applications web ? On
dirait que les grands =E9diteurs mettent en place des outils de
d=E9veloppement maison pour les appareils Andro=EFd, iPhone...

Et =E9galement, j'utilise linux et je ne sais pas quel niveau en langage
C il faut pour appr=E9cier 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=E8s de me consacrer au C++. Mais je souhaite avant
consolider les bases et les aspects un peu d=E9licats de ce langage
assez =E9prouvant =E0 apprendre (mais j'ai commenc=E9 avec beaucoup de
sacrifices sur les loisirs, la vie de famille etc et je ne ferais pas
machine arri=E8re). Je garde professionnellement la t=EAte hors de l'eau,
je donne la priorit=E9 pour gagner de l'argent mais c'est beaucoup
d'=E9nergie... C=F4t=E9 francophone, l'initiative d'entreprendre et
=E9galement d'apprendre n'est pas tant encourag=E9e. Malheureusement, on
voit le r=E9sultat ; l'=E9tat en France pr=E9f=E8re une distribution Linux
anglo-saxonne au d=E9pit de Mandriva....C'est un autre d=E9bat.

Je voudrais savoir si jusqu'=E0 pr=E9sent la "route" que j'ai choisie est
coh=E9rente. Et surtout comment orienter la derni=E8re ann=E9e
d'apprentissage. Dans un livre, j'ai pu voir la biblioth=E8que Glib.
J'ai trouv=E9 que la programmation =E9tait assez diff=E9rente de celle de
stdio, stdlib. Faudrait-il que je me consacre =E0 cet biblioth=E8que afin
d'avoir une connaissance plus pratique de ce langage ? Ou est-ce que
c'est r=E9server =E0 un usage niveau expert du langage C, qui ne serait
pas tr=E8s "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=E9resseraient =E9galement.
Avant, je consid=E8re passer approximativement le double du temps que
j'ai pass=E9 =E0 apprendre le C sur le C++ afin de comprendre la POO. Je
ne sais pas si c'est coh=E9rent.

Merci pour vos conseils (on dirait que ce groupe est de moins en moins
anim=E9 - faut-il s'exprimer en anglais pour retrouver les experts de ce
forum...)

10 réponses

1 2 3 4 5
Avatar
espie
In article <4bfaf578$0$2994$,
xtof.pernod wrote:
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..



Non, c'est "je fais du C a titre professionnel et je n'ai jamais regarde
la norme ISO". Ca, c'est bizarre (et helas trop frequent, si j'en juge
au code que je lis regulierement a droite a gauche)
Avatar
Antoine Leca
Marc Espie écrivit :
In article <4bfaf578$0$2994$,
xtof.pernod wrote:
En même temps, la phrase "Je programme en C et j'ai pas lu K&R",
ça sonne bizarrement..





Cela revient à dire qu'il y a d'autres livres qui peuvent prétendre au
titre de référence auto-suffisante...


Non, c'est "je fais du C a titre professionnel et je n'ai jamais regarde
la norme ISO". Ca, c'est bizarre (et helas trop frequent, si j'en juge
au code que je lis regulierement a droite a gauche)



En même temps, l'un des objectifs de la 2e version du K&R, c'était
justement de former des programmeurs sans les obliger à se taper la
totalité de la norme ISO et ses détails ; et pour le coup, je trouve que
c'est plutôt réussi... De plus, c'est traduit dans beaucoup de langues.

Maintenant, je suis d'accord avec toi pour dire que si un programmeur
professionnel cherche à lire quelque chose sur C, il devrait aborder le
texte de la norme ; et trop souvent on voit des programmeurs faire
l'impasse là dessus, et effectivement ce n'est pas normal.


Puisqu'on est sur ces deux textes, un des gros avantages ÀMHA de K&R sur
d'autres ouvrages de formation au C, c'est qu'il n'a été écrit en
suivant de près la norme (on sent que le texte original est de BWK, pas
de DMR), et en conséquence la lecture ultérieure de la norme va apporter
un éclairage différent et très enrichissant (ÀMHA).


Antoine
Avatar
Antoine Leca
FX écrivit :
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.



Heu... il n'y a plus ni TP ni exercices personnels en école d'ingénieurs
ce siècle-ci ?
<PERSIFLEUR>
M'étonne pas que le niveau baisse !
</PERSIFLEUR>


Antoine
Avatar
Marc Boyer
Le 23-05-2010, heron maladroit a écrit :
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.



Es-tu le "bpascal123", lui aussi comptable, qui demandait de
l'aide en septembre 2009 ?

Ayant été enseignant (de C, entre autre), il me semble qu'avant
toute chose, il faudrait définir les objectifs avant les moyens.
Dans l'enseignement supérieur, on fait des cours de C pour des
informaticiens, pour des mécaniciens, pour des ingés généralistes,
et ce ne sont pas les mêmes.

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.



Faut être clair: un niveau "débutant" en informatique, c'est un
DUT, BAC+2. On arrive à le faire tenir en un an, mais ça représente
quand même environ 600h de cours, sans parler du temps "maison".
A mon sens, l'époque des années 80 où savoir coder dans un
ou deux langages permettait de trouver du boulot est révolue.

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...



Pourquoi pas ? Sur le web ou les mobiles, il existe peut-être
encore un marché où une bonne idée prime sur les compétences
en dev. Sur les mobiles, le marché débute, il y a des places
à prendre. Sur le WEB, ça me paraît plus rude...

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 ?



Ben, ça va de grand débutant "oh, il y a des fichiers .h dans le
noyau linux" à expert "tel truc ne fonctionnera pas sur telle archi"
(en prenant en compte qu'à ma connaissance, Linux n'est pas
écrit en C89 ni C99, mais en gcc-C, qui n'est pas exactement du C)

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 ?



Ce sont tous les deux des langages de programmation. Ils utilisent
des mots clef communs (if, for, while)... A part ça...

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++.



Je conseillerais plutôt C++ puis C de nos jours, mais bon.

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).



Connais tu le principe du "piège abscon", dit aussi "théorie de
l'engagement" ?

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...



Et commencer par le C ne me semble pas forcément la meilleure idée
en plus pour gagner de l'argent sans avoir trop de temps à y passer.
Le C est un langage "bas niveau". On utilise le C, en général, pour
avoir accès à des mécanismes d'OS, où de la performance, où de
la portabilité sur des archis bizarres, enfin, plein de domaines
où, pour programmer, il faut *aussi* des connaissances dans
d'autres domaines (archi, OS).

Côté francophone, l'initiative d'entreprendre et
également d'apprendre n'est pas tant encouragée.



Oui, c'est pas comme si on avait des dispositifs commes les CIF,
des formations universitaires gratuites, etc.

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



Cohérente, oui. Efficace, je ne sais pas. Ca dépend des objectifs,
et ils ne sont pas très clairs.

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 ?



Non. Etudier cette bibliothèque ne sert qu'à utiliser cette bibliothèque.
Et tes seules cibles désignées sont Android et iPhone.

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.



Je ne sais pas. Le C reste très "technique". Modulo les pb de
portabilité (que je ne néglige pas), il y a un côté "ça marche
ou ça plante".
La POO essaye d'aborder des questions de "style", d'architecture,
qui peuvent être plus difficile à apprendre sans le retour d'une
personne d'expérience.

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...)



Je crois surtout que Usenet est en perte de vitesse, par rapport
à des forums WEB.
Mais le niveau technique reste très elevé ici, les gens y sont polis,
il n'y a pas besoin de s'inscrire, plein de choses qui me font rester.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
PIGUET Bruno
Le Mon, 24 May 2010 09:24:20 +0100, Mickaël Wolff a écrit :

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.



Un lien à ce sujet :
http://norvig.com/21-days.html

Désolé, c'est en anglais. Mais le contenu est intéressant.

Bruno.
Avatar
Antoine Leca
Marc Boyer écrivit :
A mon sens, l'époque des années 80 où savoir coder dans un
ou deux langages permettait de trouver du boulot est révolue.



Cela l'était déjà (révolue) en 1988 en France. Ce qui n'a pas empêché
quelques années après de voir l'explosion du web et du .com, où il ne
fallait pas beaucoup de connaissances prouvées pour devenir webmestre...


Antoine
Avatar
Marc Boyer
Le 25-05-2010, Antoine Leca a écrit :
Marc Boyer écrivit :
A mon sens, l'époque des années 80 où savoir coder dans un
ou deux langages permettait de trouver du boulot est révolue.



Cela l'était déjà (révolue) en 1988 en France. Ce qui n'a pas empêché
quelques années après de voir l'explosion du web et du .com, où il ne
fallait pas beaucoup de connaissances prouvées pour devenir webmestre...



Fin des années 90, une jolie démo d'applet permettait de trouver
un premier job d'après des amis de l'époque (mais qui savaient
programmer en C aussi).

Quoi qu'il en soit, pour notre comptable en auto-formation, le
C ne me semble pas la révolution technique qui fera baver
un recruteur en 2010.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Marc Boyer
Le 24-05-2010, FX a écrit :
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...



Vous avez peut-être pas commencé avec le C comme premier langage
d'ailleurs. Le pb de l'OP, c'est qu'il découvre la programmation
et le C en même temps, sans autre aide que les forums, les bouquins
et son PC...

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
debug this fifo
FX wrote:


> 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,



mais peut etre utilisée indépendement de Gtk.
Avatar
Antoine Leca
Marc Boyer a écrit :
Le 25-05-2010, Antoine Leca a écrit :
Marc Boyer écrivit :
A mon sens, l'époque des années 80 où savoir coder dans un
ou deux langages permettait de trouver du boulot est révolue.


Cela l'était déjà (révolue) en 1988 en France. Ce qui n'a pas empêché
quelques années après de voir l'explosion du web et du .com, où il ne
fallait pas beaucoup de connaissances prouvées pour devenir webmestre...



Fin des années 90, une jolie démo d'applet permettait de trouver
un premier job d'après des amis de l'époque (mais qui savaient
programmer en C aussi).



Cela semblerait contredire ce que tu écrivis ci-dessus (et confirmer ce
que je disais).


Quoi qu'il en soit, pour notre comptable en auto-formation, le
C ne me semble pas la révolution technique qui fera baver
un recruteur en 2010.



Voui, j'ai aussi cette impression ; dans le même temps, je me rappelle
de certaines annonces en 1996 qui cherchaient des programmeurs avec
5 ans ou plus d'expérience Java (comique lorsqu'on y regarde de près) ;
ou encore d'un recruteur qui cherchait un programmeur C++, et qui
lorsque j'ai précisé que je ne connaissais que C m'a dit « mais c'est
pareil, c'est exactement ce que je cherche » (OK, il y avait d'autres
éléments de mon CV qui l'intéressait ;^) )


Antoine
1 2 3 4 5