Une introduction à Ruby

Vous rêvez d’apprendre à programmer, mais vous ne savez pas quel langage apprendre ? Pourquoi ne pas apprendre le Ruby ? Ruby est un langage de programmation libre et dynamique, qui met l’accent sur la simplicité et la productivité. Sa syntaxe élégante en facilite la lecture et l’écriture.

Prérequis
Connaître les quatre opérations mathématiques élémentaires.

Prérequis optionnels
Avoir déjà lu ce tutoriel qui introduit la programmation et aide à choisir un premier langage.
Connaître la notion de nombres relatifs.
Avoir des bases dans l’utilisation de la ligne de commande (savoir l’ouvrir et savoir entrer une commande).

Objectifs
Apprendre les bases de la programmation en Ruby.

L’apprentissage de la programmation peut-être une course pour certains. Mais cette idée n’est bonne que s’il s’agit d’une course d’endurance. En effet, le but n’est pas de finir le tutoriel le plus rapidement possible. Le but est de prendre son temps pour comprendre toutes les notions et surtout pour les appliquer. Seule la pratique permet de progresser, et il vaut mieux rester une semaine sur un chapitre pour maîtriser toutes les notions qui y sont traitées, plutôt que de passer une semaine sur tout le tutoriel.

Remerciements

Nous voulons remercier plusieurs personnes avant de commencer :

  • baptisteguil le créateur originel et premier rédacteur de ce tutoriel ;
  • Titi_Alone et tleb pour leur participation ;
  • Dominus Carnufex pour son travail monstrueux et très rapide de corrections orthotypographiques ;
  • Arius pour son formidable travail de validation ;
  • Tous les membres qui ont apporté leurs conseils, leurs avis et leurs corrections.

Les bases

  1. Introduction

    1. Qu’est-ce que Ruby ?

    2. Installation

    3. Prise en main

    4. Exercices

  2. Variables et chaînes de caractères

    1. Variables

    2. Chaînes de caractères

    3. Conversion de variables

    4. Saisir et afficher des informations

    5. Exercices

  3. Les conditions

    1. Opérateurs de comparaison

    2. La structure if-else

    3. La structure case-when

    4. Les conditions ternaires

    5. Exercices

  4. Les boucles

    1. La boucle while

    2. La boucle for

    3. Contrôler l’exécution d’une boucle

    4. La boucle loop

    5. Les itérateurs

    6. Exercices

  5. Les tableaux

    1. Généralités sur les tableaux

    2. Opérations sur les tableaux

    3. Lien avec les chaînes de caractères

    4. Exercices

  6. Les méthodes

    1. Principe et schéma d’une méthode

    2. Écrire des méthodes

    3. Les paramètres

    4. Exercices

  7. Les hachages

    1. Des tableaux associatifs

    2. Opérations sur les hachages

    3. Hachages et tableaux

    4. Exercices

  8. Retour sur les variables

    1. Une histoire de références

    2. Les variables globales

    3. Les symboles

    4. Modifier nos variables dans des méthodes

Organisation de code

  1. Les objets

    1. Ruby et les objets

    2. Construction d'un objet

    3. Analyse d'un objet

    4. Exercices

  2. Les classes

    1. Attributs

    2. Un modèle de construction

    3. Du nouveau sur les classes ?

    4. Exercices

  3. Les modules

    1. Les modules

    2. Le mot-clé self

    3. Modules et classes

    4. Exercices

  4. Des objets plus complexes

    1. Héritage et composition

    2. Mixer un module dans une classe

    3. Quelle technique utiliser ?

    4. Exercices

  5. La gestion des erreurs

    1. Les exceptions

    2. Gérer les exceptions

    3. De l'autre côté du miroir

    4. Exercices

  6. Les blocs

    1. La notion de fermeture

    2. Les blocs

    3. Proc et lambda

    4. Exercices

Les outils de Ruby

  1. Les expressions régulières

    1. Construire une expression régulière

    2. Des informations supplémentaires

    3. Et encore ?

    4. Exercices

Annexes

  1. Écrire le code dans des fichiers

    1. Les éditeurs de texte

    2. Windows — Notepad++

    3. Linux — gedit

    4. Les problèmes possibles



