¿Cómo puedes subir de nivel como desarrollador de Ruby? Llevo un año escribiendo código Ruby y, aunque puedo identificar y comprender la mayoría de los conceptos / métodos, si no todos, tengo problemas para implementarlos.

Aquí hay una lista que compilé hace un tiempo que cubre áreas a las que debería prestar atención para ‘intensificar’. Esta es una lista subjetiva para una pregunta subjetiva. Lo que animo es que observe sus debilidades y vacíos en el conocimiento y busque llenar. Así es como subes de nivel.

  • Aprende Ruby / Rails avanzado
  • Aprenda la arquitectura empresarial de Rails
  • Aprenda a aprovechar los generadores y las plantillas de Rails
  • Aprenda lo esencial absoluto de la codificación de caracteres
  • Aprende los entresijos de la arquitectura RESTful
  • Listas de terminología de estudio (anki, diccionario de desarrollo web, términos informáticos, etc.)
  • Aprende un idioma de bajo nivel (Go, Scala)
  • ¡Crea una aplicación básica con Play! y Nodejs
  • Aprender scripts básicos de bash (para escribir mis propios scripts de instalación, etc.)
  • Aprenda NoSQL (Redis, Mongo)
  • Use client_side_validations
  • Utilice un sistema de archivos de puntos (tienda en github, con archivos de puntos personales en repositorio privado)
  • Aprende todo sobre git flow
  • Aprenda Docker y Chef para la configuración y el aprovisionamiento del servidor (procesos de compilación)
  • Aprenda estrategias de almacenamiento en caché
  • ¿Aprende a editar coffeescript / sass desde el navegador?
  • Configurar la infraestructura multiservidor para la aplicación
  • Usar integración continua (jenkins)
  • Lea las vacantes de empleo y las secciones de habilidades requeridas / deseadas para trabajos de RoR / webdev
  • Solicitud de documento
  • Prueba primero
  • Aprenda Vim / emacs o texto sublime (edición de archivos, navegación)
  • Observe a otros desarrolladores en acción, tome notas (peepcode, etc.)
  • Aprenda shell crucial (seguridad, permisos, gestión de usuarios, puertos, servicios)
  • Descubra las herramientas de nivel de sistema para el monitoreo de aplicaciones
  • Use las herramientas adecuadas para el desarrollo (depuración de palanca, pasos)
  • Aprenda a planificar usando historias de usuarios, estimaciones
  • Aprenda el proceso de desarrollo de software (planificación, diseño, implementación, mantenimiento)
  • Agilice los procesos (agregar repositorios, cargar claves ssh al servidor)
  • Contribuir a código abierto (mejoras de oh-my-zsh, ajustes, gemas)
  • Hacer conexiones (irc, quora, meetup)
  • Ir a convenciones
  • Lea el código para proyectos populares de código abierto como guía
  • Cree una API pública (aprenda a documentarla)
  • Use principios de diseño receptivo primero (bootstrap 3)
  • Utilice el registro de excepción / rendimiento / solicitud (configure el servidor autohospedado si es necesario)
  • ¡BLOG!
  • ¡AYUDA! (irc, SO, quora)
  • ¡ENSEÑAR! (blog, mentor)
  • Empareje programa / trabajo en un entorno de equipo de retroalimentación inmediata
  • Comprométase a pasar a sublime / emacs o seguir con rubymine / ide
  • Aprenda atajos de teclado importantes para el editor elegido
  • Pruebas de codificación completas (prueba de rubí)
  • Aprenda conceptos importantes de informática y diseño de software (algoritmos, clasificación, tipos de datos, etc.)
  • Mejorar las matemáticas y la capacidad de pensamiento abstracto.
  • Escribir un libro técnico
  • Elaborar contratos de trabajo independiente.
  • Usar sistema de contabilidad
  • Terminar cartera
  • ¿Usar el panel de datos del hubble / consola para los servidores de aplicaciones?

Para mantenerme fresco y listo para trabajar:

  • ¡Escribir! (blog, foros, responder preguntas en LinkedIn y Quora, Google ?, ebooks, kindle)
  • Red (LinkedIn, Twitter, Quora, Github)
  • Mantener activa mi cuenta de github (opensource, publicitar algunos proyectos personales, desafíos repo – euler, blog vía repo)
  • ¡Crea aplicaciones! (prueba nuevas tecnologías, estudia mientras construyo)
  • Mantener cartera fresca

Personalmente, creo que este resumen lo resume:

Lea el popular código fuente abierto de Ruby …

