Je suis un programmeur autodidacte. J'apprends le RoR depuis octobre avec une intensité variable (parfois toute la journée, parfois rien pendant plusieurs semaines). Avant cela, je ne connaissais que Java, mais je le savais assez bien. J'ai entendu tellement de battage médiatique sur RoR et comment il est censé vous rendre heureux, productif, etc. Jusqu'à présent, cela ne m'a fait que frustrer. Je l'ai appris dans le livre Agile, et je soupçonne qu'une partie de la difficulté pourrait être liée au fait que je ne connais pas JavaScript et CSS, et que je n'ai qu'une compréhension fragile des bases de données et du HTML. Mais apparemment, il m'a fallu beaucoup plus de temps pour terminer le projet dans le livre Agile que les autres personnes, et je ne m'en souviens toujours pas beaucoup. Il y a des choses sur Rails que je n'arrive pas à comprendre, par exemple quand utiliser des symboles et quand NE PAS le faire, ou comment les méthodes dynamiques sont appelées.
Récemment, on m'a confié une petite tâche Rails où l'on me demande d'apporter une petite modification à l'interface. Cela m'a pris environ 25 heures et même si j'ai fait quelques progrès dans la compréhension du code, je n'ai toujours aucune idée de la façon de procéder. Je ne peux même pas demander à Stack Overflow car il y a tellement de code que je vais devoir fournir pour donner du contexte.
Donc ma question est dans le titre: RoR est-il censé prendre beaucoup de temps à apprendre ou suis-je juste lent? Se peut-il que j'aie appris du mauvais livre? Mon style d'apprentissage est tel que je ne comprends rien ou que je comprends tout, si cela a du sens.
la source
Réponses:
D'après votre question, il est évident que ce n'est pas seulement Rails que vous essayez d'apprendre, mais, en même temps, vous devez comprendre les concepts de développement Web, ainsi que les bases de données et SQL. C'est une tâche énorme, alors soyez patient.
D'un autre côté, avec Rails, vous n'avez pas le choix - vous devez apprendre les trois: M, V et C à partir de MVC , tous en même temps, mais ce serait le cas avec n'importe quel framework MVC, Rails étant parmi les plus faciles , Je dirais.
Ce que vous pourriez faire à la place est de commencer avec un cadre plus simple, tel que Sinatra, jusqu'à ce que vous soyez à l'aise avec les concepts de base de Ruby et HTTP, puis de progresser lentement vers une présentation plus riche (vues et CSS) et des modèles basés sur une base de données.
la source
Lorsque vous apprenez Rails et que votre seul arrière-plan est Java, vous n'êtes pas seulement en train d'apprendre un nouveau framework web. Vous apprenez également un nouveau langage de programmation, qui est très différent de Java.
Cela peut vous aider à apprendre Ruby d'abord, puis à regarder Rails et ses conventions. Apprendre ce que fait Rails et comment il est devenu beaucoup plus facile pour moi une fois que je n'avais plus de difficulté à comprendre Ruby et que je pouvais lire (et écrire) du code / des modèles Rails.
J'ai parcouru le didacticiel Ruby on Rails et je l'ai trouvé très utile. Le livre de tutoriel est gratuit et il existe une version pour Rails 2.3 et 3.0. Vous pourriez également trouver utile de lire sur MVC (Model-View-Controller) et le développement Web / le cycle de vie des pages en général.
la source
Anita, j'ai eu presque la même expérience que toi. mais je pense que je comprends maintenant pourquoi il est si difficile à apprendre:
Je l'apprends depuis plus d'un an maintenant et voici certaines choses qui, selon moi, facilitent l'apprentissage, auxquelles je suis parvenu par expérience:
S'il vous plaît, n'abandonnez pas - vous êtes intelligent, mais semblez avoir un style d'apprentissage similaire à moi, et Rails est juste très difficile à apprendre et pas particulièrement bien enseigné (complètement) n'importe où.
la source
Peut-être que le problème est moins rubis (et / ou rails) et plus le fait que vous n'avez qu'une «compréhension fragile» de HTML / CSS / JavaScript et SQL et des bases de données.
Rails est un «framework full-stack». Si votre expérience de programmation antérieure est un noyau Java avec peut-être un peu de swing, alors il y a beaucoup de concepts à apprendre en même temps.
Si j'approchais de ce problème, je commencerais par faire en sorte que SQL et la modélisation relationnelle soient cloués en premier (il n'y a aucun problème de mise en page du navigateur avec SQL!). Lorsque vous êtes sûr de la couche de base de données, jouez avec ActiveRecord et découvrez comment rails enveloppe les tuples de la base de données.
La prochaine étape serait alors d'apprendre les contrôleurs et le routage puis l'interface utilisateur (html / javascript etc).
Si vous voulez faire du développement Web en utilisant à peu près n'importe quel framework Web, vous devrez comprendre la modélisation SQL et relationnelle (même si vous choisissez ensuite la route NoSQL plus tard).
la source
Je viens également d'un arrière-plan Java et j'ai eu beaucoup de mal à apprendre Rails. J'ai eu les mêmes problèmes que vous avez mentionnés. J'ai trouvé que regarder railscasts.com m'a aidé au début. Le simple fait de voir comment quelqu'un d'autre a fait les choses m'a aidé à comprendre et j'ai ensuite commencé à faire les choses moi-même. Je n'ai pas touché Rails depuis la sortie de Rails 3.
la source
Vos mots, "parfois toute la journée, parfois rien pendant plusieurs semaines" me disent tout ce que j'ai besoin de savoir. Si vous apprenez un nouveau langage ET un nouveau framework (je suppose que c'est ce que vous faites parce que vous mentionnez "Ruby on Rails" et pas seulement "Ruby"), la cohérence est payante. J'ai trouvé que la seule façon d'apprendre et de retenir des concepts était d'étudier environ une demi-heure par jour, généralement à la fin de la journée, juste avant le coucher. Si j'étudie plus d'une demi-heure, je deviens agité et perds le focus. Si j'étudie moins, je ne retiens pas ce que j'ai appris.
Éliminez les distractions - c'est mon meilleur conseil. Et étudiez chaque jour de la semaine. Avant de vous en rendre compte, les choses commenceront à se mettre en place.
Je n'ai vu aucun article de suivi, alors je me demande comment vous avez fait. Cela fait 2 ans, et cela devrait certainement être beaucoup de temps pour apprendre à être un développeur web haut de gamme!
la source
Je penche Ruby and Rails depuis environ 8 mois maintenant. Je suis arrivé avec une compréhension du HTML, XML, SQL. J'ai toujours trouvé le même problème que vous, ce qui a fonctionné pour moi était de travailler sur de vrais problèmes, pas seulement de lire et d'espérer comprendre. Vous devrez peut-être exécuter de nombreux petits tests de morceaux de code ou du mvc pour saisir un concept. Je travaille toujours sur les symboles. Prenez-le simplement un problème à la fois et au fur et à mesure que vous les résolvez, vous apprendrez quelque chose nécessaire pour résoudre un autre problème dans votre projet.
Réponse: Non, il n'est pas censé avoir une courbe d'apprentissage abrupte, la courbe est différente selon votre parcours.
la source
Ça peut. Je sais que je rencontre la «courbe d'apprentissage» chaque fois que j'essaie de m'asseoir et de me concentrer sur l'apprentissage de Rails (tous les quelques mois depuis environ 2 ans et plus maintenant). Le problème est que tant de choses dans Rails changent à un rythme ultra-rapide, et souvent les ressources que vous trouvez sont obsolètes presque immédiatement.
Mon conseil est de commencer par se concentrer sur Ruby (les bases au moins) puis sur Rails, donc vous ne comptez pas à 100% sur le framework Rails pour tout gérer pour vous. Vous devez également rafraîchir HTML / CSS / Javascript pour des raisons évidentes. De plus, par expérience, ne vous laissez pas emporter par le roulement constant du monde de Rails: si vous pouvez ignorer toutes les nouveautés que les cognoscenti Rails évangélisent comme Haml, Sass, RSpec / BDD, Cucumber, etc. ou vous vous noierez en devant apprendre BDD et RSpec pour écrire votre code, avoir à apprendre Haml et Sass (pas difficile mais quand même, c'est une autre chose à apprendre) pour coder le front-end, etc. Commencez aussi simple que possible.
la source
Il existe une courbe d'apprentissage pour tout langage de programmation. Nous n'apprenons pas vraiment une langue de manière conventionnelle. Comme C / C ++, mais lorsque les choses se présentent, nous devons également connaître les écrous et boulons de quelques technologies.
La meilleure façon de l'aborder est d'apprendre en faisant. Prenez toutes les précautions pour le faire vous-même. Habituellement, nous lisons les choses, mais quand il s'agit de la vraie image, nous nous en tiendrons à cela. Je suis un programmeur C ++ natif, je peux également coder en C #. Je sais qu'il y a beaucoup de bonté dans cette langue et cette bibliothèque d'un point de vue abstrait, mais la plupart des sujets que je viens de lire et d'ignorer. Donc, si vous me demandez, je suis en fait handicapé.
J'apprends le framework Django. Le livre que j'ai choisi est d'une simplicité intéressante et crée une application de signet social. C'est donc comme apprendre des choses de zéro au niveau avancé en faisant un vrai projet pratique. Je vous suggère d'aborder de cette façon car nous apprenons tous vous-même.
la source
Le problème avec RoR, en particulier avec le deuxième "R", c'est que la plupart des didacticiels d'apprentissage se concentrent sur vous enseigner le style "code-singe". Surtout le livre Agile, il est plein d'étapes de programmation superficielles "maintenant nous faisons juste cela, ne vous embêtez pas pourquoi". De plus, le fait qu'ils continuent de changer de paradigme - c'est-à-dire qu'ils vantaient d'abord le RJS en cours de route, tout d'un coup, c'est à propos de l'UJS.
Comme certaines personnes ici l'ont suggéré, vous pourriez essayer d'abord d'apprendre les tenants et aboutissants du langage Ruby lui-même, puis de passer au cadre. Si vous voulez toujours apprendre les deux ensemble, j'ai trouvé ce livre intitulé "Ruby for Rails" très utile.
la source