Sou um programador autodidata. Eu aprendo RoR desde outubro com intensidade variável (às vezes o dia todo, às vezes nada por várias semanas). Antes disso, eu conhecia apenas Java, mas sabia muito bem. Eu ouvi muito hype sobre RoR e como ele deve fazer você feliz, produtivo etc. Até agora, isso só me deixou frustrado. Aprendi com o livro Agile e suspeito que parte da dificuldade possa ter a ver com o fato de eu não conhecer JavaScript e CSS e ter apenas uma compreensão instável de bancos de dados e HTML. Mas, aparentemente, demorei muito mais para concluir o projeto no livro Agile do que outras pessoas, e ainda não me lembro de muito. Há algumas coisas sobre o Rails que eu simplesmente não consigo entender, por exemplo, quando usar símbolos e quando NÃO usar, ou como os métodos dinâmicos são chamados.
Recentemente, recebi uma pequena atribuição do Rails, na qual me pediram para fazer uma pequena alteração na interface. Demorei cerca de 25 horas e, apesar de ter feito alguns progressos no entendimento do código, ainda não faço ideia de como proceder. Não posso nem perguntar ao Stack Overflow porque há muito código que precisarei fornecer para fornecer contexto.
Portanto, minha pergunta está no título: o RoR deve levar muito tempo para aprender ou estou lento? Será que aprendi com o livro errado? Meu estilo de aprendizado é tal que eu não entendo nada ou entendo tudo, se isso faz sentido.
fonte
Respostas:
Com a sua pergunta, é óbvio que não é apenas o Rails que você está tentando aprender, mas, ao mesmo tempo, você precisa entender os conceitos de desenvolvimento da Web, além de bancos de dados e SQL. É uma tarefa enorme, por favor, seja paciente.
Por outro lado, com o Rails, você não tem escolha - você precisa aprender todos os três: M, V e C do MVC , tudo ao mesmo tempo, mas esse seria o caso de qualquer estrutura MVC existente, sendo o Rails um dos mais fáceis. , Eu diria.
Em vez disso, o que você poderia fazer é começar com uma estrutura mais simples, como o Sinatra, até se familiarizar com os conceitos básicos de Ruby e HTTP, e depois avançar lentamente para uma apresentação mais rica (visualizações e CSS) e modelos baseados em banco de dados.
fonte
Quando você está aprendendo Rails e seu único background é Java, não está apenas aprendendo uma nova estrutura da Web. Você também está aprendendo uma nova linguagem de programação e uma que é significativamente diferente do Java.
Pode ajudar você a aprender Ruby primeiro e depois examinar o Rails e suas convenções. Aprender o que o Rails faz e como ele foi muito mais fácil para mim, uma vez que eu não precisava mais entender o Ruby e podia ler (e escrever) códigos / modelos do Rails.
Eu passei pelo Tutorial do Ruby on Rails e achei muito útil. O livro do tutorial é gratuito e existe uma versão para o Rails 2.3 e 3.0. Você também pode achar útil ler sobre o MVC (Model-View-Controller) e o ciclo de vida da página / desenvolvimento da web em geral.
fonte
Anita, tive quase a mesma experiência que você. mas acho que agora entendo por que é tão difícil aprender:
Estou aprendendo há mais de um ano e aqui estão algumas coisas que acho que facilitam o aprendizado, das quais aprendi por experiência própria:
Por favor, não desista - você é inteligente, mas parece ter um estilo de aprendizado semelhante ao meu, e o Rails é muito difícil de aprender e não é particularmente bem ensinado (completamente) em qualquer lugar.
fonte
Talvez o problema seja menos ruby (e / rails) e mais o fato de você ter apenas uma 'compreensão instável' de HTML / CSS / JavaScript e SQL e bancos de dados.
O Rails é uma 'estrutura de pilha completa'. Se sua experiência anterior em programação é o Java principal, talvez com algum Swing, existem muitos conceitos para aprender ao mesmo tempo.
Se eu estivesse abordando esse problema, começaria primeiro com a modelagem SQL e a modelagem relacional (não há problemas de layout do navegador com o SQL!). Quando você estiver confiante com a camada do banco de dados, brinque com o ActiveRecord e saiba como os trilhos agrupam as tuplas do banco de dados.
O próximo passo seria aprender os controladores e o roteamento e, em seguida, a interface do usuário (html / javascript etc.).
Se você estiver desenvolvendo uma Web usando praticamente qualquer estrutura da Web, precisará entender SQL e modelagem relacional (mesmo que escolha a rota NoSQL posteriormente).
fonte
Eu também sou de Java e tive muita dificuldade em aprender Rails. Eu tive os mesmos problemas que você mencionou. Eu descobri que assistir railscasts.com ajudou no começo. Só de ver como alguém fez as coisas me ajudou a entender e então comecei a fazer as coisas por conta própria. Não toquei no Rails desde o lançamento do Rails 3.
fonte
Suas palavras "às vezes o dia todo, às vezes nada por várias semanas" me dizem tudo o que preciso saber. Se você está aprendendo uma nova linguagem E estrutura (presumo que seja isso que você está fazendo porque menciona "Ruby on Rails" e não apenas "Ruby")), a consistência compensa. Descobri que a única maneira de aprender e reter conceitos é estudar cerca de meia hora por dia, geralmente no final do dia, pouco antes de dormir. Se eu estudar mais de meia hora, fico inquieto e perco o foco. Se eu estudo menos, não reter o que aprendi.
Elimine distrações - esse é o meu melhor conselho. E estude todos os dias da semana. Antes que você perceba, as coisas começarão a se encaixar.
Como não vi postagens de acompanhamento, estou me perguntando como você fez. Já se passaram dois anos e isso certamente deve ser suficiente para aprender a ser um desenvolvedor web de primeira linha!
fonte
Estou inclinado para Ruby e Rails há cerca de 8 meses. Eu vim com uma compreensão de HTML, XML, SQL. Eu ainda encontrei o mesmo problema que você, o que funcionou para mim foi trabalhar em problemas reais, não apenas lendo e esperando entender. Talvez você precise executar vários testes pequenos de partes de código ou do mvc para entender um conceito. Símbolos são algo em que ainda estou trabalhando. Basta considerar um problema de cada vez e, à medida que os resolver, aprenderá algo necessário para resolver outro problema no seu projeto.
Resposta: Não, não se deve ter uma curva de aprendizado acentuada, a curva é diferente dependendo do seu histórico.
fonte
Pode. Eu sei que me deparo com a "curva de aprendizado" toda vez que tento realmente me sentar e me concentrar no aprendizado do Rails (a cada poucos meses, há mais de dois anos). O problema é que muitas coisas no Rails mudam em um ritmo extremamente rápido, e geralmente os recursos que você encontra estão desatualizados quase imediatamente.
Meu conselho é começar a focar em Ruby (pelo menos o básico) e depois no Rails, para que você não confie 100% na estrutura do Rails para lidar com tudo para você. Você também deve atualizar o HTML / CSS / Javascript por razões óbvias. Também por experiência, não fique preso à constante agitação do mundo Rails: se você pode ignorar todas as coisas novas que os conhecedores do Rails evangelizam como Haml, Sass, RSpec / BDD, Pepino, etc, ou você se afogará em ter que aprenda o BDD e o RSpec a escrever seu código, tendo que aprender Haml e Sass (não difícil, mas ainda assim, é outra coisa a aprender) a codificar o front-end, etc. Comece da maneira mais simples possível.
fonte
Existe uma curva de aprendizado para qualquer linguagem de programação. Não estamos realmente aprendendo um idioma da maneira convencional. Como o C / C ++, mas quando as coisas se tornam reais, também precisamos conhecer as porcas e os parafusos de poucas tecnologias.
A melhor maneira de abordar isso é aprender fazendo. Tome todos os esforços para fazê-lo sozinho. Geralmente, lemos as coisas, mas quando se trata da imagem real, vamos nos aturar. Eu sou um programador C ++ nativo, também posso codificar em C #. Eu sei que há muita bondade nessa linguagem e biblioteca em um ponto de vista abstrato, mas muitos dos tópicos que acabei de ler e pularam. Então, se você me perguntar, eu sou realmente deficiente.
Estou aprendendo o framework Django. O livro que optei é curiosamente simples e cria um aplicativo de marcador social. Portanto, é como aprender coisas do zero ao nível avançado, realizando um projeto prático. Sugiro que você se aproxime dessa maneira, pois tudo o que aprendemos você mesmo.
fonte
O problema do RoR, particularmente do segundo "R", é que a maioria dos tutoriais de aprendizado se concentra em ensinar a você o estilo "código-macaco". Especialmente o livro do Agile, está cheio de etapas de programação superficiais "agora fazemos isso, não se preocupe". Além disso, eles continuam mudando de paradigma - ou seja, primeiro eles estavam divulgando o RJS como sempre, agora, de repente, trata-se de UJS.
Como algumas pessoas sugeriram aqui, você pode tentar aprender os meandros da própria linguagem Ruby primeiro e depois seguir para a estrutura. Se você ainda deseja aprender os dois juntos, achei este livro chamado "Ruby for Rails" bastante útil.
fonte