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

débuter dans la programation

55 réponses
Avatar
-----------
Bonjour,

tout ce qui touche a l'informatique me passionne, aujourd'hui j'ai décider
de m'interresser à la programation.

Quelle conseil pouvez vous me donner ?

10 réponses

2 3 4 5 6
Avatar
blc
Marc Boyer wrote:

De quoi parlons nous quand nous parlons d'algorithmique ?
Tu devrais plutot dire de quoi parles *tu* qd *tu* parles d'algo...


Je ne parle pas de calcul de complexité. Pas besoin d'être
fort en math, mais besoin d'amadouer la logique informatique
à base de séquence/boucle/condition et calcul/affectation.
J'ai passe qques cours d'algo et je dois avouer qu'il ne contenaient pas

du tout la meme matiere que les tiens apparemment..;-)
Les miens etaient plutot prise de tete et ceux qui avaient pas fait de
maths avant (y'en avait pas) et ben ils se sont tous retames..;-)

Benoit

Avatar
Marc Boyer
blc wrote:
Marc Boyer wrote:

De quoi parlons nous quand nous parlons d'algorithmique ?
Tu devrais plutot dire de quoi parles *tu* qd *tu* parles d'algo...



C'est vrai.
Pour moi, l'algorithmique, c'est, dans un premier temps,
prendre un "langage algorithmique" simple et pédagogique,
avec les opérateurs séquence/choix/boucle ou récursion,
et découvrir comment résoudre avec des problèmes de base
(minimum entre deux données, minimum d'un tableau,
somme des entier de 1 à N, etc).

Je ne parle pas de calcul de complexité. Pas besoin d'être
fort en math, mais besoin d'amadouer la logique informatique
à base de séquence/boucle/condition et calcul/affectation.
J'ai passe qques cours d'algo et je dois avouer qu'il ne contenaient pas

du tout la meme matiere que les tiens apparemment..;-)
Les miens etaient plutot prise de tete et ceux qui avaient pas fait de
maths avant (y'en avait pas) et ben ils se sont tous retames..;-)


Et vous y faisiez quoi ? Complexité ? Terminaison et preuve ?

Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(


Avatar
Sinese
In article <3f71a74b$0$20648$, TheChameleon wrote:


Hola, mais tu en est déjà au deuxième semestre. Moi, je
parle d'une fonction qui retourne le min, le max et la moyenne
d'un tableau.
void stat(int* min, int* max, int* moy, int valeur[]);
procedure stat(min: out int; max: out int; moy: out int; valeurs: in int[])


plutôt au 24ième semestre, je dirais.
Le passage par pointeur est du 'in/out' et par copie du 'in' simple.
C'est pas tout à fait juste mais bon cela y ressemble.


Je ne suis pas tout a fait d'accord avec l'analogie.
void stat(int *min,int *max, int *moy,int valeur[]);
1. ne protege pas le contenu de valeur (contrairement ce que l'on pourrait
attendre)
2. protege min seulement dans ce cas min n'est que le contenant de ce qui
C'est a mon sens une "bidouille" pour modifier le contenu de min.

exemple:
void test(char t[]) {
t[0]= 'A';
}

void test2(int *i) {
i = (int *) malloc(sizeof(int));
printf("%pn",i);
}

int main () {
char t[1];
int *i;

t[0] = 'B';
printf("%cn",t[0]);
test(t);
printf("%cn",t[0]);

i = (int *) malloc(sizeof(int));
printf("%pn",i);
test2(i);
printf("%pn",i);

return 0;
}

--
sinese


Avatar
yoyo
Cela va pas être évident de faire une choix ?
Avatar
yoyo
Cela va pas être évident de faire un Choix ?
Avatar
blc
Marc Boyer wrote:
blc wrote:

Marc Boyer wrote:



Et vous y faisiez quoi ? Complexité ? Terminaison et preuve ?
Tout pleins de choses interessantes..;-)

Entre autres, algo des graphes, calculs de complexite, methodes algo...
Et franchement, pour faire 99% des programmes C que je connais, ca sert
pas a grand chose (ou alors, ca sert tellement que je ne m'en rends plus
compte...).

Benoit


Avatar
Bruno Desthuilliers
yoyo wrote:
Cela va pas être évident de faire une choix ?


Si : Python. Tu me remerciera quand, après avoir maîtrisé Python, tu

voudra attaquer le C.

Juste pour info : pour une appli Windows avec une interface graphique,
juste pour ouvrir une fenêtre blanche qui ne fait rien, compte une
centaine de lignes de code de C non standard.

En Python, tu peux obtenir la même chose en moins de dix lignes.

No comment...

Bruno

Avatar
Bruno Desthuilliers
blc wrote:
Bruno Desthuilliers wrote:

yoyo wrote:

"Manuel Leclerc" a écrit dans le


Certes, mais tu n'aura pas besoin du langage C à court terme.


Atrention. Je crois que le but est d'appprendre a programmer, pas un
langage en particulier...


Et alors ? Il faut bien commencer par un langage, non ?

Moi même qui suis programmeur de profession, je n'ai que rarement eu
l'usage du C dans mon boulot - même si c'est clairement un plus pour
moi d'avoir des bases dans ce langage.

Par contre, un ou deux langages 'de script' te seront *indispensables*
pour automatiser diverses tâches.


Une fois que l'on connait bien un langage suffisamment vaste, on n'a
aucun mal a apprendre un langage plus simple...


C'est très vrai. C'est pour ça qu'après avoir appris Python, langage de
haut niveau multi-paradigme (imperatif/fonctionnel et procedural/objet,
les deux grands axes), l'OP n'aura pas de difficultés majeures à
apprendre le C, langage de bas niveau, purement impératif et purement
procédural, dont la syntaxe est l'une des plus simples qui soient.

Python est beaucoup plus vaste, en tant que langage, que le C. Par
contre, étant de nettement plus haut niveau, il est plus simple d'abord,
puisqu'il n'est pas nécessaire de se confronter aux opérations de bas
niveau (gestion de la mémoire, pointeurs etc) que la simplicité (au sens
de 'très près de la machine' et sans aucun type de donnée complexe
préféini) du C impose.

Je ne peux que te recommander (encore plus vu les circonstances)
Python - qui est bien plus que seulement un langage de script mais
excelle dans ce rôle - et Perl, qui, bien que beaucoup moins
compréhensible, est devenu le 'couteaux suisse' des admins. AMHA
commence par Python, qui est un bon premier langage, te sera utile
professionnellement pour de l'administration (bien plus que le C) et
te permettra d'écrire des applications (des vrais, avec interface
graphique et tout) bien plus facilement que le C.


