J'aimerais apprendre la programation

Un livre pourrait il aidé:

http://www.eyrolles.com/Informatique/Livre/shells-linux-et-unix-par-la-pratique-9782212122732

aider. Pas aidé.

Mais sa ne pourrait pas aidé, servir de référence,

Et « ça » aussi, pas « sa » :slightly_smiling:.

Et pour répondre: lis le, et tu sauras.

En tout cas je te souhaite d’être plus rigoureux avec la syntaxe du bash (ou de tout autre langage choisi) qu’avec celle du Français, car l’interpréteur/le compilateur a généralement peu de pitié contrairement aux êtres humains que nous sommes; capables de comprendre le pire des dialectes SMS.

Bonjour à vous chers Linuxiens !!

Oui… Personellement,j’apprends le C en ce moment.

J’ai quelques notions de PHP,de MySQL ainsi qu’un peu de JavaScript …

Après,tout dépens ce que tu compte en faire … Si c’est pour créer un jeu genre OGame,ne fais pas du C … Oriente-toi alors plus vers le PHP/MySQL/JS …

Maintenant,si tu veux créer des applets pour msn,là,apprends le JavaScript …

Enfin,pour conclure,je dirais que peu importe la langage que tu apprends en premier … Si tu est motivé,tu t’en sors toujours :slightly_smiling:

J’éspère avoir répondu à tes questions :slightly_smiling:

PS : Je te conseille le SiteDuZéro… Il est très bien et un forum est à la disposition des Zéro’s :slightly_smiling:

siteduzero.com

Bye !!

La faudrait mettre les choses au clair, livres ou tutoriels, Shell avant le C ou C directement, parceque personne ne dit la meme chose sur se sujet. Je ne sais plus moi

On n 'apprend pas à programmer en C, on apprends à programmer tout court, sur un support. Ton problème à toi ne sera pas la syntaxe ou l’adaptation à un nouveau langage: tu n’as pas de réflexes et a des neurones qui s’adapte vite: Choisis le bash pour voir le B-A-BA. Puis quand tu auras compris les grands principes, suis tes envies!

sh est en effet un bon choix. L’obtention de résultats concrets et utiles est quasiment immédiate, donc peu de frustration :wink: Le langage est simple, et en plus de cela il est de toute manière indispensable de le connaître pour se faciliter la vie sur systèmes Unix.

Ensuite, tout est une question de projet. Pourquoi veux-je apprendre la programmation ?

Si c’est pour mieux comprendre e fonctionnement de la machine, et travailler sur les fondements de l’OS : C.

S’il s’agit d’écrire rapidement des applications “graphiques” : python ou java semblent un bon choix.

S’il s’agit de comprendre les fondements théoriques de la programmation : Scheme associé à l’IDE DrScheme est excellent.

S’il s’agit de balayer les différents paradigmes de programmation, Common LISP est tout à fait indiqué : interprété, compilé, hybride ; impératif, orienté objet (complet), fonctionnel, orienté aspect etc. ; macros, récursivité, métaprogrammation etc.

Et évidemment, tout cela n’est qu’indicatif. La question de la doc est fondamentale. Certains préféreront apprendre sur un tuto des Zéros, d’autres sur le bouquin de K&R, d’autres sur le SICP d’Abelson et Sussman etc.

Bref, il me semble que 3 questions fondamentales entrent en jeu :

  1. Que veut-on faire ?
  2. Quel type d’ouvrages préférons-nous ?
  3. Le langage est-il bien supporté sur mon système ? La doc est-elle suffisamment conséquente et accessible ?

+1. L’important c’est d’apprendre à bien programmer. Après le choix du langage est un choix technique.

Par contre… Commencer par le bash :neutral_face: bof ! C’est pas très fun.

Je comprends pas… il y a de langages terribles comme python ou ruby et vous lui conseiller de faire du bash !

Mais non ! vous avez rien compris ! faut faire du PERL ! :stuck_out_tongue:

Plus “sérieusement” je suis assez d’accord avec fran pour le côté “on n’apprend pas un langage, mais on apprend à programmer” et je rejoins pas mal dark know pour le côté “la meilleure façon d’apprendre c’est encore d’avoir un objectif précis”.

En quelque sorte : si tu cherches à faire un programme alors oui il faudra “apprendre à programmer”, après à toi de choisir le langage de support en fonction de tes besoins si tu as un besoin précis, ça pourra te simplifier la tache par la suite.
Au final, tu as quelques grandes “classes” de langages (impératif, fonctionnel, logique, j’en oublie …) et à l’intérieur de ces classes plusieurs langages, en général, les grands principes restant les mêmes le gros changement se situe au niveau de la syntaxe et de ce que l’on souhaite en termes de perfs dans un contexte donné. Mais pour réfléchir à comment est fichu un prog et l’écrire ça se ramène souvent à la même chose au sein d’une même classe, du moins ce que j’en ai vu.

Pour ce qui est des tutos / bouquins, ça dépend vraiment des personnes / des tutos / des bouquins. On est soi même plus ou moins sensibles à comment est écrit un tuto ou un bouquin et préférer l’un ou l’autre, mais si tu tombes sur un “mauvais numéro” (tuto ou bouquin) tu ne pigeras rien quoi qu’il arrive. De ce côté là il n’y a pas de recette miracle, il faut essayer.
Cependant, et parcequ’il m’a bien aidé pour mon cours de C en 2ème année et plein d’autres trucs après : je recommande le site du zéro moi aussi. Ce n’est pas la “bible” mais ça donne des pistes.

