Я программист-самоучка. Я изучаю RoR с октября с различной интенсивностью (иногда весь день, иногда ничего в течение нескольких недель). До этого я знал только Java, но знал это довольно хорошо. Я слышал столько ажиотажа о RoR и о том, как он должен сделать вас счастливыми, продуктивными и т. Д. Пока что это только меня расстроило. Я узнал об этом из книги Agile, и я подозреваю, что часть трудностей может быть связана с тем, что я не знаю JavaScript и CSS, а имею лишь слабое понимание баз данных и HTML. Но, видимо, мне потребовалось гораздо больше времени, чтобы завершить проект в книге Agile, чем другим людям, и я до сих пор не помню о нем много. В Rails есть некоторые вещи, которые я просто не могу понять, например, когда использовать символы, а когда нет, или как вызывать динамические методы.
Недавно мне дали небольшое поручение Rails, где меня попросили внести небольшое изменение в интерфейс. Это заняло у меня около 25 часов, и хотя я немного продвинулся в понимании кода, я все еще не знаю, как поступить. Я даже не могу попросить переполнение стека, потому что я должен предоставить так много кода, чтобы дать контекст.
Таким образом, мой вопрос в заголовке: должен ли RoR учиться долго или я просто медленный? Может быть, я учился не по той книге? Мой стиль обучения таков, что я либо ничего не понимаю, либо понимаю все, если это имеет смысл.
источник
Ответы:
Из вашего вопроса очевидно, что вы пытаетесь изучать не только Rails, но в то же время вы должны понимать концепции веб-разработки, а также базы данных и SQL. Это огромная задача, поэтому, пожалуйста, будьте терпеливы.
С другой стороны, с Rails у вас нет выбора - вы должны изучить все три: M, V и C из MVC , все одновременно, но это было бы в случае с любой средой MVC, причем Rails был одним из самых простых , Я бы сказал.
Вместо этого вы можете начать с более простой среды, такой как Sinatra, пока не освоитесь с основными понятиями Ruby и HTTP, а затем постепенно продвигаться к более богатому представлению (представлениям и CSS) и моделям на основе баз данных.
источник
Когда вы изучаете Rails, и ваш единственный опыт - Java, вы не просто изучаете новую веб-среду. Вы также изучаете новый язык программирования, который значительно отличается от Java.
Это может помочь вам сначала изучить Ruby, а затем взглянуть на Rails и его соглашения. Изучение того, что делает Rails и как это происходит, стало намного легче для меня, когда мне больше не нужно было разбираться в Ruby и я мог читать (и писать) код / шаблоны Rails.
Я просмотрел учебник по Ruby on Rails и нашел его очень полезным. Обучающая книга является бесплатной и есть версия для Rails 2.3 и 3.0. Вам также может быть полезно ознакомиться с MVC (Model-View-Controller) и жизненным циклом веб-разработки / страницы в целом.
источник
Анита, у меня был почти такой же опыт, как у тебя. но, думаю, теперь я понимаю, почему так трудно учиться
Я изучаю его уже больше года, и вот некоторые вещи, которые, как мне кажется, облегчают изучение, к которым я пришел из опыта:
Пожалуйста, не сдавайтесь - вы умны, но, похоже, у вас стиль обучения похож на меня, а Rails очень сложно выучить, и его нигде не особенно хорошо обучают (полностью).
источник
Возможно, проблема не в рубине (и не в рельсах), а в том, что у вас есть только «шаткое понимание» HTML / CSS / JavaScript, SQL и баз данных.
Rails - это фреймворк с полным стеком. Если ваш предыдущий опыт программирования был ядром Java с, возможно, некоторым Swing, то есть много концепций, которые нужно изучить одновременно.
Если бы я подходил к этой проблеме, я бы начал с приближения SQL и реляционного моделирования в первую очередь (с SQL нет проблем с разметкой браузера!). Если вы уверены в уровне базы данных, поиграйтесь с ActiveRecord и узнайте, как rails оборачивает кортежи из базы данных.
Следующим шагом будет изучение контроллеров и маршрутизации, а затем пользовательского интерфейса (html / javascript и т. Д.).
Если вы собираетесь заниматься любой веб-разработкой, используя практически любую веб-среду, вам нужно понимать SQL и реляционное моделирование (даже если вы затем выберете маршрут NoSQL позже).
источник
Я также пришел из Java, и мне было довольно трудно изучать Rails. У меня были все те же проблемы, которые вы упомянули. Я обнаружил, что просмотр Railscasts.com помог в начале. Просто видение того, как кто-то другой делал вещи, помогло мне понять, а потом я начал делать все самостоятельно. Я не прикасался к Rails с тех пор, как вышел Rails 3.
источник
Твои слова «иногда целый день, иногда ничего на несколько недель» говорят мне все, что мне нужно знать. Если вы изучаете новый язык и фреймворк (я полагаю, это то, что вы делаете, потому что упоминаете «Ruby on Rails», а не просто «Ruby»), согласованность окупается. Я обнаружил, что единственный способ узнать и сохранить концепции - это учиться около получаса в день, обычно в конце дня, перед сном. Если я учусь больше получаса, я начинаю нервничать и теряю концентрацию. Если я учусь меньше, я не сохраняю то, чему научился.
Устранить отвлекающие факторы - это мой лучший совет. И учиться каждый день недели. Прежде чем вы это знаете, все станет на свои места.
Я не видел никаких последующих постов, поэтому мне интересно, как ты это сделал. Прошло 2 года, и это, безусловно, должно быть достаточно времени, чтобы научиться быть первоклассным веб-разработчиком!
источник
Я опираюсь на Ruby и Rails уже около 8 месяцев. Я пришел с пониманием HTML, XML, SQL. Я все еще находил ту же проблему, что и вы, то, что работало для меня, работало над реальными проблемами, а не только с чтением и надеждой понять. Возможно, вам придется выполнить множество небольших тестов фрагментов кода или mvc, чтобы понять концепцию. Символы - это то, над чем я все еще работаю. Просто возьмите по одной проблеме за раз, и по мере их решения вы узнаете что-то необходимое для решения другой проблемы в вашем проекте.
Ответ: Нет, у него не должно быть крутой кривой обучения, эта кривая отличается в зависимости от вашего фона.
источник
Он может. Я знаю, что сталкиваюсь с «кривой обучения» каждый раз, когда пытаюсь по-настоящему сесть и сосредоточиться на изучении Rails (каждые несколько месяцев в течение более 2 лет). Проблема в том, что многие вещи в Rails меняются молниеносно, и часто ресурсы, которые вы находите, устаревают почти сразу.
Я советую сначала сосредоточиться на Ruby (по крайней мере, на основах), а затем на Rails, чтобы вы не полагались на инфраструктуру Rails на 100%, чтобы справиться со всем за вас. Вы также должны освежить в памяти HTML / CSS / Javascript по очевидным причинам. Также из опыта не попадайтесь в постоянный отток мира Rails: если вы можете игнорировать все новомодные вещи, которые проповедует Rails cognoscenti, такие как Haml, Sass, RSpec / BDD, Cucumber и т. Д., Или вы утонете в необходимости научиться писать BDD и RSpec для написания своего кода, изучать Haml и Sass (не сложно, но все же, это еще одна вещь, которую нужно выучить) для программирования внешнего интерфейса и т. д. Начните как можно проще.
источник
Существует кривая обучения для любого языка программирования. На самом деле мы не учим язык обычным способом. Как и в C / C ++, но когда дело доходит до реальной картины, мы также должны знать гайки и минусы нескольких технологий.
Лучший способ приблизиться к этому - учиться на практике. Приложите все усилия, чтобы сделать это самостоятельно. Обычно мы читаем вещи, но когда дело доходит до реальной картины, мы застряли с этим. Я нативный программист C ++, я также могу писать на C #. Я знаю, что в этом языке и библиотеке есть много хорошего в абстрактной точке зрения, но многие темы я только что прочитал и пропустил. Так что, если вы спросите меня, я на самом деле инвалид.
Я изучаю рамки Django. Книга, которую я выбрал, очень проста и создает приложение для социальных закладок. Таким образом, это все равно, что изучать вещи с нуля до продвинутого уровня, реально работая над проектом. Я предлагаю вам подходить таким образом, поскольку все мы изучаем это самостоятельно.
источник
Что касается RoR, особенно со вторым «R», так это то, что большинство обучающих уроков фокусируются на обучении вас стилю «код-обезьяна». Особенно Agile книга, она полна поверхностных «теперь мы просто делаем это, не беспокойтесь почему» шаги программирования. Плюс тот факт, что они постоянно меняют свою парадигму - то есть сначала они рекламировали RJS, а теперь внезапно речь идет о UJS.
Как некоторые люди здесь предложили, вы можете сначала изучить все тонкости самого языка Ruby, а затем перейти к фреймворку. Если вы все еще хотите изучить оба вместе, я нашел эту книгу под названием "Ruby for Rails" очень полезной.
источник