salut

Je suis intéréssé par la programmation et j'aurais voulu saoir si il y avait un langage a me recommander pour bien commencer
Salut,

excellente initiative, et on ne peut que t'encourager 🙂

NVClock est écrit en C ; il faudra maîtriser les bases de ce langage.
Ensuite tout dépend des fonctionnalités que tu souhaites ajouter à ce programme :
- modifier l'interface associée : auquel cas il faudra jeter un coup d'oeil à la bibliothèque GTK ;
- toucher aux « fondements » : il va falloir, je pense, des notions de programmation X.

Un premier pas, si tu souhaites un livre : « Programmer en langage C », de Claude Delannoy.
Sans compter les nombreux tutoriaux que tu trouveras sur le net ; entre autres :
http://c.developpez.com/cours/
Nvclock ne possède pas d'interface graphique tout se fait par le terminal
donc vous coneillez plus le C (sans dénigrer le python)
Pour la simplicité et la concision de sa syntaxe, la beauté de la récursivité, la classe d'un langage fonctionnel, le langage le plus agréable du monde : Caml.
Il y a bien une interface (je rajoute d'ailleurs que tu as le choix entre une interface GTK et une QT [pour ce dernier cas, c'est C++, mais visiblement l'interface n'est pas ta priorité 😉]) : tu peux le vérifier dans les sources, c'est indiqué dans le fichier README.


ÉDIT : si tu n'as pas de notion particulière programmation, se faire la main avec C n'est pas une mauvaise chose (bien des apprentis développeurs ont débuté avec C, même si moi c'est avec ma calculatrice programmable :-D). Tu peux aussi jouer au début avec des langages interprétés (Python a été évoqué, Perl aussi, voir bash).
Si j'étais méchant (non, très méchant), je te pousserais à ADA (l'avantage c'est que tu pourras te vanter de faire rouler des TGV avec :hammer:).
voyez vous une objection si commence les deux langage,les resumé de la FNAC sur
"Programmer en langage C" de Claude Delannoy et "Apprendre à programmer avec Python" de Gérard Swinnen
sont très alléchant

pour etre franc je ne sais pas lequel choisir de peur de rater quelque chose
si un prof d'informatique pouvez donner son avis
Sans hésiter, le « Delannoy » : M. Delannoy est un auteur réputé programmé d'ouvrages didactiques consacrés à la programmation (j'ai appris Java et la programmation objet avec son livre « Programmer en Java ») : les livres sont épais (quoiqu'il y ait des éditions de poche), pas donnés (~ 35 €, mais ces livres valent ce qu'ils valent 🙂), mais tu n'es pas obligé de tout lire d'un coup. C'est très bien fait pour les débutants !

(je ne suis pas prof' d'info. [pas encore ? :lol:], mais il est souvent cité par les prof. concernés).
une autre question qui me fait honte
j'ai une équivalence bac littéraire faut-il revoir un peu les math?
Tu n'as pas absolument pas à avoir honte de cela, au contraire !
Pour les maths ? Non, pas spécialement (un peu d'arithmétique néanmoins, au pire [et encore !] de l'algèbre linéaire pour les cas de force majeure :lol:)... Sauf si tu as démissionné au moment des divisions à virgule :hammer: !
Apprendre à programmer avec Python
L'ancienne version du livre est dispos en libre, tu peux le télécharger dans le lien que j'ai donné plus haut pour te faire une idée.
http://python.developpez.com/cours/TutoSwinnen/ et tu trouveras aussi pas mal de bouquins en suivant lelien de Pikachu.
:roll: bien que les arabes aient fait avancer les math en inventant le zéro
moi je tourne autour
Je ne partage pas vraiment les recommandations précédentes (Python? le C en direct?).

Java est sans doute le choix d'entrée le plus cohérent, notamment parce que le langage est sans doute moins permissif, plus structuré que le C (bonjour la redéfinition des types, la gestion permissive des pointeurs, les conditions de portabilité malloc(sizeof(integer)), le code imbuvable ...) tout en étant fort bien documenté.