Ce tutoriel d’introduction à Ruby est maintenant terminé. Mais la route à parcourir est encore longue. Vous pouvez regarder les autres tutoriels sur Ruby ou encore apprendre l’algorithmique (qui vous sera vraiment utile) avec ce tutoriel et les autres tutoriels d’algorithmique.

N’oubliez pas, la pratique est votre meilleure amie. Exercez-vous, exercez-vous et… amusez-vous !

Dans ce tutoriel, nous avons souvent dit de certaines pratiques qu’elles étaient bonnes ou mauvaises. Pour cela, nous nous sommes appuyés en particulier sur ce document, notamment pour les pratiques de mise en page (nommage, indentation…).

20 commentaires

Bon tutoriel et bien conçu mais j'ai du mal à digéré le fait qu'il s'agisse d'une introduction et que nous soyons obligé d'avoir des connaissances au préalable. Du moins la plupart des notions théoriques sont survolés trop rapidement. Longtemps j'ai programmer en ce magnifique langage et longtemps j'ai traqué tel ou tel cours, susceptibles d'attirer mon attention fragile. Un gros tuto complet et à jour pour débutant serait vraiment dans l'esprit de l'ancien sdz, n'est-ce pas l'objectif ici?
Sinon, rien à dire

Merci à tous pour vos messages.

Bon tutoriel et bien conçu mais j'ai du mal à digéré le fait qu'il s'agisse d'une introduction et que nous soyons obligé d'avoir des connaissances au préalable. Du moins la plupart des notions théoriques sont survolés trop rapidement. Longtemps j'ai programmer en ce magnifique langage et longtemps j'ai traqué tel ou tel cours, susceptibles d'attirer mon attention fragile. Un gros tuto complet et à jour pour débutant serait vraiment dans l'esprit de l'ancien sdz, n'est-ce pas l'objectif ici?
Sinon, rien à dire

jhonthekiller102

Comme tous les tutoriels, il est voué à s'améliorer et si ça doit être pour devenir un tutoriel complet alors soit (je suis d'ailleurs en train de rajouter des précisions).

+3 -0

J'édite car j'ai un point de vue différent, je souhaite être plus objectif, je vais revenir sur certain points :

  • Obligé de maîtriser un chouïa la prog alors que le tuto m'a l'air expliqué pour les débutants, malgré ce fait c'est plutôt dommage comme perspective pour un langage comme Ruby.

  • Certes, ce n'est qu'une introduction mais outre, le tutoriel survole un peu trop les infos, il ne se concentre que sur la syntaxe pur et dur et fait l'impasse sur certaines explications (peut-être que cela justifie l'avertissement dans l'intro, m'enfin…)

  • La structure est un peu trop classique à mon goût, le langage étant totalement objet, autant innové.

Bon travail quand même. Des améliorations sont nécessaires pour son existence cependant.

+2 -0

Salut. :) J'aime beaucoup le tuto, j'ai cependant peur qu'il ne se complète pas parce que c'est aujourd'hui très difficile de trouver un bon cours à propos de ce langage. J'espère simplement que vous parlerez de la POO en profondeur, des bases de données, etc… :D

Enjoy! ^^

jhonthekiller102

Salut,

Content que le tutoriel te plaise. On discute déjà à propos de ce qu'il faut rajouter :)

+2 -0

Votre cour est très bien écrit, félicitations !
Juste quelque chose qui me titille : c'est que vous parlez de la boucle begin ... end while .... Or celle-ci est déconseillé par le créateur du langage, il est préférable selon lui d'utiliser la boucle :

1
2
3
4
loop do
  # instructions
  break if # condition(s)
end

J'attend de voir la partie sur les tables de hash avec les symboles qui sont super bien pensés !

+2 -0

Votre cours est très bien écrit, félicitations !

Merci. :)

Juste quelque chose qui me titille : c'est que vous parlez de la boucle begin ... end while .... Or celle-ci est déconseillé par le créateur du langage, il est préférable selon lui d'utiliser la boucle :

1
2
3
4
loop do
  # instructions
  break if # condition(s)
end

Tu peux aller voir la version en bêta si tu veux, on en parle.

J'attends de voir la partie sur les tables de hash avec les symboles qui sont super bien pensés !

C'est dans la prochaine version de la bêta (c'est déjà écrit et tout, il reste juste à le mettre en bêta). Par contre c'est un chapitre sur les hachages et plus loin dan un autre chapitre on parle des symboles et de leur usage avec le hachages.

