Ich bin ein Autodidakt Programmierer. Ich lerne RoR seit Oktober mit unterschiedlicher Intensität (manchmal den ganzen Tag, manchmal mehrere Wochen lang nichts). Vorher kannte ich nur Java, wusste es aber ziemlich gut. Ich habe so viel Hype über RoR gehört und wie es Sie glücklich, produktiv usw. machen soll. Bisher hat es mich nur frustriert. Ich habe es aus dem Agile-Buch gelernt, und ich vermute, dass ein Teil der Schwierigkeit damit zusammenhängt, dass ich JavaScript und CSS nicht kenne und nur ein wackeliges Verständnis für Datenbanken und HTML habe. Aber anscheinend habe ich viel länger gebraucht, um das Projekt im Agile-Buch fertigzustellen, als andere Leute, und ich erinnere mich immer noch nicht an viel davon. Es gibt einige Dinge an Rails, die ich einfach nicht verstehen kann, z. B. wann Symbole zu verwenden sind und wann nicht, oder wie dynamische Methoden aufgerufen werden.
Kürzlich erhielt ich eine kleine Rails-Aufgabe, bei der ich gebeten wurde, eine kleine Änderung an der Benutzeroberfläche vorzunehmen. Ich habe ungefähr 25 Stunden gebraucht und obwohl ich einige Fortschritte beim Verstehen des Codes gemacht habe, weiß ich immer noch nicht, wie ich vorgehen soll. Ich kann nicht einmal Stack Overflow fragen, weil ich so viel Code bereitstellen muss, um den Kontext zu bestimmen.
Meine Frage steht also im Titel: Soll RoR eine lange Lernzeit in Anspruch nehmen oder bin ich nur langsam? Kann es sein, dass ich aus dem falschen Buch gelernt habe? Mein Lernstil ist so, dass ich entweder nichts verstehe oder alles verstehe, wenn das Sinn macht.
quelle
Antworten:
Aus Ihrer Frage geht hervor, dass Sie nicht nur Rails lernen möchten, sondern auch Konzepte der Webentwicklung sowie Datenbanken und SQL verstehen müssen. Es ist eine große Aufgabe, bitte haben Sie etwas Geduld.
Auf der anderen Seite haben Sie bei Rails keine Wahl - Sie müssen alle drei gleichzeitig von MVC lernen: M, V und C , aber das wäre bei jedem MVC-Framework der Fall, wobei Rails zu den einfachsten zählt , Ich würde sagen.
Sie können stattdessen mit einem einfacheren Framework wie Sinatra beginnen, bis Sie mit den grundlegenden Konzepten von Ruby und HTTP vertraut sind, und dann langsam zu einer umfassenderen Darstellung (Ansichten und CSS) und datenbankbasierten Modellen übergehen.
quelle
Wenn Sie Rails lernen und Ihr einziger Hintergrund Java ist, lernen Sie nicht nur ein neues Webframework. Sie lernen auch eine neue Programmiersprache, die sich erheblich von Java unterscheidet.
Es kann hilfreich sein, zuerst Ruby zu lernen und dann Rails und seine Konventionen zu betrachten. Zu lernen, was Rails macht und wie es funktioniert, ging für mich viel einfacher, als ich mich nicht mehr mit Ruby auseinandersetzen musste und Rails-Code / Vorlagen lesen (und schreiben) konnte.
Ich habe das Ruby on Rails Tutorial durchgesehen und fand es sehr hilfreich. Das Tutorial ist kostenlos und es gibt eine Version für Rails 2.3 und 3.0. Es kann auch hilfreich sein, sich über MVC (Model-View-Controller) und Webentwicklung / Seitenlebenszyklus im Allgemeinen zu informieren.
quelle
Anita, ich habe fast die gleiche Erfahrung wie du gemacht. Aber denke, ich verstehe jetzt, warum es so schwer zu lernen ist:
Ich lerne es seit über einem Jahr und hier sind einige Dinge, die es meiner Meinung nach leichter machen zu lernen, zu denen ich aus Erfahrung gekommen bin:
Bitte nicht aufgeben - Sie sind intelligent, scheinen aber einen ähnlichen Lernstil zu haben wie ich, und Rails ist nur sehr schwer zu lernen und nicht besonders gut (vollständig) unterrichtet.
quelle
Vielleicht ist das Problem weniger rubinrot (und oder Rails) als vielmehr die Tatsache, dass Sie nur ein "wackeliges Gespür" für HTML / CSS / JavaScript und SQL und Datenbanken haben.
Rails ist ein 'Full-Stack-Framework'. Wenn Ihre vorherige Programmiererfahrung Kern-Java mit vielleicht etwas Swing ist, dann gibt es eine Menge Konzepte, die Sie gleichzeitig lernen müssen.
Wenn ich mich diesem Problem nähern würde, würde ich damit beginnen, zuerst SQL und relationale Modellierung zu erhalten (bei SQL gibt es keine Probleme mit dem Browser-Layout!). Wenn Sie mit der Datenbankschicht vertraut sind, spielen Sie mit ActiveRecord und lernen Sie, wie Rails Tupel aus der Datenbank umschließt.
Der nächste Schritt wäre dann, die Controller und das Routing und dann die Benutzeroberfläche (HTML / Javascript usw.) zu lernen.
Wenn Sie eine Webentwicklung mit so ziemlich jedem Webframework durchführen möchten, müssen Sie SQL und relationale Modellierung verstehen (auch wenn Sie später die NoSQL-Route wählen).
quelle
Ich komme auch aus Java und hatte eine ziemlich schwierige Zeit mit dem Erlernen von Rails. Ich hatte alle die gleichen Probleme, die Sie erwähnt haben. Ich habe festgestellt, dass Railscasts.com am Anfang geholfen hat. Nur zu sehen, wie jemand anderes Dinge tat, half mir zu verstehen und ich fing dann an, Dinge selbst zu tun. Ich habe Rails nicht angerührt, seitdem Rails 3 herausgekommen ist.
quelle
Ihre Worte "manchmal den ganzen Tag, manchmal mehrere Wochen lang nichts" sagen mir alles, was ich wissen muss. Wenn Sie eine neue Sprache und ein neues Framework lernen (ich gehe davon aus, dass Sie das tun, weil Sie "Ruby on Rails" und nicht nur "Ruby" erwähnen), zahlt sich Konsistenz aus. Ich habe die einzige Möglichkeit gefunden, Konzepte zu lernen und beizubehalten, indem ich ungefähr eine halbe Stunde pro Tag lerne, normalerweise am Ende des Tages, kurz vor dem Zubettgehen. Wenn ich mehr als eine halbe Stunde lerne, werde ich unruhig und verliere den Fokus. Wenn ich weniger lerne, behalte ich nicht das, was ich gelernt habe.
Ablenkungen vermeiden - das ist mein bester Rat. Und lerne jeden einzelnen Tag der Woche. Bevor Sie es wissen, werden die Dinge beginnen, an ihren Platz zu fallen.
Ich habe keine Follow-up-Posts gesehen, daher frage ich mich, wie es Ihnen ergangen ist. Es sind 2 Jahre vergangen, und das sollte auf jeden Fall genug Zeit sein, um zu lernen, ein erstklassiger Webentwickler zu sein!
quelle
Ich lehne Ruby and Rails seit ungefähr 8 Monaten. Ich kam mit einem Verständnis von HTML, XML, SQL. Ich fand immer noch das gleiche Problem wie Sie. Was für mich funktionierte, war, an echten Problemen zu arbeiten, nicht nur zu lesen und zu hoffen, sie zu verstehen. Möglicherweise müssen Sie viele kleine Tests von Codeteilen oder der MVC durchführen, um ein Konzept zu verstehen. An Symbolen arbeite ich noch. Nehmen Sie immer nur ein Problem auf einmal und lernen Sie beim Lösen etwas, das Sie benötigen, um ein anderes Problem in Ihrem Projekt zu lösen.
Antwort: Nein, es darf keine steile Lernkurve geben, die Kurve ist je nach Hintergrund unterschiedlich.
quelle
Es kann. Ich weiß, dass ich jedes Mal in die "Lernkurve" gerate, wenn ich mich wirklich hinsetze und mich auf das Lernen von Rails konzentriere (seit mehr als 2 Jahren alle paar Monate). Das Problem ist, dass sich in Rails so viele Dinge blitzschnell ändern und die Ressourcen, die Sie finden, oftmals fast sofort veraltet sind.
Mein Rat ist, sich zunächst auf Ruby (zumindest die Grundlagen) und dann auf Rails zu konzentrieren, damit Sie sich nicht zu 100% auf das Rails-Framework verlassen, um alles für Sie zu erledigen. Sie sollten aus offensichtlichen Gründen auch HTML / CSS / Javascript auffrischen. Lassen Sie sich auch aus Erfahrung nicht in die ständige Aufregung der Rails-Welt verwickeln: Wenn Sie all die neuen Dinge ignorieren können, die die Rails-Kognoszenten verkünden, wie Haml, Sass, RSpec / BDD, Gurke usw., oder Sie werden ertrinken müssen Lernen Sie BDD und RSpec, um Ihren Code zu schreiben, und müssen Sie Haml und Sass lernen (nicht schwer, aber es ist eine andere Sache, die Sie lernen müssen), um das Front-End usw. zu codieren. Beginnen Sie so einfach wie möglich.
quelle
Es gibt eine Lernkurve für jede Programmiersprache. Wir lernen eine Sprache nicht wirklich auf herkömmliche Weise. Wie C / C ++, aber wenn es um die Realität geht, müssen wir auch die Schrauben und Muttern einiger weniger Technologien kennen.
Der beste Weg, sich dem anzunähern, ist zu lernen. Nehmen Sie sich alle Mühe, es selbst zu tun. Normalerweise lesen wir Dinge, aber wenn es um das eigentliche Bild geht, werden wir uns daran halten. Ich bin ein nativer C ++ - Programmierer und kann auch in C # programmieren. Ich weiß, dass diese Sprache und Bibliothek aus abstrakter Sicht sehr gut sind, aber viele der Themen, die ich gerade gelesen und übersprungen habe. Wenn Sie mich also fragen, bin ich tatsächlich behindert.
Ich lerne Django Framework. Das Buch, für das ich mich entschieden habe, ist interessant einfach und erstellt eine Anwendung für soziale Lesezeichen. Es ist also so, als würde man Dinge von Grund auf lernen bis zum fortgeschrittenen Level, indem man ein reales Projekt durchführt. Ich schlage vor, dass Sie so vorgehen, wie wir es selbst lernen.
quelle
Die Sache mit RoR, insbesondere mit dem zweiten "R", ist, dass sich die meisten Lern-Tutorials darauf konzentrieren, Ihnen den "Code-Monkey" -Stil beizubringen. Besonders das Agile-Buch ist voll von oberflächlichen Programmierschritten. Und die Tatsache, dass sie ihr Paradigma immer wieder ändern - dh, dass sie zuerst das RJS angepriesen haben, jetzt geht es plötzlich um das UJS.
Wie einige Leute hier vorgeschlagen haben, sollten Sie zuerst die Grundlagen der Ruby-Sprache selbst lernen und dann mit dem Framework fortfahren. Wenn Sie trotzdem beides zusammen lernen möchten, empfand ich dieses Buch mit dem Titel "Ruby for Rails" als sehr hilfreich.
quelle