Et pour tous les langages d’une façon générale et pour éviter de réinventer la roue : penser à lire la doc officielle du langage/les manpages. Pour la plupart des éléments standart “raisonnables” tu y trouveras toute la doc (et même certainement plus) dont tu pourras avoir besoin.

Edit : Le débat tuto/bouquin est limite un vieux gag dans la mesure ou rien ne garantit à priori qu’on s’en sortira mieux avec l’un ou l’autre. Le tuto t’apportera, la plupart du temps, une aide sur un point très précis alors que le bouquin, lui, abordera sans doute des choses plus générales ou, au contraire, plus en profondeur, cela dépend énormément de l’auteur. Etant un grand fan des “… pour les nuls” je dis sans honte que “le C pour les nuls” et “Le HTML pour les nuls” m’ont bien aidé pour démarrer. Autant “La guitare electrique pour les nuls”, s’il me sert de référence quand j’ai besoin de regarder un diagramme ou de prendre des infos de base sur une notion, n’a jamais réussi à me servir de “cours complet” ou leçon après leçon je progressais (il m’a gonflé bien avant, mon prof est heureusement beaucoup moins chiant :smiley:).

Oh, j’avais oublié, il y a aussi le langage GAMBAS (une sorte de Visual Basic nettoyé libre), ainsi que gvrng (Guido Van Robot), un petit IDE pour apprendre la progra avec un python simplifié.

[quote=“Hoshin”]En quelque sorte : si tu cherches à faire un programme alors oui il faudra “apprendre à programmer”, après à toi de choisir le langage de support en fonction de tes besoins si tu as un besoin précis, ça pourra te simplifier la tache par la suite.
Au final, tu as quelques grandes “classes” de langages (impératif, fonctionnel, logique, j’en oublie …) et à l’intérieur de ces classes plusieurs langages, en général, les grands principes restant les mêmes le gros changement se situe au niveau de la syntaxe et de ce que l’on souhaite en termes de perfs dans un contexte donné. Mais pour réfléchir à comment est fichu un prog et l’écrire ça se ramène souvent à la même chose au sein d’une même classe, du moins ce que j’en ai vu.[/quote]
Je ne peux que plussoyer.
J’ajouterais juste que l’implémentation de ces langage peut être plus ou moins complexes pour celui qui veut apprendre (gérer une compilation, une arborescence de fichiers, un linkage,…).

Oui après le langage employé peut aussi être choisi en partie pour les outils qui sont livrés avec et facilitent des aspects de la production du programme mais bon là c’est du détail … ahem :stuck_out_tongue:

Bonjour,

mon avis:

1- Dans l’industrie technique le langage principal est le C, le noyau linux est écrit en C, les drivers (modules) aussi, ainsi que beaucoup de programmes (la plupart?) linux. Pour t’en convaincre regarde les sources.

2- Le C n’est pas un langage objet il évolue vers le C++, ObjectiveC … pour devenir objet et penser un programme en langage non objet ou objet est trés différent!, la plupart des jeux du commerce sont en C++.

3- Je te conseille donc le C puis le C++, utilise l’IDE code::block il est légé et contient du code d’amorce pour démarrer.

4- Quel que soit le langage que tu choisis, il sera toujours plus logique et moins chiant que la langue francaise qui suscite toujours un pingouin pour te signaler les fautes, même si la phrase est compréhensible.

5- fait un tour sous http://www.developpez.com/

(Que les alca torda m’excusent pour les fautes.)

[cf discussion sur http://forum.debian-fr.org/viewtopic.php?f=1&t=20068)

:smt003 :smt003 trop fort ces BOTs vous avez remarqué, non :question:

Salut,

Je suis pas vraiment d’accord avec tout ce qui à été dit, en fait pour moi y’a pas 10 000 solutions pour apprendre à programmer en sachant ce que l’on fait !

Donc la question n’est même pas vraiment, la question de l’objectif final, le programme, mais plutôt à quel degré tu souhaites comprendre ce que tu développes :slightly_smiling:.

Je rencontre très souvent des types qui viennent du “managé” .net & co, lorsqu’il passe sur des langages un peu moins manager, si tu leur parle de pile, de pointeur, de concepts élémentaires de la programmation “académique”, les types sont à la ramasse, par contre dans leur domaine ils sont plutôt bon et performant.

Voici LA méthode : ( <-- Type qui se la pète et qui sait tout )
C’est celle qui est utilisé à l’IUT, en FAC, ou en centre de formation, donc un peu éprouvée quand même :
1 - Quelques petit exercices théoriques sur l’algorithmie en général
2 - Introduction aux concepts fondamentaux d’un x86 (Registre, Type, Pile, Tas, MMU, etc…)
3 - Introduction aux concepts fondamentaux des système d’exploitation (Memoire virtuel, protection, etc…)
4 - Introduction à l’assembleur x86 et concepts de compilations (linkage, object, bytecode, etc…)
5 - Introduction au C et mise en évidence des relations C / bytecodes et extrapolation ASM
6 - Introduction au C++ et concepts de programmation objet.
7 - Grosse synthése sur les langages existantes pour connaitre leur existence
( + Une grosse dose de passion et beaucoup de lecture de chevet)

A priori après ça tu peux aborder la plus part des langages courants, interprété ou compilé, ou les apprendre sans trop de difficulté et surtout tu évite d’emblée les pièges ou erreur grossière car tu peux transposer tes codes sur un plan “physique” (asm)

Voilou, c’est mon avis.

Molux