[Programmation] Votre methode pour apprendre?

Répondre
Partager Rechercher
Voila hum je m'étais mis il y a quelques moi à la programmation en C, j'avais du arrêter car j'aurais du travailler, mais comme je ne travail toujours pas, je m'y remet plus sérieusement, et la une question me taraude.

J'en suis au chapitre pour programmer des petites calculatrice (sur les cours du zero) et donc je souhaiterais savoir votre méthode pour apprendre , je précise cela fait maintenant 4 ans (ou 5) que je n'est pas été en cours, ma méthode pour l'instant c'est de recopier les pages sur un .txt et de faire les exercice plusieurs fois apres m'être tromper ou aider.

Comment apprenez vous ? Comment faire pour tout retenir ? (je n'oublies pas les bases évidement avec le printf , scanf et tout , mais j'ai parfois besoin de m'aider en lisant mes .txt ... ce n'est pas très reluisant je trouve.)

j'en suis à la :

#include <stdio.h>
#include <stdlib.h>

int main()
{

int resultat = 0, nombre1 = 0, nombre2 = 0;

Printf("Entrez le premier nombre : ");
scanf("%d", &nombre1);
printf("Entrez le second nombre : ");
scanf("%d", &nombre2);

resultat = nombre1 + nombre2;

prinf("%d + %d = %d", nombre1, nombre2, resultat);

return 0;

}

ce n'est donc que le début.
Message supprimé par son auteur.
Citation :
Publié par Erocdrah
Pour apprendre à programmer, déjà il faut commencer par les bases à savoir non pas un langage mais de l'algorithmique de base. (savoir ce qu'est une variable, une boucle, une condition, fonction, procédure, etc...)