+0 -0

Bonjour à tous. Pour ceux qui veulent déjà voir une version plus complète du tutoriel, vous pouvez aller voir la version bêta. Cela nous aidera beaucoup d'avoir vos avis à son propos afin de pouvoir offrir un tutoriel encore meilleur.

Au programme de nouveaux chapitres et une partie II sur la programmation objet.

+1 -0

Je dois avouer que je n'ai fait que parcourir ce tutoriel.

Serai-il possible de faire apparaître les points forts par rapport à Python.

J'y vois beaucoup de points communs avec celui-ci (avec en plus quelques BEGIN, END qui font penser au bon vieux Pascal…)

Le tutoriel a été mis jour. Merci à artragis pour sa validation très rapide.

Serai-il possible de faire apparaître les points forts par rapport à Python.

Tu peux aller regarder ce sujet qui en parle.

+0 -0

Bonjour,

Tout d'abord je tiens à vous féliciter pour votre superbe tuto.

PavéCésar!

Je me suis mit à Ruby il y a peu suite aux conseils d'un collègue. Je suis d'abord passé par la case OpenClassrooms car je ne connaissais absolument pas votre site web. J'ai été très déçu de celui présent sur OC car bien que présenté comme une introduction au langage, les bases sont peu présentée voir pas du tout pour certaines choses. Le format de type vidéo, bien qu'il peut paraître plus "accessible" n'est vraiment pas pratique. Je ne retenais pas grand chose et je me contentais d'être un spectateur passif. De plus ce n'est pas très pratique quand on veut revoir ou vérifier quelque chose. Ensuite la dificultée de l'activité de fin de cours me paraissait complètement disproportionnée en comparaison avec le reste du cours. Je me suis senti complètement largué lorsque j'ai ouvert le projet à rendre.

J'ai donc fait un tour sur leur forum histoire de voir si ce n'était pas simplement moi qui était à coté de la plaque. C'est alors que je suis tombé sur un utilisateur qui conseillait de faire un tour sur votre site afin d'avoir de bonnes bases en Ruby grâce à ce tuto.

Encore une fois merci et félicitation. Les explications sont claires et les nombreux exercices en fin de chapitre me font vraiment progresser.

Bonne continuation à vous, moi je retourne à mon apprentissage !

+1 -0

Encore une fois merci et félicitation. Les explications sont claires et les nombreux exercices en fin de chapitre me font vraiment progresser.

Merci à toi. Ça fait plaisir de savoir que le tutoriel est clair et qu’il est apprécié. Si tu as des remarques et des retours sur ce qui peut être amélioré, n’est pas clair ou est mal expliqué, n’hésite pas. :)

+0 -0

Merci pour ce tuto très bien écrit ,vivement la suite. Petite question il y a t’il un tuto sur Ruby on rails de prévu ? même si je c’est qu’il y en a déjà un sur openclassrooms , et je voulais vous demander est ce que de commencer de zéro le développement web avec Ruby on rails et une bonne idée ? sachant que je n’ai aucune connaissance à part faire du HTML/CSS, car au début je voulais comme la plupart des gens commencer par PHP, mais je n’ai pas du tout accroché par sa syntaxe que je trouve pas terrible. Dites moi simplement si un pur débutant peux ce lancer dans le web en apprenant Ruby et passer directement à rails

+0 -0

Merci pour ce tuto très bien écrit ,vivement la suite

Salut, tu peux déjà avoir un aperçu de la suite dans la version en bêta. D’ailleurs, si tu as des retours à faire sur le tutoriel ou sur la version en bêta (dans ce cas, le faire sur le sujet de la bêta), n’hésites pas. :)

Petite question il y a t’il un tuto sur Ruby on rails de prévu ? même si je c’est qu’il y en a déjà un sur openclassrooms

Il y en a un en bêta, mais l’auteur ne s’est pas connecté depuis un moment. Quelqu’un le reprendra peut-être ou en créera un de nouveau.

et je voulais vous demander est ce que de commencer de zéro le développement web avec Ruby on rails et une bonne idée ? sachant que je n’ai aucune connaissance à part faire du HTML/CSS, car au début je voulais comme la plupart des gens commencer par PHP, mais je n’ai pas du tout accroché par sa syntaxe que je trouve pas terrible. Dites moi simplement si un pur débutant peux ce lancer dans le web en apprenant Ruby et passer directement à rails