Mayormente porque:

  • Verá qué hábitos “buenos” hacen los desarrolladores de Ruby
  • Encontrará soluciones más fáciles / más limpias (código de varias líneas para líneas simples)
  • Verá cómo se ve el código limpio / mantenible
  • Verás buenos patrones de diseño.

Además, dado que mucha gente mantiene los proyectos populares, generalmente tienen una decisión concluyente sobre qué entra y sale y por qué. Como beneficio adicional, también puede leer sus discusiones en Github para ver cronológicamente cómo surgió la decisión.

Aprende otros idiomas además de ruby.

No en serio. Aprende algo nuevo. Mi mejor experiencia de aprendizaje es cuando aprendo algo más bajo que el rubí. He entrevistado a muchos ingenieros. La mayoría de las veces, los ingenieros que solo conocen un idioma no entienden las estructuras de datos subyacentes o los algoritmos que se realizan al usar un lenguaje de alto nivel.

Por ejemplo, una vez di un problema muy desafiante que sin duda habría tenido una complejidad nxn. El candidato pudo hacerlo una línea de rubí. Seguí mi pregunta con lo que sucedería con 1,000,000 de artículos. Dijo que no tiene idea porque nunca prestó atención a cómo se hacen las cosas.

Entonces aprende Java. Aprender objetivo c. Aprenda la complejidad del tiempo y la gestión de la memoria.

Finalmente, si desea contribuir, lea otros proyectos de código abierto. Leer rieles. Crea tus propias gemas y lee cómo otros resolvieron el problema. Entonces trata de mejorarlos.

Además de las listas de tareas mencionadas en las respuestas anteriores, una lista de recursos confiables también será suficiente. En el blog de Netguru, puede encontrar un par de listas que incluyen recursos recomendados por nuestros desarrolladores, comenzando por tutoriales ( https://netguru.co/blog/top-free …), con podcasts ( https://netguru.co/blog / top-7-ru …) y otras bases de conocimiento gratuitas a seguir ( https://netguru.co/blog/boost-yo …, https://netguru.co/blog/best-onl …). Buena suerte subiendo de nivel 🙂

Todos los días abres el IDE, o vim 🙂, para crear algo en rubí, algo que funciona o se rompe, algo que te enorgullece o te patea en la espalda, estás subiendo de nivel que el día anterior. Y cada día que ignoras el entrenamiento, la lectura, el trabajo, la creación, la reparación o la ruptura de algo en rubí, estás perdiendo el nivel que ganaste el último día que trabajaste.

Nunca, nunca vengas con alguien y le digas que eres un gran ingeniero de software o un programador talentoso solo porque tienes un gran dominio de los conceptos. Twitter y Facebook no fueron creados leyendo y estudiando.

Hay muchas formas de subir de nivel como desarrollador de ruby.

En primer lugar, asegúrese de estar codificando regularmente.

En segundo lugar, asegúrese de pensar realmente en el código que escribe. Si puede, haga que alguien revise el código de lo que ha escrito.

Tercero, lea sobre programación. El programador pragmático y la programación de Ruby: una guía del programador pragmático son excelentes.

Finalmente, para que los familiares conozcan los rincones y grietas del idioma, pruebe los rubíes koans.

Creo que la mejor manera de ‘subir de nivel’ es aprendiendo patrones de diseño y diferentes formas de escribir código. Aprenda sobre la programación orientada a objetos, la programación funcional, sus diferencias, sus beneficios y desventajas. Un gran libro para leer es Practical Object Oriented Design in Ruby de Sandi Metz.

Un principio importante de la programación que creo que a menudo se pasa por alto es la idea de que estás codificando para mañana, no para hoy. Es fácil, muy fácil , escribir código que funcione hoy. Es otro juego de pelota escribir código que se puede extender, reparar y reutilizar incluso una semana después .

Además, CÓDIGO KATAS !!! No puedo enfatizar lo buenos que son!

http://codekata.com/

Hice mi propio proyecto de código abierto de calidad de producción en ruby ​​que es nuevo y resuelve un problema del mundo real

… puede contribuir probándolo, proponiendo una idea y haciendo una solicitud de extracción de github … hay instrucciones detalladas sobre el archivo README

cuenta github:
rastreador de nubes

Un patrón de diseño DSL de Ruby para computación distribuida

presentación de slideshare:
Charles Martin

Desde mi punto de vista, lea Diseño práctico orientado a objetos en Ruby (POODR), no solo está enfocado en Ruby, sino que también aumentó mi nivel general de programación.

Además, estudie otros lenguajes de programación, le dará una mente más amplia (y lo hará más feliz de haber estudiado Ruby)