Une fois que ceci est acquis se choisir un langage et honnêtement le C est un très bon langage mais pas vraiment adapté à un débutant (il y a eu déjà pas mal de débat sur le sujet donc je n'en dis pas plus).

Ensuite, pour réellement progresser la meilleure solution est d'avoir un projet en tête et de se donner les moyens de le réaliser, c'est dans les situations de réflexions et de problèmes que tu apprendras le mieux.

Faire des exercices/tutoriels ça montre très vite ses limites.

merci, mais ce n'est pas vraiment ce qu'il faut apprendre que je cherche , mais de la MÉTHODE dont vous vous êtes servis pour apprendre.

hs : ah bon le site du zero est limité ? :/ je comptais dabort le faire en entier puis ensuite trouvé un pdf sur le net ou me servir de mon livre "Le langage C++" mais j'ai quelques apprehension à apprendre ca car j'ai crus comprendre qu'il fallais bien connaitre le C avant de faire le C++ alors si le site du zero est limité ...
Citation :
Publié par Mr.Hide
merci, mais ce n'est pas vraiment ce qu'il faut apprendre que je cherche , mais de la MÉTHODE dont vous vous êtes servis pour apprendre.
Je recopiais les listings basic dans les magazines. Comme évidemment je faisais des erreurs en recopiant (ou parfois des typos dans le journal) ça ne marchait pas... Je cherchais donc à corriger et j'ai appris comme ça.

Copier Coller à proscrire donc si tu veux essayer cette méthode.

Une autre méthode que j'ai utilisée avec succès pour apprendre Perl c'est d'aller voir sur les newsgroup où les newbies posent des questions (comment transformer une chaîne en nombre etc...), je répondais et bien évidemment je me faisais engueuler par les pros parce que ma solution n'était pas ultime mais quand ils ont arrêté de gueuler j'ai estimé que je connaissais suffisamment le language.

Dès que tu connais plusieurs langages, le plus simple pour en apprendre un nouveau c'est de traduire une application d'un langage que tu connais dans le nouveau.

Une fois que tu connais un peu et que tu t'es creusé les méninges lis un bon bouquin sur la question.
Je dirais que commencer par les opérateurs arithmétiques et apprendre ce que sont les variables par ce biais, c'est un bon début, ça te permet de saisir leur mode de fonctionnement même si c'est basique.

Ensuite les conditions, qui te permettent en gros d'indiquer quelle partie du code tu comptes exécuter pour une situation donnée ( if, switch case ...), conditions imbriquées après pour bien en saisir le fonctionnement.

Tu poursuis par les boucles, qui en gros ne font que répéter une partie de ton code tant qu'une condition est respectée. En même temps il te sera utile de voir ce que sont les tableaux en programmation à ce moment là. Une fois que tu en seras à ce stade, tu pourras commencer à faire des petits programmes sympatoches.

Pour progresser, pas de secret, faut pratiquer. Si tu oublies de la syntaxe, ne t'en fais pas, tant que tu n'as pas quelques heures de travail avec un langage ça s'oublie assez vite ( d'ailleurs si tu ne le pratique pas pendant une certaine période et que tu es sur un autre langage entre temps, ça s'oublie tout aussi vite ... ).

Le langage au final importe peu, c'est surtout que tu dois acquérir une certaine méthodologie pour mettre en application une solution logique à ton problème, donc ne t'en fais vraiment pas si tu dois jeter un coup d'oeil de temps à autre à ton cheat.txt il faut justement ne pas se gêner à le faire, c'est pas un travail de mémoire mais de logique.

Sinon un petit conseil, sous Windaube, Notepad++ est pas mal pour débuter en programmation ( coloration de la syntaxe pour te repérer plus facilement,onglets pour naviguer plus facilement parmi tes fichiers texte, enfin je dis ça si tu bosses sous Bloc-notes )

Voilou, bon courage.

Edit: Bon désolé je répondais pendant ta deuxième intervention, du coup le début passe à la trappe
merci pour vos conseil je vais m'y remettre de suite.

et quand je disais que je recopiais c'etais pas du Copier/coller mais bien de l'ecriture qui me prennais une bonne heure facilement.


(en plus j'avais peur que comme j'ai arreter les cours en seconde je ne pourrais jamais programmer, vus que c'est pour les etudes de haut niveau )

oui j'ai notepad ++ mais j'utilise en faite Code::BLocks
perso mon prof était une vrai bille alors j'ai loué un livre sur le turbopascal à l'époque. J'ai tout appris seul dans ce bouquin.
Tout se faisait en console et mes applis ne servaient qu'à moi-même.
Alors j'ai voulu faire des sites web pour montrer mon taf à tout le monde et j'ai appris le PHP tout seul sur internet.
Puis j'ai appris l'orienté objet sur internet aussi.
Maintenant les entreprises me payent pour ça. Je ne me suis jamais servi de mon diplôme
Citation :
Publié par Corten
perso mon prof était une vrai bille alors j'ai loué un livre sur le turbopascal à l'époque. J'ai tout appris seul dans ce bouquin.
Tout se faisait en console et mes applis ne servaient qu'à moi-même.
Alors j'ai voulu faire des sites web pour montrer mon taf à tout le monde et j'ai appris le PHP tout seul sur internet.
Puis j'ai appris l'orienté objet sur internet aussi.
Maintenant les entreprises me payent pour ça. Je ne me suis jamais servi de mon diplôme

merci maintenant je suis convaincu qu'ont peut apprendre la programmation seul

la par contre j'ai un probleme , j'ai voulus refaire (une 6ieme fois) sans aide une petite calculette et j'ai une erreur sur le printf que je ne comprend pas...

Code:
#include <stdio.h>
#include <stdlib.h>

int main()

{

int resultat = 0, nombre1 = 0, nombre2 = 0.

printf("Bienvenue de mon premier programme intituler Calculatrice V0.1 !\n"); erreur

printf("Veuillez entrer votre premier nombre : "); erreur

scanf("%d", &nombre1);

printf("Veuillez entrer votre deuxieme nombre : ");

scanf("%d", &nombre2);

resultat = nombre1 + nombre2;

printf("Le resultat de votre operation : %d + %d = %d\n\n\n", nombre1, nombre2, resultat);

return 0;

}
je ne comprend pas ou est mon erreur, j'ai bien marqué tout comme il fallait , non?

[edite] ah oui j'ai mis un point a la premiere ligne au lieu d'un point-virgule.
"int resultat = 0, nombre1 = 0, nombre2 = 0."
Bob a tout dit.

Tu commences par de l'algo (rien à apprendre à part les mots de liaison (je sais pas comment on appelle ça)), c'est que de la logique. Si tu raisonnes assez facilement ça passera tout seul en réfléchissant un peu, sinon faudra refaire et refaire des exos (comme en maths, mais c'est moins abstrait l'algo). T'as les conditions, les boucles, les tableaux, ... avec ça tu peux faire quelques trucs basiques mais sympa.

Ensuite tu prends un langage (C, Java, etc) pour traduire ton algo de façon à ce que l'ordinateur puisse le lire. Pareil y'a des mots de liaison (souvent les mm qu'en algo mais en anglais) à apprendre et quelques règles de mises en forme, mais c'est tout. Avec Notepad++ (coloration et mise en forme) ou mieux un IDE genre NetBeans pour Java (indique les erreurs dans le code), ça passe tout seul. Tu peux même vérifier que ton algo est bon.

Après c'est sûr qu'apprendre en autodidacte ça doit pas être évident pour la méthodologie.


Edit : je connais pas le C donc je sais pas, y'a pas un IDE qui pourrait t'indiquer où ça coince et pourquoi ?
Parce que la ton programme est vraiment pas compliqué. Imo c'est pas bien de faire directement du C, faudrait vraiment passer d'abord par l'algo (au moins dans ta tête) pour être sur de piger ce que tu fais et comment tout fonctionne et le traduire ensuite.

En algo ça donnerait ça :

Code:
Debut

VAR nb1, nb2

afficher("Saisir un premier nb :")
saisir(nb1)
afficher("Saisir un second nb :")
saisir(nb2)

afficher("Résultat :" ,nb1 + nb2)

Fin
C'est vraiment tout con et ça se traduit en 5min en Java par exemple, un langage assez facile d'accès.
Parce que la c'est vraiment la base, y'a pas de conditions, de boucles, etc.
oui il faudrais que je trouve un bouquin d'algorithme

sinon j'ai trouvé l'erreur (une erreur idiote , je ne la voyais pas avant d'avoir tout recopier sur jOl) par contre je ne comprend pas pourquoi l'erreur etait signaler sur les lignes printf...

edit: ah oui en effet ! l'algo a l'air vraiment simple
C'est pour ce genre d'erreur (oublie d'une virgule, d'une fin de condition, d'une variable non déclarée ou mal utilisée, etc) qu'un IDE est indispensable.

Quelqu'un ici devrait pouvoir t'en conseiller un bon et gratuit pour C.
Citation :
Publié par Raizin
C'est pour ce genre d'erreur (oublie d'une virgule, d'une fin de condition, d'une variable non déclarée ou mal utilisée, etc) qu'un IDE est indispensable.

Quelqu'un ici devrait pouvoir t'en conseiller un bon et gratuit pour C.

code::block n'est pas bon?
il faut pas te limiter au sdz. la clairement tu devrait chercher un cours d'algorithmique. cadeau

et oui tu va peut être trouver ça trèèès chiant mais faut y passer parce que c'est la base d'un programme
Citation :
Publié par Mr.Hide
code::block n'est pas bon?
Code blocks est un bon IDE léger.

A vrai dire, le notepad++ suffit aussi, tu compile en ligne de commande et tu as les erreurs sur ton terminal / Fake truc en bois sous windows. Cependant un IDE comprend tout les outils necessaires donc il vaut mieux passer par là.

Je te déconseille honnêtement le C. C'est un peut être le langage historiquement de base, mais d'autres langages plus faciles d'accès tels que Java te cachent pas mal de complications dues au fait que le C est un langage bas niveau*.
Parce que commencer l'objet avec C++... bon t'en est certes pas encore là, mais le C++ est une belle horreur syntaxique.

*langage bas niveau : directement traduit en langage machine, au contraire d'un langage haut niveau faisant appel à d'autres composants pour fonctionner.
Je te déconseillerais aussi le C... c'est un langage de référence, mais dès que tu vas l'attaquer un peu plus en profondeur, tu vas avoir droit à des erreurs tout bonnement incompréhensibles alors que ton algo sera parfaitement juste ; du moins, c'est ce que j'avais pensé à l'époque où j'ai découvert les pointeurs...

Je vais sûrement me faire taper dessus, mais je te conseille plutôt de switcher vers Java ; je n'aime pas spécialement et je trouve ça affreusement lent, mais il existe de bons IDE pour t'assister, c'est un des plus faciles pour apprendre l'orienté objet et tu ne te casseras pas la tête sur la gestion de la mémoire comme sur les langages de plus bas niveau.

Cela dit, tu peux très bien continuer en C le temps d'apprendre les bases (fonctions & procédures, conditions, boucles etc.).
le C c'est tres bien pour apprendre tout en prenant de bonnes habitudes : le langage est tres strict, donc a la moindre bourde ca coince. A l'inverse d'autres langages ou tu peux faire des "erreurs" qui seront corrigées par le compilo.

Sinon a la limite, tu pourrais aussi faire du C sans les libs, ca fait faire pas mal d'algo, et ca aide a comprendre le fonctionnement du langage.
Citation :
Publié par Mr.Hide
la par contre j'ai un probleme , j'ai voulus refaire (une 6ieme fois) sans aide une petite calculette et j'ai une erreur sur le printf que je ne comprend pas...
Une fois que ça marche bien tu peux l'améliorer en cherchant à recommencer sans relancer le programme

Citation :
Voulez vous faire une autre opération ? (O/n)
Si l'utilisateur appuie sur Entrée ou sur o ou O il pourra recommencer sinon le programme s'arrêtera.
Citation :
Publié par Arendallan
Parce que commencer l'objet avec C++... bon t'en est certes pas encore là, mais le C++ est une belle horreur syntaxique.

oui c'est ce que j'avais crus comprendre du coup j'hésite sur le C++...

*langage bas niveau : directement traduit en langage machine, au contraire d'un langage haut niveau faisant appel à d'autres composants pour fonctionner.
oui j'ai eu la définition chez les zéro

Citation :
Publié par Manserk
il faut pas te limiter au sdz. la clairement tu devrait chercher un cours d'algorithmique. cadeau

et oui tu va peut être trouver ça trèèès chiant mais faut y passer parce que c'est la base d'un programme
merci, je vais le consulter.

Citation :
Publié par Locke / Rezard
Je te déconseillerais aussi le C... c'est un langage de référence, mais dès que tu vas l'attaquer un peu plus en profondeur, tu vas avoir droit à des erreurs tout bonnement incompréhensibles alors que ton algo sera parfaitement juste ; du moins, c'est ce que j'avais pensé à l'époque où j'ai découvert les pointeurs...

Je vais sûrement me faire taper dessus, mais je te conseille plutôt de switcher vers Java ; je n'aime pas spécialement et je trouve ça affreusement lent, mais il existe de bons IDE pour t'assister, c'est un des plus faciles pour apprendre l'orienté objet et tu ne te casseras pas la tête sur la gestion de la mémoire comme sur les langages de plus bas niveau.

Cela dit, tu peux très bien continuer en C le temps d'apprendre les bases (fonctions & procédures, conditions, boucles etc.).
la base est à peut prêt identique pour chaque langage ?

Citation :
Publié par Malka
le C c'est tres bien pour apprendre tout en prenant de bonnes habitudes : le langage est tres strict, donc a la moindre bourde ca coince. A l'inverse d'autres langages ou tu peux faire des "erreurs" qui seront corrigées par le compilo.

Sinon a la limite, tu pourrais aussi faire du C sans les libs, ca fait faire pas mal d'algo, et ca aide a comprendre le fonctionnement du langage.
le fait que la moindre erreur est sanctionner ne me dérange pas trop, car je trouve ca assez normal mais c'est vrais qu'a force ca risque peut-êtres de devenir lassant (d'êtres coincer tout le temps) , seulement pour l'instant je n'est tester que le C : il y a python, java et delphi (jai le Delphi 2 en livre mais il me semble que ca date).
Aussi qui m'intéresse mais a part pour java j'ai pas trouvé de site qui m'ont donné envie.

et puis j'aime ce que je fais en ce moment

autre question pour malka : connais tu un site pour que je vois ce que ca donne de programmer sans libs ? car sur le site du zero il n'y a pas marquer.
Citation :
Publié par Mr.Hide
la base est à peut prêt identique pour chaque langage ?
Exactement, seule la syntaxe peut varier mais au final pour les langages de haut niveau les bases sont pareilles, la programmation orientée objet également, mais je pense que pour l'instant ce n'est pas encore approprié de t'en parler, tu as un petit chemin à faire avant

Avant de faire de l'oop je pense que ça pourrait être un + que tu t'intéresse à la persistance des données ( sauvegarde/lecture dans une base de données ou dans un fichier par exemple) vu qu'en oop ça change encore une fois à haut niveau.

Enfin bref concentre toi sur un langage dans un premier temps histoire de voir les rudiments. Java est très bien, mais quand tu feras des printf ça te semblera bizarre et tu ne sauras peut être pas de suite pourquoi on fait comme ça
Citation :
Publié par Bob Loblaw
Exactement, seule la syntaxe peut varier mais au final pour les langages de haut niveau les bases sont pareilles, la programmation orientée objet également, mais je pense que pour l'instant ce n'est pas encore approprié de t'en parler, tu as un petit chemin à faire avant .
Qu'est ce qu'il ne faut pas lire.

Tu prends Haskell, Python et Scala, ça n'a rien à voir. Des philosophies totalement différentes, quasiment rien en commun. Et j'ose même pas rajouter Scheme à la liste…
Ceux qui lui conseillent Java à la place de C pour sa prétendue accessibilité, faut vous réveiller 3 secondes. Python ou Ruby, ok, mais Java...c'est tellement 00's

A titre personnel, je te conseille Ruby, c'est une des plus belles syntaxes que tu pourras trouver, l'OO est très propre, et la densité du code est élevée. Parfait pour commencer, si tu tiens absolument à vouloir faire directement du haut-niveau OO. Sinon, C.
Comme déjà dit par quelqu'un, pas besoin d'avoir fait des études pour apprendre la programmation. Je viens d'entrer en 1ère année de licence Maths-Physique-Informatique (MPI), et ma scolarité passée ne m'a servi à (quasiment) rien pour l'informatique. De plus, pour une 1ère année, c'est affreusement lent, 1 semaine sur le site du zéro correspond à un semestre de cours+TP.

Ma méthode pour apprendre, c'est tout simplement la pratique: créer des programmes, puis chercher à les complexifier, voir qu'on pouvait simplifier un passage, ect... Chercher les erreurs des autres est aussi très instructifs. Par contre il te sera nécessaire d'apprendre l'algorithme pour les moments où tu souhaiteras créer des programmes plus complexes.

Bonne chance .
Citation :
Publié par Tzioup
Ceux qui lui conseillent Java à la place de C pour sa prétendue accessibilité, faut vous réveiller 3 secondes. Python ou Ruby, ok, mais Java...c'est tellement 00's

A titre personnel, je te conseille Ruby, c'est une des plus belles syntaxes que tu pourras trouver, l'OO est très propre, et la densité du code est élevée. Parfait pour commencer, si tu tiens absolument à vouloir faire directement du haut-niveau OO. Sinon, C.
Java c'est en constante évolution et utilisé par une majorité de programmeurs.
Si y'a un langage has been, c'est bien C. Faudrait plutôt s'orienté vers C# voir C++ pour un langage récent.
Python, et surtout Ruby, ça me semble un peu marginal.

Mais l'OP veut juste apprendre à programmer, et Java c'est simple, y'a de très bons EDI et une large communauté.


Sinon j'ai zieuté le tuto d'algo, ça a l'air vraiment bien, même un poil trop massif à mon goût. ^^ Par contre y'a des exos pour illustrer les cours. https://jolstatic.fr/forums/jol/images/icons/icon14.gif
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés