¿Cuál es la diferencia entre Ruby y Ruby on Rails? ¿Tengo que conocer a Ruby antes de saltar a Rails?

Depende de cuán profundamente quieras aprender Rails.

¿Cuáles son tus metas? ¿Desea poder producir una aplicación web que funcione, o desea aprender las tecnologías profundamente para ser contratado como desarrollador de rieles?

He visto a docenas de personas aprender rieles desde el principio sin experiencia en codificación. Por supuesto, esto requiere un buen curso y recursos de calidad. CodeJinn y Baserails son los mejores recursos que puedo recomendar de todos los cursos gratuitos y de pago que existen. Lo guían a través de la producción de una aplicación web real y funcional en un mes o menos. Fue realmente sorprendente ver a algunos de mis compañeros “estudiantes” producir una aplicación. Algunos de ellos se movieron mucho más rápido que yo.

Ahora, no entenderás Rails o ruby ​​tan profundamente como alguien que gasta mucho más tiempo en ellos con ritmos similares, pero aprender Ruby and Rails profundamente no es algo que se pueda lograr en unas pocas semanas o incluso un par de meses de todos modos. . La mejor manera de aprender es pasar por múltiples iteraciones de creación de aplicaciones, ver conceptos repetidamente y en ciclos de vida rápidos. Si está atrapado en una parte durante mucho tiempo, se estresa y olvida las otras cosas, e inevitablemente pierde de vista el panorama general. Creo que la mayoría de las cosas que aprendemos, aprendemos al obtener una visión general, ver las conexiones y luego entrar en detalles. La repetición es el mejor maestro, junto con la experiencia. Ve por esta ruta. No hagas libros desde el principio.

Si quieres aprender Ruby and Rails DEEPLY, como un ingeniero de software profundo, entonces debes aprender ruby ​​primero. Rails es un marco para facilitar el desarrollo web (evitando que tenga que hacer todos los detalles) que se construye en el lenguaje ruby. Entonces, si va a depurar o adaptar cosas más allá de simplemente reemplazar entidades, argumentos o cadenas, entonces es mejor que aprenda Ruby primero.

Piensa en esto, de esta manera. Puede construir un automóvil sin conocer la ingeniería mecánica, pero conocer la ingeniería mecánica realmente le da una buena comprensión de la construcción / reparación de automóviles, y le permite diagnosticar, identificar, solucionar problemas y diseñar mejor los automóviles. Puede comenzar aprendiendo que un automóvil tiene tales o cuales componentes, lo que se conecta a qué, pero que no tiene idea de las tensiones o la termodinámica.

He hecho libros, y después de leerlo, olvido la mayor parte, o parece que no puedo aplicarlo. La disyunción entre aprendizaje y aplicación claramente no es el camino a seguir. Si sigues un tutorial y creas una aplicación de demostración, te preguntas, ¿cómo puedo adaptar esto o agregar más funciones para crear mi propia aplicación? Si su objetivo es una aplicación personalizada, entonces está cerca, pero no tan cerca de su objetivo. Ahora imagina si lees un libro. Ni siquiera está cerca de crear una aplicación de demostración, y mucho menos de su aplicación real. Casi todos absorben mejor la información a través de libros o audio o imágenes. Los libros son para los viejos tiempos, y para después de que aprendas lo básico.

Echa un vistazo a CodeJinn y baseRails. Te enseñan construyendo una aplicación real, cubren muchas características comunes como el pago en línea (¡sí, gana dinero más temprano que tarde!), Estilo, formateo de imágenes, (etc.), Baserails es más adecuado para una tienda en línea, y aprendizaje básico, mientras que CodeJinn es la forma más rápida de crear su aplicación personalizada y aprender al mismo tiempo.

Veo dos escenarios diferentes aquí:

Si ya eres experto en un lenguaje de script y quieres aprender a usar ruby ​​on rails, puedes sumergirte en los rieles y recoger ruby ​​en el camino. La sintaxis no es difícil de entender (no hay llaves, puede dejar la parálisis si lo desea). Recomiendo leer la documentación de Enumerables, y aprender sobre bloques y rendimiento, y aprender sobre módulos, cuando los golpeas por primera vez en tus aventuras de rieles.

Pero usted declaró que ahora solo está aprendiendo su primer idioma (python) y no quiere confundirse con la sintaxis diferente. Entonces te recomiendo

  • cambiar a rubí por completo y aprender rieles
  • o quédate con Python y aprende django

Rails es solo un marco web en el que puedes trabajar. Hace mucho trabajo detrás de escena, pero en última instancia, la implementación y todo el código que escribes está en Ruby. Todas las funciones que declaras, toda la lógica de la aplicación que creas y todo el código que escribes está escrito en Ruby. En esencia, te respondiste en la pregunta: ¿Puedo aprender Ruby on Rails sin aprender Ruby? No, por eso se llama Ruby on Rails.

Podrías argumentar que puedes aprender algunos de los conceptos de Ruby on Rails sin escribir una sola línea de código, pero en la programación realmente la única forma de aprender es hacerlo, y aprender Ruby on Rails significa escribir Código rubí.

Estoy de acuerdo en que si estás empezando a aprender Python, de repente sumergirte en Ruby puede ser confuso para ti. Sin embargo, Python y Ruby tienen muchas similitudes y diría que aprender ambos realmente te ayudaría a apreciar las sutilezas en ambos idiomas, lo que te convierte en un mejor programador en ambos idiomas (al menos eso es lo que siento que me pasó).