Los desarrolladores de Ruby on Rails son expertos que escriben, desarrollan, prueban e implementan nuevos software y aplicaciones web en el marco de ROR. Pero, ¿qué hace exactamente un desarrollador de Ruby on Rails?
Ruby por sí mismo fue creado en 1993 por Yukihiro Matsumoto y es un lenguaje flexible y preciso. Permite la posibilidad de organizar el código escrito de una manera más eficiente. La sintaxis de Ruby se basa en bloques de código, por lo que se evitan errores al cambiar la línea de instrucción.
Las tareas típicas de los desarrolladores de Ruby on Rails incluyen:
- Escribir, desarrollar, probar e implementar nuevo software y aplicaciones web en Ruby
- Desarrollar componentes back-end e integrarlos con front-end
- Probar y mejorar el software Ruby existente
- Crear suficiente documentación del software.
- Ofrecer a los clientes consejos y sugerencias específicos en el área de Ruby
- Creación, administración y mantenimiento de APIs
- Llevar a cabo la resolución de problemas en los casos apropiados.
Cualidades y habilidades de un desarrollador de Ruby on Rails
Encontrar un buen desarrollador que realmente pueda asumir un proyecto es una tarea difícil. Aquí compartimos algunas de las habilidades que, habitualmente, tienen estos profesionales:
Habilidades no técnicas (también conocidas como habilidades blandas)
- Ambición: no quieres ser junior durante años, ¿verdad? Intenta participar en la resolución de problemas más difíciles, no sólo triviales.
- Enfoque de «no sé»: sólo si admite que no sabes algo, puedes aprenderlo. Por lo general, los colegas más experimentados estarán felices de ayudarte con algo si dice que no lo sabes. No tienes que ser tímido por eso. Es un proceso normal de aprendizaje.
- Voluntad y deseo de aprender: trata de mostrar ese deseo de aprender. Pregunta, dedica más tiempo a leer y codifica tus proyectos favoritos.
- Ajuste cultura/empresa: esto es enorme y muy importante. Si sientes que no perteneces a la empresa, o la empresa sabe que no sientes ese espíritu, no tiene sentido ir por ese camino para los dos. Tu desempeño aumentará solo si te sientes bien en ese ambiente.
- Saber dónde buscar: Un desarrollador está principalmente leyendo, no escribiendo. Como programador , debes saber dónde encontrar respuestas a tus preguntas. Familiarízate con Stackoverflow, foros, Google,…
Ruby
- Sintaxis: debse saber cómo escribir algunos elementos básicos del lenguaje, como bucles, clases, declaraciones condicionales, módulos, etc.
- Programación orientada a objetos: como desarrollador de Ruby, trabajarás principalmente con programación orientada a objetos. Necesitas conocer algunos conceptos de programación orientada a objetos en Ruby como: clases, objetos, herencia frente a composición, bloques frente a procesos frente a lambdas, incluida la extensión de un módulo.
Ruby on Rails
- Paradigma MVC: esta es una estructura del marco RoR. Debe saber qué capa es responsable de qué y cómo estructurar su aplicación para saber dónde colocar la lógica comercial y hacia dónde va la vista.
- ERB/Haml: los dos sistemas de visualización/plantillas más comunes. Sugeriría comenzar con ERB.
- ActiveRecord: la mayoría de las aplicaciones web utilizan algún tipo de datos persistentes. Tienes que saber ActiveRecord, al menos algo sobre modelos, migraciones, asociaciones, validaciones.
- Configuración de una nueva aplicación: Crea tu proyecto favorito e intenta aprender programando. Para ello, tendrás que saber configurar un nuevo proyecto desde cero.
- Pruebas unitarias con Rspec: las pruebas son un enfoque muy común para los proyectos creados con Ruby on Rails. Rspes también es muy común. Debes saber cómo escribir pruebas unitarias con Rspec, ya que un efecto de su trabajo debe estar cubierto por pruebas para ser aprobado/fusionado.
- API + JSON: Ruby on Rails se usa muy a menudo como proveedor de API, por lo que debes estar familiarizado con API como concepto y JSON como formato.
- Conceptos básicos del protocolo REST y HTTP: muchas aplicaciones web funcionan como una aplicación REST. Debes conocer el protocolo HTTP, al menos reconocer los verbos HTTP y algunos de los estados más comunes.
Habilidades basadas en frontend
- HTML5: algunos conceptos básicos sobre HTML
- JS: Sería bueno saber qué es jQuery y cuáles son los marcos de JavaScript más comunes. Un poco de conocimiento sobre ES6 será perfecto.
- CSS: conocimiento de cómo funcionan las hojas de estilo en cascada y cuáles son los conceptos detrás de SCSS/SASS
Bases de datos
- Conceptos básicos de SQL: incluso si no tiene que escribir ningún SQL porque ActiveRecord lo hará por ti, deberás leer los registros para comprender lo que está sucediendo.
- PostgreSQL/MySQL: los dos motores de base de datos más comunes. Sería bueno conocer algunas diferencias y cómo configurarlas en su máquina local.
- Concepto de bases de datos NoSQL: aunque no son tan populares como las bases de datos SQL, puede encontrarlas en muchos proyectos existentes.
Herramientas
- Git: herramienta esencial para la gestión de código. Debe saber qué es, cómo crear una nueva rama, extraer y enviar su código.
- Implementación: sería bueno estar familiarizado o saber cuáles son Heroku, Capistrano, Docker, CI.
- Trello/Asana/Pivotal/Github y muchas más.
imagen: @snowing