Commencer par un langage de script est a mon avis un erreur peu importe
ce que l'on souhaite faire.


Dis, tu connais Python ? Le fait qu'il excelle comme langage de script
ne l'empêche pas d'être un langage généraliste complet.
http://www.python.org

Les langages de script (la plupart) passent
sous silence la plupart des concepts fondamentaux de la programmation
(au sens large) comme les variables, le typage, la memoire...


Arf !

1/ Combien peux-tu me citer de langages de programmation dans lesquels
la notion de variable n'existe pas ?

2/ Le typage en Python est beaucoup plus fort qu'en C.

3/ La gestion manuelle de la mémoire n'est en rien un 'concept
fondamental' de la programmation. Il y a d'ailleurs relativement peu de
langages - et aucun langage un tant soit peu récent - où la gestion de
la mémoire soit à la charge du programmeur. Dis, pour les accès aux
périphériques, tu code tout à la main, ou tu demande à l'OS de s'en
charger, toi ?

Tu n'aurais pas un peu plus fondamental, comme 'concept fondamental de
la programmation' ? Je ne sais pas, moi, quelque chose comme le contrôle
de l'exécution (branchements, boucles, récursion etc), les opérateurs,
les fonctions, les structures de données (tuples, tables de hachage,
listes, arbre, graphe, ...), enfin des trucs qu'on utilise dans tous les
langages et sans lesquels il est a peu près impossible de programmer...
Non ?

Avec un
langage de script, on fait les choses vite et mal....


Ah bon ? Toi peut-être, mais ne généralise pas STP. Un programmeur
sérieux travaille sérieusement quelque soit le langage.

avec le C, qd ca
marche, c'est que c'est pas si mal, sinon, ca plante.


Alors là, je me gausse.

Le propre d'un UB, c'est que tout peut arriver - même que le programme
*semble* fonctionner. Le fait que le programme semble fonctionner n'est
en rien une preuve de correction. Quant à 'pas si mal', c'est une norme
de qualité que j'ignorais jusque là...

De mon experience, qd ca marche trop vite, on ne retient rien du tout...
Par contre, si ca plante et que l'on passe du temps dessus, une fois
trouvee l'erreur, on ne la refait plus et c'est uniquement comme ca que
l'on progresse.


"Uniquement" ? C'est peut-être ton cas, mais n'en fait pas une
généralité. Tout le monde n'est pas adepte de l'éducation anglaise !-)

Par contre, ce qui est sûr, c'est que pour la majorité des débutants, il
est déjà assez compliqué d'écrire un programme logiquement correct sans
avoir en plus à se soucier de la tuyauterie. Par contre, une fois qu'ils
ont fait cet apprentissage, la gestion des ressources n'est plus un
problème majeur.

Commencer par un langage "jouet" ne peut AMHA que donner
de mauvaises habitudes ("No-brain coding").



Avant de décrire Python comme un langage "jouet", utilise le pendant
quelques mois. On en reparlera à ce moment là. Ou va demander aux
développeurs de Zope pourquoi ils utilisent un langage "jouet" pour
développer un serveur d'application.

Quant aux mauvaises habitudes, on peut les prendre avec n'importe quel
langage. Encore une fois, c'est plus un problème de sérieux que de langage.

Bruno



Avatar
Manuel Leclerc

Juste pour info : pour une appli Windows avec une
interface graphique, juste pour ouvrir une fenêtre
blanche qui ne fait rien, compte une centaine de
lignes de code de C


Divise par deux ou trois, suivant que le code sera plus
ou moins tassé. 100 lignes, faut pas charrier non plus :-)

non standard.


<gilet en titane fluoro-carboné ON>
Comme chaque fois que le C sert à quelque chose.
<gilet en titane fluoro-carboné OFF>

manuel leclerc

Avatar
Bruno Desthuilliers
Manuel Leclerc wrote:


Juste pour info : pour une appli Windows avec une
interface graphique, juste pour ouvrir une fenêtre
blanche qui ne fait rien, compte une centaine de
lignes de code de C



Divise par deux ou trois, suivant que le code sera plus
ou moins tassé. 100 lignes, faut pas charrier non plus :-)


Bon, ok, en virant toutes les lignes blanches, et avec des lignes de
plus de 80 caractères, on doit pouvoir tasser ça en une quarantaine de
lignes... Faut juste pas vouloir relire !-)


non standard.



<gilet en titane fluoro-carboné ON>
Comme chaque fois que le C sert à quelque chose.
<gilet en titane fluoro-carboné OFF>


Heu... Entre du C POSIX et du C Windows, il y en a quand même un qui est
nettement plus près de la norme ANSI que l'autre, quand même...

<hs type='pedant'>
Tes tags ne sont pas du XML valide.
</hs>

Mais tu fais probablement bien de sortir le gilet pare-balle quand même !-)

Bruno


2 3 4 5 6