Pour utiliser Rails, avoir des bases solides en Ruby sera suffisant et tu peux approfondir tes connaissances en Ruby pendant que tu apprends à utiliser Rails. Bien sûr, il te faudra également des connaissances en HTML et en CSS, mais là ce n’est pas vraiment lié à Rails, mais plus à la construction même du site.

PS : Tu peux aussi regarder du côté de Framework comme Sinatra, qui peuvent être une alternative intéressante à Rails.

+0 -0

Merci pour ce tuto très bien écrit ,vivement la suite

Salut, tu peux déjà avoir un aperçu de la suite dans la version en bêta. D’ailleurs, si tu as des retours à faire sur le tutoriel ou sur la version en bêta (dans ce cas, le faire sur le sujet de la bêta), n’hésites pas. :)

Petite question il y a t’il un tuto sur Ruby on rails de prévu ? même si je c’est qu’il y en a déjà un sur openclassrooms

Il y en a un en bêta, mais l’auteur ne s’est pas connecté depuis un moment. Quelqu’un le reprendra peut-être ou en créera un de nouveau.

et je voulais vous demander est ce que de commencer de zéro le développement web avec Ruby on rails et une bonne idée ? sachant que je n’ai aucune connaissance à part faire du HTML/CSS, car au début je voulais comme la plupart des gens commencer par PHP, mais je n’ai pas du tout accroché par sa syntaxe que je trouve pas terrible. Dites moi simplement si un pur débutant peux ce lancer dans le web en apprenant Ruby et passer directement à rails

Pour utiliser Rails, avoir des bases solides en Ruby sera suffisant et tu peux approfondir tes connaissances en Ruby pendant que tu apprends à utiliser Rails. Bien sûr, il te faudra également des connaissances en HTML et en CSS, mais là ce n’est pas vraiment lié à Rails, mais plus à la construction même du site.

PS : Tu peux aussi regarder du côté de Framework comme Sinatra, qui peuvent être une alternative intéressante à Rails.

Karnaj

Merci à vous , Sinatra c’est un peux Flask en Ruby ? connaissez vous des forums Ruby On rails FR a part Grafikart Developpez Humancoders ,car c’est quand même incroyable qu’il y est pas de communauté française comme le fait Django

Merci à vous , Sinatra c’est un peux Flask en Ruby ?

Ouep, on peut le voir un peu comme ça.

connaissez vous des forums Ruby On rails FR a part Grafikart Developpez Humancoders ,car c’est quand même incroyable qu’il y est pas de communauté française comme le fait Django

Je ne suis pas trop Rails, donc je ne peux pas répondre au mieux. Le mieux serait que tu crées un nouveau sujet à ce propos sur le forum. Je pense qu’on peut aussi trouver des informations à ce propos sur ce site;

PS : cette banque de liens est aussi intéressante.

+0 -0

Bonjour.

Je ne fais que parcourir ce tuto à la recherche d’infos précises. C’est vrai que c’est agréable à lire, ça me semble clair et bien structuré.

J’ai cependant une toute petite remarque à faire parce que j’aime bien pinailler ;) Dans la partie sur les conventions de nommage des variables, il est écrit qu’on ne peut pas avoir de caractères accentués. Or dans l’exemple de la concaténation des chaines de caractères (avec le symbole *), la variable s’appelle répété…

De même avec la variable âge dans la partie sur les conditions.

Voilà. J’avais prévenu que j’aimais couper les cheveux en quatre. Je continue ma lecture. A+

+0 -0

J’ai cependant une toute petite remarque à faire parce que j’aime bien pinailler ;) Dans la partie sur les conventions de nommage des variables, il est écrit qu’on ne peut pas avoir de caractères accentués. Or dans l’exemple de la concaténation des chaines de caractères (avec le symbole *), la variable s’appelle répété…

Effectivement, c’est à modifier. En fait, généralement, les codes sont en anglais et donc pas d’accents (ici, le choix pédagogique a été de coder en utilisant des noms de variables en français), et c’est comme ça que cette remarque – fausse – s’est retrouvé ici.

J’avais prévenu que j’aimais couper les cheveux en quatre.

C’est tout à ton honneur. Si tu as d’autres remarques, n’hésites pas. ;)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte