Esa es una pregunta bastante abierta, pero supongo que viene desde la perspectiva de un principiante. Los problemas con Rails que afectan, por ejemplo, a una startup que golpea sus primeros problemas de escala, obviamente son muy diferentes.
Los principales obstáculos que he visto en cientos de estudiantes son:
- Rubí. Sí, muchos lugares intentan empujarte a Rails sin entender primero a Ruby. Parece que es una buena opción hasta que necesite hacer algo no estándar y luego esté SOL. Saltar a Ruby y sumergirse directamente en Rails le costará una cantidad significativa de tiempo a largo plazo. Es un gran lenguaje. ¡Pruébalo primero! Algunos buenos recursos para comenzar con Ruby incluyen el libro Aprender a programar de Chris Pine [1], el curso Ruby de Codecademy [2] o la pista Ruby de The Odin Project [3] (si desea profundizar).
- MVC: el patrón de arquitectura Modelo-Vista-Controlador utilizado por Rails toma un poco de tiempo para entenderlo, pero es muy poderoso una vez que visualiza cómo se ve el flujo de información a medida que viaja a través de la aplicación. Le permite segregar ciertas funciones a secciones particulares de la base del código. Codelearn tiene un aspecto decente en MVC específicamente [4], aunque también puede encontrar diagramas similares en otros lugares. Sin embargo, a veces se trata de algo más que el diagrama … necesita guiar una solicitud a través de todo su ciclo de vida en su cabeza (del cliente al servidor al enrutador al controlador y quizás al modelo para ver al cliente).
- Enrutamiento: Sí, realmente debería llamarse “MVC (r)” porque hay una capa de enrutamiento que de alguna manera parece más complicada de lo que realmente es. Recuerdo que tuve muchas dificultades para entenderlo y luego me pregunté por qué fue tan difícil una vez que finalmente lo entendí. Básicamente, se basa en el concepto de enrutamiento “RESTful”, que es la idea de que en realidad solo hay 7 tipos de cosas que debe hacer en una aplicación (por ejemplo, CREAR un usuario, MOSTRAR un usuario, etc.). Comprender cómo especifica una de estas acciones en su controlador al proporcionar la ruta (por ejemplo, `/ users`) y usar el verbo HTTP correcto (por ejemplo, POST) solo requiere un poco de reflexión. Use el comando `rastrillar rutas` generosamente al principio. Ver más sobre esto en TOP [7].
- Bases de datos: una vez que comience a programar con Rails un poco, se encontrará con el obstáculo de no entender todo lo que está haciendo Active Record (la gema que maneja todas las interacciones de la base de datos). Es entonces cuando (en realidad, idealmente * antes * de esto) debe recoger una comprensión conceptual de cómo funcionan las bases de datos. Esta es otra de esas cosas en las que necesita invertir un poco de tiempo por adelantado (le recomiendo que aprenda SQL primero), pero lo hará mucho más flexible como programador y mucho menos miedo de lo que está haciendo ActiveRecord. Francamente, no hay muchos recursos excelentes para aprender esto en línea, aunque Coursera tiene una clase [5] en bases de datos (que se vuelve un poco teórica), y TOP ofrece algunos enlaces a otros [6].
Al final, esto es solo un puñado de obstáculos comunes. Ruby es importante, así que pasaría algún tiempo abordando eso antes de comenzar con Rails a menos que estés desesperado por algunas “victorias” tempranas. Learning Rails tiene su parte justa de “espera, ¿QUÉ?” momentos, por lo que es mejor encontrar un amigo o aprender en un entorno compatible para que pueda hacer preguntas “tontas” de manera segura y seguir avanzando en su proceso de aprendizaje. Sin embargo, Rails es un marco increíble, ¡así que quédate con él!
- ¿Cuál es el mejor diseño web / UI / UX que has visto / experimentado en Startup / Technical blog or magazine?
- ¿Es ilegal si descubro la contraseña de alguien, pero en realidad no he accedido a ninguna de las cuentas (pero alguien más accedió a ellas con mi conocimiento)?
- ¿Es bueno moverse en Ruby on Rails después de HTML y CSS en lugar de PHP?
- ¿Qué lenguajes de programación debo aprender para desarrollar sitios web y aplicaciones? ¿Y en qué orden? Gracias.
- ¿Qué es un buen recurso que le enseñará a una persona que no tiene experiencia con HTML y CSS cómo crear y codificar un blog autohospedado de wordpress.org?
¡Buena suerte!
[1]: https://pine.fm/LearnToProgram/c…
[2]: http://www.codecademy.com/en/tra…
[3]: http://www.theodinproject.com/ru…
[4]: http://www.codelearn.org/ruby-on…
[5]: https://www.coursera.org/course/db
[6]: http://www.theodinproject.com/ru…
[7]: http://www.theodinproject.com/ru…