Récemment un collègue qui travaille à un poste administratif m'a fait part de son envie de s'intéresser à la programmation.
Ce n'est pas son domaine mais en parlant avec les ingénieurs de la société, il s'est dit que ce serait intéressant de découvrir ce monde là d'autant qu'il utilise beaucoup Excel pour traiter toutes sortes de données, mais il pressent que ce n'est pas toujours l'outil adapté.
Pour l'instant il a vaguement entendu que PHP+HTML "c'était bien pour commencer".
C'est vrai que la combinaison LAMP permet de faire pas mal de petits programmes, d'apprendre à faire des sites webs et à traiter des données par lots, mais je me demande si ces outils, aussi pratiques qu'ils soient, donneraient de bonnes bases.
Est-ce qu'il n'existe pas des langages/plate-formes plus simples et plus structurantes pour un débutant?
Ruby on Rails peut être?
# Alors ça c'est un sujet à troll :)
Posté par Goffi (site web personnel, Mastodon) . Évalué à 10.
PHP j'ai pas touché depuis PHP4 et je crois que ça s'est bien amélioré, mais le code mélangé au HTML, vraiment pas bon pour un débutant...
Sinon ça va hurler, mais je trouve toujours Pascal comme un excellent langage pour apprendre, et FreePascal est très bon (et j'ai pas suivi, mais Lazarus avait l'air de plus en plus sympa).
Mais bon, ça n'aurait pas plus sa place dans le forum ce genre de question ???
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par beb . Évalué à 3.
S'il fait de l'analyse de données, il peut peut être jeter un oeil à R, qui dispose d'un "langage" mais c'est ce n'est pas vraiment de la programmation au sens premier.
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Mais qui suis-je ? :) . Évalué à 4.
Veut il aprendre la programation pour sa culture perso
Veut il passer ses analyses de donnée avec des outils performant car Excell ça fait mal à la tête ?
Veut il coder des petits jeux pour épater les copines ?
As t'il suivit quelques cours d'info de base à la Fac ? ( Disons que quelqu'un qui à suivit le cours d'introduction au Pascal standard il y a 10 ans à la fac sera plus à même de se lancer que quelqu'un qui n'a jamais écrit une ligne de code)
Bref cerné les besoins peux aider à répondre à la question
Pour rentrer dans le troll, je dirais que pour un débutant JAVA n'est pas forcément un mauvais choix,
-Certe le concept de POO n'est pas le plus simple à comprendre
Mais je vois 2 avantages à JAVA (attention je connais assez peu de langage)
-Une grosse bibliotheque standard qui contiens tout et qui est bien documenté
-Eclipse qui est une IDE vachement bien foutus et qui évite au débutant de se soucier de la compilation (Oui je pense qu'il ne faut pas dégouter un débutant en lui expliquant d'abord toutes les subtilité de make ou de ant avant de compiler hello world)
Et puis un autre avantage non négligeable
-Java c'est un langage dont les décideurs pressé ont entendu parlé, donc notion de JAVA sur un CV: le DRH il comprend, tandis que notion de Ruby on Rails je suis pas sur ( surtout dans le secteur non informatique)
Après c'est sur que c'est un topic à troll
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par alice . Évalué à 2.
Je me disais que AppJet ( http://appjet.com/learn-to-program/lessons/intro ) pouvait être une bonne plate-forme pédagogique :
- rien à installer.
- le tutorial est fait pour les grands débutants.
- le Javascript est utile pour "après", contraitement au Pascal...
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Slayne . Évalué à 1.
Il efface toutes les lourdeurs du java, permettant vite d'être très efficace. Ajouter à cela l'accès à tout l'environnement java et lib existantes, ça donne un vrai potentiel de développement s'il désire aller plus loin.
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Victor . Évalué à 2.
Il enlève toutes les lourdeurs de java, mais lui il a du typage statique (inféré).
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par alexissoft . Évalué à 2.
C'est ptêt pas très pédagogique, mais le débutant voit un résultat TOUT DE SUITE, et ce qui est le plus chiant quand t'essaye de te mettre à la programmation c'est que tu n'as pas de vrai résultat comme t'es habitué à en voir tous les jours (des GUI quoi) avant longtemps.
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par totof2000 . Évalué à 8.
Il existe un bon bouquin dont je ne me rappelle plus le titre, édité chez O Reilly (mais dispo librement sur internet) qui est un cours d'apprentissage de la prorammation à l'aide de python ....
Allez, après recherche google, j'obtiens ça :
http://www.framasoft.net/article1971.html
Le PDF : http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes(...)
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par laurent laffont (site web personnel) . Évalué à 3.
en français : http://diveintopython.adrahon.org/
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par totof2000 . Évalué à 2.
Quand j'ouvre le lien :
"Plongez au coeur de Python est un livre Python libre destiné aux programmeurs experimentés.".
C'est pas vraiment un truc pour les débutants ...
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Bozo_le_clown . Évalué à 2.
J'ai bien peur qu'avec les montées de versions de pyhton depuis , il ne soit plus guère à jour.
Dommage qu'il soit à l'abandon car c'était vraiment un bon bouquin
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Jean B . Évalué à 1.
Par contre pour un grand débutant en programation c'est "apprendre la programmation avec python" de Gérard Swinen qu'il faut lire.
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Bozo_le_clown . Évalué à 2.
http://docs.python.org/tutorial/
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par Yannick . Évalué à 1.
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par lolop (site web personnel) . Évalué à 2.
http://www.cifen.ulg.ac.be/inforef/swi/python.htm
Introduction to Programming using Python (en)
http://www.pasteur.fr/formation/infobio/python/index.html
Programmation en langage Python
http://www.dil.univ-mrs.fr/~garreta/PythonBBSG/index.html
Note de cours Python
http://www.iut-orsay.fr/dptmphy/Pedagogie/coursPython.pdf
etc... (cf ma page de liens http://www.limsi.fr/Individu/pointal/python.html ).
Après, AMA ça dépend de ce à quoi il veut aboutir. Pour apprendre à structurer, un langage qui y oblige (Pascal, ADA...) me semble plus adapté.
Les C, C++, C#, ObjectiveC, Java... après.
(sans parler des lisp, smalltalk, prolog, ocaml, brainfuck...).
S'il veut faire des trucs graphiques (ce qui est plus sympa, on a tout de suite un résultat), voir vers PythonCard - une structure de diffusion de messages à la HyperCard, avec Python comme langage.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Alors ça c'est un sujet à troll :)
Posté par viking . Évalué à 1.
1. Les bases de Python pour apprendre la syntaxe, les types prédéfinis et les librairies de base
2. Django pour travailler facilement et rapidement avec des bases de données et des applications web.
3. Ensuite revenir à Python pour en découvrir toutes la puissance avec un bon livre du genre "Plongez au coeur de Python"
# Il risque d'être surppris
Posté par Kangs . Évalué à 1.
Si sa vision de la programmation c'est excel il va être surpris par le couple "PHP+HTML" ou tout autre langage hormis ACCESS.
Pour manipuler des données il y les SGBD/R : sqllite,mysql,postgres et d'autres. L'intérêt du SGBDR/R c'est pour beaucoup le SQL qui est assez universel.
Pour le rendu la liste est beaucoup plus longues, discuter et mettre en œuvre c'est autre chose. Faudrait savoir s'il a déjà touché autre chose que Excel (a t il fait du VBA au moins ?)
[^] # Re: Il risque d'être surppris
Posté par Quikeg . Évalué à 2.
Sinon il y a des tas de tutos sur le site du zéro, perso c'est comme ça que j'ai appris à faire un site web
http://www.siteduzero.com
Voir le menu à gauche.
Je fais de l'analyse financière sur Excel, je n'ai jamais eu à faire une macro ;)
[^] # Re: Il risque d'être surppris
Posté par Kangs . Évalué à 1.
Oui mais pour moi traiter des données c'est en grande partie des traitements en base. Des formules j'en ai jamais fait (et j'en ai probablement pas les compétences)
>>[...]
>>Je fais de l'analyse financière sur Excel, je n'ai jamais eu à faire une macro ;)
C'est bien pour ca que je crois qu'il faut être prudent dans les conseilles de langages/outils, il pourrait être franchement dégouté...
[^] # Re: Il risque d'être surppris
Posté par Jean B . Évalué à 3.
http://www.siteduzero.com
Voir le menu à gauche.
Mon dieu pas ça.
Les tutos du site du zéro ne sont pas foncièrement mauvais, mais ça reste des tutos et AMHA ce n'est pas du tout assez complet, et surtout ça fait totalement l'impasse sur l'algorithmique ou la façon de structurer son code.
Surtout pour PHP qui est un langage qui a l'air simple mais qui regorge de subtilité qui font que les programmeurs "zéros" (dieux sait qu'il y en à) pondent des nis à faille et à bug. Les programmeurs PHP n'ont déjà pas bonne presse, n'en rajoutez pas.
Le site du zéro convient très bien pour se donner une idée d'un langage si on sait déjà programmer, mais pas plus.
[^] # Re: Il risque d'être surppris
Posté par Deuterium . Évalué à 2.
[^] # Re: Il risque d'être surppris
Posté par totof2000 . Évalué à 3.
Ca doit être le cas de la majorité des dev PHP alors .... Je comprends maintenant.
# En ruby
Posté par Bruno Michel (site web personnel) . Évalué à 3.
[^] # Re: En ruby
Posté par Adrien . Évalué à 3.
Sinon oui c'est un excellent choix, pas de compilation, une syntaxe de rêve, une logique et une simplicité exemplaire… C'est idéal pour débuter simplement sans se prendre la tête.
[^] # Re: En ruby
Posté par Bastes . Évalué à 3.
Ruby
Shoes
Et ça roxx.
Python est pas mal aussi, mais pas tout à fait aussi beginner-friendly à mon sens (ok, ruby aussi contient des trucs qui font pas mal bouillir le cerveau, mais on n'est pas forcé de les connaître quand on débute, ce qui est bien).
# Complément
Posté par Infernal Quack (site web personnel) . Évalué à 7.
Car à la base ce qui distingue les langages en plus de leur facilité d'appréhension c'est leur utilisation.
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
# logo
Posté par libre Cuauhtémoc . Évalué à 4.
Sinon, le langage de script zsh, en faisant des script du plus simple au plus compliqué
Après, qu'il passe au langage qui est à la base de tout: le C, comem en IUT
# Perl ?
Posté par arthurr (site web personnel) . Évalué à 2.
- simple à apprendre (bcp d'exemples, cours, ...)
- multi-plateforme
- énormément de modules (http://search.cpan.org ) : OpenOffice::OODoc, Spreadsheet::WriteExcel, ...
- et surtout c'est du Larry inside
[^] # Re: Perl ?
Posté par totof2000 . Évalué à 5.
Je ne conseillerais pas ça en premier langage.
[^] # Re: Perl ?
Posté par arthurr (site web personnel) . Évalué à 1.
j'ai pondu plusieurs dizaines de milliers de lignes de code en Perl et souvent j'arrive a les relire et parfois meme a comprendre ce que ca fait !
serieusement : tu peux coder comme un goret dans tous les langages mais personne ne t'y oblige.
Le gros avantage de Perl, c'est sa souplesse et ses modules.
Un petit A++ pour la route (c'est de moi et ca se trouve sur http://paris.mongueurs.net/aplusplus.html ) ?
Récursions chaînées
$;=sub{
sub _{
$_[2]=substr($_[0],length($_[0])-1,1) + $_[1];
if (length($_[2])>1 or length($_[0])>1){
$_[2]= _(substr($_[0],0,length($_[0])-1),length($_[2])>1?substr($_[2],0,1):0)
. substr($_[2],length($_[2])-1,1);
}
return ($_[2]);
}
$A=_($_[0],1);
};($A)->$;;
[^] # Re: Perl ?
Posté par totof2000 . Évalué à 2.
Ce n'est pas une réputation c'est un fait ... J'ai pratiqué massivement Perl à une époque et plus tumaitrises le langage, plus tu as envie d'utiliser les possibilités du langage et ces possibilités te poussent à écrire un code illisible pour le commun des mortels (n'ayant plus pratiqué le Perl depuis un bout de temps, je ne suis pas sur de comprendre le code que j'ai écrit il y a 7 ans).
serieusement : tu peux coder comme un goret dans tous les langages mais personne ne t'y oblige.
On est daccord mais a partir du moment ou le langage te le permet, tot ou tard tu le fais (surtout un débutant qui n'es pas habitué au formalisme de l'algorithmique et qui apprend par lui-même).
Le gros avantage de Perl, c'est sa souplesse et ses modules.
Ca peut aussi se transformer en inconvénient ..... c'est une épée à double tranchant ... ( tout au moins pour l souplesse).
Donc pour moi Perl est un très bon langage. Cependant faut voir ce qu'on veut apprendre : programmer en Perl ou la programmation en général ?
Si on veut apprendre la programmation, je conseille pas Perl ....
[^] # Re: Perl ?
Posté par Sébastien B. . Évalué à 2.
[^] # Re: Perl ?
Posté par Bozo_le_clown . Évalué à 3.
http://open-site.org/Computers/Programming/Contests/Obfuscat(...)
:D
# Perso ...
Posté par raboliot . Évalué à 4.
[^] # Re: Perso ...
Posté par Nerdiland de Fesseps . Évalué à 3.
C'est plus simple d'accès que Perl ou Java, c'est plus élégant que du PHP et ça donne de meilleures habitudes de programmation, il y a plein de docs (dont le très bon "Apprendre à programmer avec Python" de Gérard Swinnen - c'est le bouquin avec le bateau), il y à plein de modules, de programmes existants à étudier, etc.
À mon avis pour un débutant c'est le meilleur compromis entre la popularité, l'utilité, la simplicité et la puissance, s'adaptant aussi bien à des petits scripts pour traiter rapidement des données qu'à des applications plus lourdes.
Après, c'est le langage qui l'attire le plus qu'il devrait apprendre en premier, en tant que dilettante c'est la motivation l'élément le plus important.
[^] # Re: Perso ...
Posté par dkremer . Évalué à 2.
Le langage python est utilisable dans un vaste panel de domaine, ce qui fait que son apprentissage comme premier langage est très utile, dès le départ, et également dans toute la suite de l'utilisation des ordinateurs et de la programmation informatique.
En effet, la personne pourra d'emblée réaliser très simplement des utilitaires pour telle ou telle application, ce qui rend ce langage extrêment utile pour un programmeur comme pour un non-programmeur.
# Python ou Perl
Posté par Loic Dreux . Évalué à 5.
# Deux temps
Posté par ʭ ☯ . Évalué à 3.
2.Manuel Python pas à pas en français (celui avec un bateau en couverture)
Je viens de tester avec un collégien en 3ème, il est ravi.
⚓ À g'Auch TOUTE! http://afdgauch.online.fr
# Python !
Posté par Pol' uX (site web personnel) . Évalué à 3.
Python est un merveilleux langage de programmation. Moderne, portable, puissant, facile à apprendre, il présente en outre l’immense intérêt d’être absolument gratuit !
Estimant que Python constitue à l’heure actuelle le meilleur choix pour commencer un apprentissage de la programmation, nous avons décidé d’apporter notre modeste contribution à la documentation en langue française pour ce langage.
Destinées en premier lieu aux élèves qui suivent le cours "Programmation & langages" de l’option Sciences & Informatique en 5e/6e de l’enseignement technique de transition (enseignement secondaire belge), ces notes vous sont proposées ici en téléchargement gratuit. Leur reproduction et leur distribution restent cependant soumises aux termes de la licence de documentation libre GNU.
Adhérer à l'April, ça vous tente ?
# le nouveau langage à la mode
Posté par castorpilot . Évalué à 8.
# question complexe
Posté par Camille_B . Évalué à 7.
Un langage de programmation ne propose pas seulement des fonctionalités, il propose également une syntaxe qui détermine un style.
Lorsque l'on apprend tout seul, choisir le bon langage est fondamental !
Ainsi certaines personnes apprécieront la "raideur" d'un Python, d'autres préféreront la liberté de faire n'importe quoi d'un Perl ou d'un Ruby, d'autres préféreront la logique d'un LISP ou d'un SCHEME etc.
Il y a aussi la question de la qualité des tuto, des sources d'info dispo pour le débutant etc.
Ainsi le langage C est un excellent choix pour de nombreuses raisons : syntaxe simple et surtout à l'origine des syntaxes de quasiment tous les langages "modernes" ; nombreux tutorials de qualité ; suffisamment abstrait et suffisamment proche de la machine pour proposer un apprentissage relativement simple de la programmation qui n'oublie pas la machine sur laquelle le programme tourne etc.
Python, évidemment.
J'ajouterai personnellement : LISP. C'est le langage qui m'excite le plus - vient ensuite C et Objective-C - la programmation fonctionnelle est pour moi plus naturelle que la POO, et plus souple que la programmation procédurale.
Entre en jeu de nombreux éléments que je réduirai à trois :
1) qualité de la documentation et de l'aide disponible (proportionnel au succès du langage) : C (excellent) ; Python (très bon) ; LISP (à la fois plus qu'excellent, et à la fois très mauvais. Tout dépend si on est débutant ou pas ! Si on aime la théorie ou pas etc.)
2) Type de syntaxe, question de goût. Ici C, Python et LISP me semblent proposer tous les trois de bonnes syntaxes pour débuter. Je serai d'avis pour ne pas conseiller Ruby et Perl comme premier langage.
3) Paradigme de programmation. En gros, procédurale, fonctionnelle ou OO ? La programmation procédurale c'est simple et clair pour tous le monde. C, a donc une bonne place. L'orienté objet, c'est puissant et tout le monde en veut, et il paraît que c'est naturel pour certains. Le fonctionnel ça peut paraître extrêmement naturel comme affreux etc.
Ne sachant rien du type je conseillerai donc C avec un bon livre tel que le K&R. C'est du solide.
S'il a du mal, Python avec Apprendre à programmer avec Python.
Si vraiment ça ne l'excite pas plus : LISP avec le très bon article de Graham : The Roots of LISP : http://www.paulgraham.com/rootsoflisp.html
Voire le génialissime, simplissime, drolissime et excellemmissime : The Little Lisper (ou The Little Schemer)
Et si vraiment ça ne va pas du tout, le très fun Ruby avec le très fun Poignant Guide : http://qa.poignantguide.net/
[^] # Re: question complexe
Posté par Victor . Évalué à 2.
Ce langage est une horreur, autant à cause de son aspect impératif (mais bon, c'est une histoire de gout) qu'à cause de tous ces pointeurs ...
On trouve des langages qui marchent très bien et quand ça compile et qu'on est sûr de la logique de ce qu'on a écrit : ça marche !
J'imagine que cette personne qui veut apprendre à programmer va pas coder des applis qui nécessite les avantages du site (c'est souvent le plus rapide, on peut mettre les mains dans le cambouis pour tirer partie au mieux du processeur, etc...).
Personnellement, je conseillerais un langage comme Scala qui s'appuie sur la jvm et a donc tout les avantages de java (et ses librairies !), sans ses inconvénients : typage statique inféré "puissant" (on fait plus de truc qu'avec java), functionnel, impératif, OO, des facilité syntaxique pour la création d'objets, etc...
[^] # Re: question complexe
Posté par totof2000 . Évalué à 2.
Parce que si tu sais pas faire de C t'es pas un "vrai" programmeur ...
Et quand tu passe à l'assembleur, là tu es un génie.
# Python, fait à l'origine pour apprendre (ie. le basic revisité)
Posté par lolop (site web personnel) . Évalué à 1.
http://www.python.org/doc/essays/cp4e.html
Et... éventuellement commencer avec Python 3, qui corrige quelques trucs qui étaient conservés pour des raisons historiques et qui étaient un peu bancals.
Pour les docs en français, voir ici:
http://wiki.python.org/moin/Languages/French?highlight=(Cate(...)
Collection de liens: http://www.limsi.fr/Individu/pointal/python.html
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Python, fait à l'origine pour apprendre (ie. le basic revisité)
Posté par qdm . Évalué à 1.
# N'importe quel langage convient
Posté par Tutur . Évalué à 5.
Le problème des maths et de l'algorithmique, c'est que c'est pas évident pour beaucoup de monde et c'est pas très vendeur.
# Un peu de précision sur le débutor en question
Posté par alice . Évalué à 4.
- c'est le fonctionnel qui l'intéresse.
- il a surtout envie de voir ce qui se fait.
Donc ça élimine le C. Beaucoup de gens ont conseillé Python ou un langage de script proche, je crois que je vais me rabattre là dessus, mais je trouve que les langages dynamiques ne sont pas bons pour les débutants.
[^] # Re: Un peu de précision sur le débutor en question
Posté par totof2000 . Évalué à 2.
Tout dépend de ce que tu veux lui apprendre ..... Si la démarche est d'apprendre les concepts de base de la programmation (boucles, structures, objets ...), les langages dynamiques sont très bien ... et pas trop prise de tête.
Après selon le besoin et l'envie on peut faire passer à autre chose.
Sinon Pascal ou Ada peut faire l'affaire (peut être qu'Ada est un peu trop typé mais bon ....).
# et dot.Net ?
Posté par Benbben . Évalué à 0.
D'accord c'est pas libre, mais il pourra passer à Mono, avec Éclipse, lorsqu'il aura passer son poste de travail sous Linux !
Par ce que pour le moment c'est de l'Excel qu'il utilise et pas du OpenOffice Calc !
[^] # Re: et dot.Net ?
Posté par totof2000 . Évalué à 2.
# Bases de données ?
Posté par Obsidian . Évalué à 2.
Ce n'est pas son domaine mais en parlant avec les ingénieurs de la société, il s'est dit que ce serait intéressant de découvrir ce monde là d'autant qu'il utilise beaucoup Excel pour traiter toutes sortes de données, mais il pressent que ce n'est pas toujours l'outil adapté.
Il se peut également que ce dont ton collègue a besoin soit une base de donnée digne de ce nom. C'est très fréquent chez les gens qui utilisent Excel intensivement dans les bureaux. Dans ma précédente compagnie, j'avais tendance à dire que vlookup est là où Excel finit et où les bases de données commencent. S'il est motivé, peut-être qu'un peu de SQL lui serait bénéfique à terme ...
# Entre perl et python
Posté par GNUtoo . Évalué à 1.
sinon j'ai commencé par perl
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.