C'est un début efficace dans un langage structuré, permettant une approche objet.
Je me permets de faire objection face à cette remarque néanmoins justifiée.
La plupart des langages de programmation impérative comprennent « le minimum vital » pour débuter l'algorithmique (sans quoi ils n'auraient aucun intérêt, c'est presque une lapalissade) :
- gestion de variables (typées ou non), y compris tableaux ;
- structures conditionnelles (if-then-else) ;
- structures de boucles (for et while) ;
- récursivité ;
- sans oublier la possibilité d'afficher les résultats (y a pas de raison qu'on ne voit pas ce qui se passe :-D).
De ce point de vue, a priori tout langage satisfaisant ce minimum peut être utilisé pour débuter (C [sans toucher à l'allocation dynamique ni aux pointeurs et encore moins aux appels système], Java [en se limitant à la classe principale], Python y tutti quanti, même ADA, même bash et ses avatars ; quant à Logo, ça reste à discuter [les années 80, soupir :lol:]) ; le reste n'est que syntaxe.

On pourrait aussi discuter des spécificités liées à chaque langage pour de la programmation « plus poussée » ; je pourrais ainsi dire que Java --- de par sa nature de langage (preque) complètement orienté objet (le « presque » because of les types « reliquats » bool, int, float et double) --- pourrait être déroutant pour un débutant.
Je pourrais ajouter aussi que nombre d'ouvrages recommandent d'avoir des notions de programmation impérative avant de s'attaquer à Java (de part son objectitude) et en général à la P.O.O. (noter tous les conditionnels dans ce paragraphe). Et on pourrait exhumer ces supposés « défauts » dans tous les langages (même en ADA).

Ceci dit, le problème primordial reste de maîtriser les bases de l'algorithmique. Libre à chacun ensuite d'« exprimer » ce qu'il a assimilé dans le(s) langage(s) de son choix (même en ADA c'est permis :-D), et en fonction de ses besoins (la multitude de langages existants n'est pas due à une volonté occulte de pourrir la vie des développeurs, n'est-ce pas ?). Et pourquoi pas de passer à la programmation fonctionnelle (lisp et ses déclinaisons, caml...) et/ou objet (C++, plus souple que C tout de même, Java, OCaml, même Perl, Python ET ADA).

Ceci dit (bis), si l'objectif à moyen terme de rookie est de désosser NvClock, C. Et puis n'est-ce pas Le langage dédié pour UNIX (argument d'autorité à 2 balles) ?
Avant d'entamer la programmation, commencez par etudier les algorithmes, en commencant par les tris de base (tri par insertion, tri en bulle/par permutations, tri fusion, tri en tas, quick sort, etc.). Puis petit a petit les manipulation des structures de bases : les arbres, les graphes, b-tree, etc.

Les gens qui n'etudient pas les algos et qui disent programmer, je les compare volontiers a des gamins de CP qui se disent capables d'ecrire du proust. (comprenez "ridicules au possible")

Je ne recommande ni C++, ni Java, qui necessitent la comprehension du paradigme objet, et encore moins C qui est tres obscure pour les debutants (surtout a cause des pointeurs, qui en derouteront plus d'un), a mon tres humble avis. Et probablement pas bash. Je vous suggere un langage de haut niveau ou de presque-haut niveau pour commencer.

Mon experience personnel a ete de commencer avec pascal. C'etait il y'a 12 ans et on trouvait deja ca old school, mais ca a ete utile en terme de comprehension. Puis un langage lispien (scheme, en l'occurence) pour la manipulation de fonction, la comprenhesion des concepts tournant autour de la recursivite,..
objet (C++, plus souple que C tout de même, Java, OCaml, même Perl, Python ET ADA).
Et CLOS alors ? :p

Python est sans doute un bon candidat pour debuter.
Ma (toute) petite contribution à ce débat :
Pour commencer il sera plus simple d'apprendre Java : contrairement à C, la gestion de la mémoire est transparente.
la je suis un peu perdu :roll:
vous a tous des arguments (qui parfois m'échappent) intéréssant donc....
je ne sais pas quel langage je devrais étudier ou alors faire comme a recommander Anvil revenir a la source:
les math
Anvil ne parle pas de mathématiques mais d'algorithmie: comment concevoir, organiser et réaliser des séquences de traitements logiques pour résoudre un problème (sélectionner, trier, ....).

Anvil recommande un langage de haut niveau, le Pascal, pour commencer à maîtriser cette algorithmie en s'affranchissant de certaines contraintes propres aux langages qui peuvent obscurcir cette première finalité (les pointeurs en C par exemple, une certaine logique objet en Java ...).

Pour le Lisp (ou ses succédanés), il te faudra patienter (ah les tours de Hanoi en Lisp ...).

Tu as donc plusieurs avis. Le démarrage en Pascal est un choix habile (beau langage d'initiation, pédagogique, mais hélas, sans prolongement en environnement professionnel, les choix étant plutôt portés sur C, C++ -avec des risques!- Java) qui ne ferme aucune possibilité ultérieure.

Le point de vue de l'étude pragmatique de l'algorithmie est prépondérant: tu ne peux pas apprendre un langage informatique en partant des instructions commençant par a pour terminer par les instructions commençant par z. Fixe toi un créneau simple comme l'indique Anvil (les tris! les factorielles en récursif, les régressions linéaires en récursif ...).
Le démarrage en Pascal est un choix habile (beau langage d'initiation, pédagogique, mais hélas, sans prolongement en environnement professionnel, les choix étant plutôt portés sur C, C++ -avec des risques!- Java) qui ne ferme aucune possibilité ultérieure.
C'est pourquoi anvil, par la suite, cite Python.

Rookie jette un coup d'oeil sur les deux sites, donné plus haut, ils sont bourrés d'explications qui te permettront d'affiner ton choix.
sincèrement je vais me fier a vos avis
je n'ai pas la capacité aujoud'hui a choisir tel ou tel langage je me bases exclusivement sur vos expéreiences

en gros c'est moi l'élève et vous les prof
hum...
ouais, Pascal... J'avais commence par ca a l'ecole...c'est vrai que c'est pas mal pour l'apprentissage.
En meme temps, comme le suggere Anvile, fais de l' "ASD" (Algorithmique et Structure de Donnees). C'est l'art de mettre sous forme d'un programme (la mise en equation) un probleme donne. Une fois plus a l'aise, passe au C, le langage de programmation sous *NIX.

++
eddy33 wrote:hum...
ouais, Pascal... J'avais commence par ca a l'ecole...c'est vrai que c'est pas mal pour l'apprentissage.
En meme temps, comme le suggere Anvile, fais de l' "ASD" (Algorithmique et Structure de Donnees). C'est l'art de mettre sous forme d'un programme (la mise en equation) un probleme donne. Une fois plus a l'aise, passe au C, le langage de programmation sous *NIX.

++
tu as de la lecture a me conseiller ou des livres pour faire de l'Algorithmique et Structure de Donnees
hum...

Si tu as acces a une BU :
Titre : Introduction à l'algorithmique / CORMEN (T.) ; LEISERSON (C.E.) ; RIVEST (R.L.)
Editeur : Paris : Dunod
ISBN : 2-10-003128-7

Titre : Structure de données et algorithmes / AHO (A.) ; HOPCROFT (J.) ; ULLMAN (J.)
Editeur : Paris : Interéditions
ISBN : 2-7296-0194-5

++

edit : ptit tour ici aussi : http://algo.developpez.com/livres/
je pense que pascal est le mieux pour debuter car c'est le langage qui traduit directement (à quelque nuance) l'algorithmique en anglais . si tu comprend les structures de pascal en imperatif tu te debrouilleras après avec tous les autres langages .

si tu es debutant en programmation, il faut que tu comprenne qu'il y a deux types de programmation (au moins deux connus), qui sont l'imperatif et l'objet . pour comprendre les langages de programmation il faut commencer par comprendre (et utiliser) l'imperatif . et la je pense que pascal et c sont les mieux pour debuter (perso j'ai commencer avec basic sous dos) . une fois que tu auras compris comment faire un algo en pascal ou en c, tu pourras commencer à t'attaquer à la programmation orientée objet donc des langages telle que C++, java, (et meme pascal peut etre orienté objet:avec delphi par exemple) .

je ne te conseil pas python, car il est plus facile à comprendre quand tu as vue au moins une fois ecrit la structure d'un programme hors python utilise les indentations pour créer ces blocs . ca fait des programme tres propre et tres lisible mais pas forcement facile d'accès pour un debutant .


si tu veux des liens il y'en a deux qui sont geniaux :

http://www.commentcamarche.net/ et va voir dans la rubrique programmation . c'est un site generaliste mais tres bien pour debuter dans tous les langages

et http://www.developpez.com/ qui on aussi des tutoriels tres bien expliqué mais qui vont beaucoup plus loin que le dernier site .

si pour delanoy je te le conseil aussi il est vraiment pedagogue, moi aussi j'ai appris le c++ avec lui, c'est du petit lait à lire et à comprendre .

sinon oui parle plutot d'algo que de math . l'algo est un sous ensemble des maths . 🙂
a+
je ne le connais pas, mais vue le titre je pense que c'est le bon theme 🙂 (algo et pascal), vue que c'est une collection dirigée vers les universitaires tu dois surement avoir des exemples de tri de tableau (d'ailleurs l'inverse m'etonnerais), et je pense que c'est tres bien pour bien cerner l'algorithmique (et donc la programmation) .
+1 pour l'apprentissage de l'algorithmique en premier lieu.

Après pour le langage, Python est un bon choix pour débuter mais il ne faut pas avoir peur de commencer par le C.
C est un langage assez simple, par contre comme il est bas-niveau et permissif (ah les dépassements de tableaux ...), ça demande beaucoup de rigueur. Le K&R est abordable mais le Delannoy est plus adapté à un débutant.
Si tu te lances dans le C++ évites le Delannoy qui est fait pour les débutants en C++ avec des notions en C ou java, ou l'horreur absolue le pavé de Bjarne Strousup.
rookie wrote:je ne sais pas quel langage je devrais étudier ou alors faire comme a recommander Anvil revenir a la source:
les math
Un petit apport, si tu as des questions en maths je te conseille ce superbe forum :

http://les-mathematiques.u-strasbg.fr/phorum5/

Comme cela éventuellement tu as des questions tu pourras avoir des réponses rapides et pratiques et tu n'auras pas à te plonger dans des bouquins de maths en plus de tes bouquins de programmation ! 😉

Encore que certains diront que lire des livres de maths pour le plaisir est une noble activité...

Bon courage !
Salut, pour ma part je soutiens l'approche de certains alogorithmes avant de se lancer ds n'importe quel langage

je te conseille :
http://www.pise.info/algo/codage.html
ensuite un peu plus porté sur le C :
http://yassirba.free.fr/site/etudes/algorithme/algorithme.html

et enfin un bouquin :

Maitrise des Algorithmes en C
Edition O'Reilly par Kyle Loudon

une fois cette base acquise, tournes toi vers le concept objet et apres attaque le langage qui te dira le plus !

voilà bonne chance !
L'approche par l'algo c'est bien, mais on fait rien en attendant 🙂 Pas de progression visible, en autodidacte c'est pas simple.

Si c'est la programmation comme un loisirs, ça peut être vite barbant. Surtout que tout est ramené aux maths (possible que je n'ai pas vu les bon bouquins).

Je dirai que ça dépend dans quelle optique se situe cet apprentissage. En tant que loisirs, un milieu entre algorithmie et programmation me semble pas mal, histoire d'avoir un résultat devant les yeux. Bien sur les premiers résultats sont exécrables même si ça marche. Après bon nombre d'essais/erreurs je pense qu'on peut arriver à sortir quelque chose de potable. ça donne un apprentissage chaotique, beaucoup plus long mais à mon sens plus intéressant.

Maintenant, si c'est pour bosser ou prendre de l'avance sur le programme, c'est différent 🙂

PS: j'aurai jamais persisté en programmation si j'avais commencé par l'algo, c'est imbitable (aspell connait pas imbitable ??).
je suis vraimet surpris d'avoir autant de réponses a ce sujet en aussi peu de temps
et je tiens tous a vous remercier de vos particpation
pour le moment je retiens les avis de eddy33 et Anvil
eddy33 wrote:hum...

Si tu as acces a une BU :
Titre : Introduction à l'algorithmique / CORMEN (T.) ; LEISERSON (C.E.) ; RIVEST (R.L.)
Editeur : Paris : Dunod
ISBN : 2-10-003128-7

Titre : Structure de données et algorithmes / AHO (A.) ; HOPCROFT (J.) ; ULLMAN (J.)
Editeur : Paris : Interéditions
ISBN : 2-7296-0194-5

++

edit : ptit tour ici aussi : http://algo.developpez.com/livres/
Anvil wrote:Avant d'entamer la programmation, commencez par etudier les algorithmes, en commencant par les tris de base (tri par insertion, tri en bulle/par permutations, tri fusion, tri en tas, quick sort, etc.). Puis petit a petit les manipulation des structures de bases : les arbres, les graphes, b-tree, etc.

Les gens qui n'etudient pas les algos et qui disent programmer, je les compare volontiers a des gamins de CP qui se disent capables d'ecrire du proust. (comprenez "ridicules au possible")

Je ne recommande ni C++, ni Java, qui necessitent la comprehension du paradigme objet, et encore moins C qui est tres obscure pour les debutants (surtout a cause des pointeurs, qui en derouteront plus d'un), a mon tres humble avis. Et probablement pas bash. Je vous suggere un langage de haut niveau ou de presque-haut niveau pour commencer.

Mon experience personnel a ete de commencer avec pascal. C'etait il y'a 12 ans et on trouvait deja ca old school, mais ca a ete utile en terme de comprehension. Puis un langage lispien (scheme, en l'occurence) pour la manipulation de fonction, la comprenhesion des concepts tournant autour de la recursivite,..
objet (C++, plus souple que C tout de même, Java, OCaml, même Perl, Python ET ADA).
Et CLOS alors ? :p

Python est sans doute un bon candidat pour debuter.
c'est a dire commencer par les bases de l'algo et ensuite faire du Pascal (ou Python)
et ensuite enchainer le C avec le livre conseiller par Pikachu_2014
Pikachu_2014 wrote:Salut,
Un premier pas, si tu souhaites un livre : « Programmer en langage C », de Claude Delannoy.
Sans compter les nombreux tutoriaux que tu trouveras sur le net ; entre autres :
http://c.developpez.com/cours/
Est-ce que ce programme vous semble cohérent ?
à mon avis c'est une tres bonne facon d'apprendre à programmer .

bonne suite dans ton apprentissage rookie
Merci pour ton lien Kaeguri
Je crois que tout a été dit a moins que vous ayez encore des avis a donner?
Voui, si ça peut t'aider j'ai commencé le C il y a quelques mois, pas par conviction à la base, mais plus par "ignorance", manque d'infos sur les différents languages. Je ne trouve pas ça très compliqué (je dis pas que c'est facile non plus), et j'ai déjà réussi à coder 2 programmes de calculs de structures. C'est très sommaire, mais ça fonctionne. Cependant, même si je n'ai eu aucune difficulté avec les pointeurs, qui sont réputés pour embrouillés les débutants, j'ai vite vu mes limites arrivé à du code plus complexe (POO) ou plus lourd à gérer pour des programmes plus gros. Si ton programme n'est pas bien structuré, et ton idée claire dès le départ, ça devient vite un casse tête géant.
C'est comme tout, il faut du temps, comme apprendre à jouer du piano, il faut du temps.
J'aurais ainsi un conseil à te donner, ne grille pas les étapes. Commence par apprendre les bases, pour pouvoir commencer à connaitre ton EDI, t'apprendre à t'organiser etc... Bref de quoi faire deux ou trois "Hello world !" (c'est toujours très motivant) puis d'apprendre l'algorithmie. Ca te permettra de coder intelligement. En en apprenant par alternance, le language que tu auras choisi et l'algo, de mettre en pratiques tes connaissances toutes fraîches... Un peu de code, un peu d'algo, un petit programme, un peu de code, etc...
Bon courage à toi.
Perso je conseillerais www.siteduzero.com pour faire du php !
Au moins c'est clair, tu apprends vite et tu as des résultats 😉
merci pour ton lien Arkezis

Merci mickey
Arkezis wrote:Perso je conseillerais www.siteduzero.com pour faire du php !
Et puis du C/C++, même si le problème dans leurs tutoriaux ce sont les smileys à outrance...

Mais bon courage pour apprendre parce que de façon autoditacte c'est vraiment pas simple la prog...