5 puntos por GN⁺ 2024-04-22 | 1 comentarios | Compartir por WhatsApp
  • Pedro David Garcia Lopez es originario de España y en 2015 emigró al Reino Unido, donde trabajó como conductor de camión antes de cambiar de carrera a los 38 años para convertirse en desarrollador de Ruby on Rails
  • Durante su etapa como conductor, normalmente solo pasaba entre 4 y 6 días al mes en casa, por lo que le resultaba difícil crear tiempo constante para estudiar entre su papel familiar y las largas jornadas laborales
  • En septiembre de 2019 se propuso convertirse en desarrollador en menos de un año y, tras pasar por Python y cursos de Udemy, aprendió Ruby, Sinatra, Rails y React en el bootcamp de Flatiron School
  • En 2020 tuvo que buscar su primer trabajo como desarrollador en plena pandemia de COVID y, después de varios meses sin recibir llamadas para entrevistas, aceptó su primera oportunidad en Manchester a pesar del salario bajo y del largo trayecto al trabajo
  • Actualmente valora mucho la productividad y lo disfrutable de Ruby y Rails, y aconseja a los nuevos programadores que, en vez de perseguirlo todo, se enfoquen en aprender a aprender, hacer preguntas y encontrar mentores

El camino de conductor de camión a desarrollador

  • Pedro David Garcia Lopez es un español de 42 años que emigró al Reino Unido en 2015 y planea volver a España para estar más cerca de su familia
  • Llegó al Reino Unido en 2015 como conductor de camión, también con la intención de darle nuevas oportunidades a su hija y aprender bien inglés
  • Mientras trabajaba como conductor, recorría el Reino Unido y distintos países de Europa, y normalmente solo estaba en casa entre 4 y 6 días al mes
  • Como conductor profesional, manejó casi todo tipo de vehículos en carretera, visitó al menos una vez los países de la Europa continental de la UE y recorrió con su camión una distancia equivalente a darle varias vueltas a la Tierra

Su interés por las computadoras y sus primeros fracasos al aprender

  • Su primer contacto con una computadora fue alrededor de los 12 años, en unas clases de mecanografía de verano, y quedó fascinado al usar MS-DOS y Windows 3.1
  • Después de que su padre falleciera cuando él tenía 14 años, tuvo que combinar los estudios con el sustento de su familia, así que era casi imposible tener una computadora en casa
  • A los 18 años, mientras trabajaba a tiempo completo, ahorró durante tres meses para comprar su primera computadora, una Pentium II, y desde entonces quiso aprender programación
  • Empezó con un libro de C++, pero le pareció demasiado técnico y difícil, no logró crear nada interesante y luego la vida no le permitió profundizar en la programación

La decisión de convertirse en desarrollador en un año

  • A medida que mejoró su nivel de inglés y se volvió más fácil acceder a información en línea, volvió a pensar en su sueño de infancia de convertirse en desarrollador
  • Tomó clases de HTML, CSS y JavaScript en YouTube, e incluso probó cursos del estilo de “conviértete en programador en 7 días”
  • freeCodeCamp era más estructurado y serio, pero por las largas jornadas de conducción y sus responsabilidades como padre y esposo le costaba mantener un ritmo de estudio suficiente
  • Después de muchos años conduciendo y cuidando de su familia, decidió dejar un trabajo estable y trazarse el plan de convertirse en desarrollador en un año o rendirse
  • Empezó en serio en septiembre de 2019 y, aunque aprendió lo básico con Python y cursos de Udemy, sentía que podía seguir lo que veía pero no que realmente pudiera construir algo por su cuenta

Flatiron School y su primer empleo

  • Después de revisar varias opciones, entró a Flatiron School
    • Sintió que el riesgo era menor porque, si no conseguía trabajo al terminar el programa, no tenía que pagar el costo
  • En el bootcamp aprendió de forma estructurada desde los fundamentos de Ruby hasta Sinatra, Ruby on Rails y React
  • Gracias a los profesores, compañeros, tareas y práctica, pasó de simplemente seguir instrucciones a poder crear cosas nuevas
  • Terminó el programa a finales de mayo de 2020 y ganó la sensación de que podía identificar problemas, resolverlos por su cuenta y aprender cosas nuevas
  • Se graduó en plena época del COVID y, por el confinamiento, tuvo pocas oportunidades de entrevistar o conectar con otras personas
  • Como graduado de bootcamp de 38 años y sin experiencia previa, pasó varios meses sin recibir llamadas para entrevistas y le preocupaba que su currículum estuviera siendo descartado
  • Su primera oportunidad apareció en Manchester, a dos horas en tren desde su casa, y no existía una política de trabajo remoto
    • El salario era apenas una tercera parte de lo que ganaba como conductor de camión, y una parte importante se iba en el costo del tren
    • El stack tecnológico era PHP y jQuery, pero aceptó la oferta porque necesitaba empezar como desarrollador

Su valoración de Ruby y Rails

  • Conoció Ruby y Rails por primera vez en el bootcamp, y ganó más experiencia trabajando en Superbyte
  • En Superbyte usaban un stack poco convencional, con Mongoid y algo de React, pero aprendió mucho del equipo
  • Después de acumular experiencia profesional con Ruby on Rails, su aprecio por la tecnología creció aún más, y considera que, una vez que uno se acostumbra a las convenciones de Rails, muchas cosas se vuelven más fáciles
  • Entre los atractivos de Ruby y Rails destaca la comunidad y un ecosistema que sigue evolucionando
  • Le entusiasma adoptar el ecosistema de Hotwire y dejar atrás React, y valora positivamente poder resolver muchas cosas al estilo Rails

Libros, referentes y forma de aprender

Cómo trabaja hoy y qué herramientas usa

  • En su corta carrera ya ha probado trabajo completamente remoto, híbrido y también presencial cinco días a la semana
  • Junto con su plan de volver a España, a mediados de abril se cambiará a un puesto totalmente remoto en gocertify
  • En Superbyte pasó de Junior Developer a un rol más cercano a semi senior, participando en escritura de código, diseño conceptual y algo de I+D
  • Dedica la mayor parte de su tiempo a escribir código, pero también disfruta la programación en pareja y las revisiones de PR
  • Cree que enseñar es la mejor manera de aprender conceptos, y le gusta tanto proponer enfoques a sus colegas como aprender de ellos
  • Estas son algunas de las herramientas que usa con frecuencia
    • Editor de código: VS Code
    • GUI de base de datos: MongoDB Compass
    • Terminal: iTerm with oh my zsh
    • Navegador: Chrome
    • Notas y gestión de proyectos: Apple Notes, VS Code Markdown, GitHub projects/issues
    • Comunicación: Microsoft Teams

Consejos para nuevos programadores

  • Su consejo más importante es aprender a aprender
  • Como cada persona aprende y recuerda de manera distinta, hay que encontrar el método de aprendizaje que mejor funcione para uno mismo
  • Pedro aprende construyendo cosas, o viendo un tutorial, replicándolo y luego ampliándolo hacia áreas que le interesan
  • Al principio lee los libros sin programar, y cuando los relee los usa más como guía que como algo para seguir al pie de la letra
  • No hace falta sentir que uno debe aprenderlo todo; enfocarse en una sola cosa que realmente te gusta puede llevarte más lejos que aprender superficialmente demasiadas cosas
  • A los nuevos programadores les aconseja trabajar duro y atreverse a hacer preguntas
    • Cree que la pregunta más tonta es la que no se hace
    • También dice que no hay que sentir que uno no es suficiente o que sabe demasiado poco
  • Recomienda Ruby y Rails porque, una vez superado cierto punto de inflexión, pueden sentirse fáciles y divertidos
  • También sugiere buscar un mentor o a alguien que te ayude a crecer, y propone First Ruby Friend como recurso para quienes aprenden Ruby
  • Como canales de contacto deja LinkedIn y Twitter/X, y comenta que, después de que su antiguo sitio personal hecho con Django dejara de estar disponible, planea rehacer www.lorrydriveloper.com con Ruby on Rails

1 comentarios

 
GN⁺ 2024-04-22
Opiniones de Hacker News
  • En el Reino Unido hice el cambio inverso: pasé de ser desarrollador (principalmente C#) a conductor de camión de carga.
    Ahora manejo desde camiones rígidos de 12 toneladas hasta grandes tráileres de 44 toneladas, y en mi tiempo libre me divierto más desarrollando con RoR y Golang que cuando me pagaban por programar.
    Mis horas semanales subieron de 38~40 a un promedio de 50~52, pero manejar HGV paga mucho mejor que cuando era desarrollador. Aunque quizá eso refleje más mi habilidad o nivel como desarrollador.

    • La gente de EE. UU. debería saber que, fuera de Estados Unidos, la compensación de los desarrolladores suele ser así. Normalmente los desarrolladores ganan lo suficiente para vivir, pero no sueldos absurdamente altos.
      Hay excepciones, pero hay que pasar entrevistas exigentes, y acá no existe eso de interns con compensación total de 200 mil dólares.
      Por eso aprender un oficio técnico, ser scrum master o trabajar en algo relacionado con transporte también son alternativas realistas. Los desarrolladores están atrapados en la estanflación y, por ejemplo, comprar una casa a menos de 90 minutos de traslado en el área metropolitana de Sydney es difícil incluso para la mayoría de los desarrolladores. En 15 años, los precios de las viviendas se triplicaron, pero los sueldos de desarrolladores ni las tarifas de contrato subieron en la misma proporción.
    • Me gustan estas historias porque recuerdan que nunca es demasiado tarde para iniciar un cambio de vida que encaje contigo.
      Algunas personas se quedan en lo conocido y temen los grandes cambios, pero una incomodidad temporal puede llevar a una mayor satisfacción a largo plazo. Ya sea que llegues a manejar camiones, lo dejes, o cambies a cualquier otro rol, seguir contando estas historias puede inspirar a alguien que esté sufriendo burnout y desilusión.
    • Me parece bastante natural disfrutar mucho más los proyectos personales de programación que programar en el trabajo.
      Cuando tu profesión y tu hobby son lo mismo, la gran diferencia es que no hay más jefe que tú mismo.
    • Interesante. Me pregunto si manejar camiones es divertido.
      Lo pensé alguna vez, pero me preocupaban las situaciones en las que hay que maniobrar en el centro de pueblitos rurales. En el pueblo donde vivía, a las casas les pegaban con bastante frecuencia. Me pregunto si eso pasa mucho, si hay mucha presión por horarios de entrega muy ajustados y cuánto tardaste en obtener la licencia HGV.
    • Eso habla más del Reino Unido que de tus habilidades de desarrollo. En general, a los desarrolladores en el Reino Unido les pagan pésimo y, después del Brexit, por alguna razón inexplicable, hubo una gran escasez de conductores de carga.
  • Está bien ver a gente cambiando de carrera a una edad más avanzada, pero la frase “personas que superaron dificultades para competir en igualdad de condiciones con los demás” me suena parecido a esos artículos donde los compañeros juntaron dinero para comprarle una silla de ruedas a alguien.
    Es agradable saber que hay gente buena en el mundo, pero ignora por completo la realidad de que el sistema en el que vivimos mantiene deliberadamente a ciertas personas abajo.

    • Reddit no es precisamente amado por todos en HN, pero r/orphancrushingmachine trata justo de esto.
      Es como esas historias de “¡los niños de la clase se unieron y donaron para salvar a un huérfano de la máquina trituradora de huérfanos!”. Pero queda la pregunta: ¿por qué existe esa máquina en primer lugar?
    • Me opongo firmemente a considerar los 38 años como una etapa tardía de la vida.
    • “Mantener a ciertas personas abajo” es el objetivo principal del sistema educativo. Eso es lo que enseña.
      Si alguien que supuestamente debe estar abajo tiene éxito, o, Dios no lo quiera, incluso destaca, se encuentra con resistencia o castigos extremos. A veces de forma sutil, pero muchas veces ocurre de manera explícita, a puerta cerrada y por parte de un pequeño grupo de personas.
    • Lo perverso de esto es que nadie está apuntando “deliberadamente” a alguien para hundirlo.
      Se parece más a un fracaso en fijar bien las prioridades y en equilibrar el uso de los impuestos para mejorar la vida y los resultados de los ciudadanos individuales.
      Habría sido mejor pagar desde el principio lo que ese trabajo valía, para que la gente no tuviera que hacer un esfuerzo enorme por moverse lateralmente en el mercado laboral.
  • A veces me gustaría probar la programación, pero si vienes del sector financiero, hacer el cálculo salarial no es tan fácil como para un conductor de camión.
    Tendría que entrar directamente a un puesto bastante senior, y eso no parece realista.

    • Depende de si por finanzas te refieres a banca o a contabilidad. Si es banca, podrías mirar StratPy, Python y similares, e ir por una ruta más cercana a quant, donde la compensación puede ser buena.
    • El hombre del artículo aceptó un recorte salarial del 66%.
  • A veces me pregunto qué mundo habría sido si lugares como Flatiron School y varios bootcamps hubieran enseñado Elixir en vez de Ruby.
    Y “lorry” es una palabra realmente buena; es una lástima que en Estados Unidos no haya ocasión de usarla.

    • Creo que ese mundo habría sido indistinguible del actual. No hay ningún problema con Ruby.
    • No creo que las empresas existentes de Elixir estén buscando desarrolladores recién salidos de un bootcamp.
      Hasta que haya suficientes egresados como para influir en la elección del stack de nuevos proyectos, no tendrían peso en el mercado, y probablemente eso nunca habría pasado. Para un desarrollador junior sin título de CS, saber solo Ruby ya es en realidad una opción bastante limitada; aun así, Ruby ya era popular antes de los bootcamps, por eso se enseñaba. Me gusta Elixir, pero si hubieran hecho eso, lo más probable es que la mayoría de las escuelas cerraran en unos meses y que los egresados no obtuvieran mucho.
    • Honestamente, me da curiosidad saber qué quieres decir. Elixir sí es otro paradigma de programación, pero todavía no entiendo en qué sería intrínsecamente “mejor” que Ruby.
  • Antes fui desarrollador de KDE.
    Había casos interesantes de miembros de la comunidad que entraban a IT: una soprano que se convertía en community manager, o una abuela que se hacía desarrolladora porque quería mejorar juegos para sus nietos. Eran buenos tiempos.

  • Desde mi posición, casi con 38 años, no se siente como tanta edad.

    • 38 años es bastante joven, y a esa edad ya aprendiste bastante sobre la vida.
      Es curioso cómo personas de veintitantos con 2 años de experiencia creen que alguien cercano a los 40 no puede adquirir los mismos conocimientos que ellos en 2 años. Al contrario, es probable que la gente de 40 y 50 sea más práctica y disciplinada gracias a su experiencia de vida, preste más atención a los detalles y tenga más paciencia.
    • A medida que uno envejece, se da cuenta de que obsesionarse con la edad se parece al chisme. Da la impresión de ser algo propio de gente poco inteligente.
      Hasta llegar a los 80, cuando aumenta la probabilidad de deterioro cognitivo o fragilidad, es difícil decir que alguien es realmente viejo. De niño pensaba que la gente de 40 era vieja, pero, si lo piensas, desde ahí todavía quedan unos 40 años para ser realmente viejo. Eso es mucho más de lo que duran la mayoría de las empresas, matrimonios o carreras.
  • ¿Los puestos de Ruby on Rails siguen siendo bastante populares?

    • Escucho demasiado seguido a reclutadores quejándose de que no encuentran candidatos que dominen cierto lenguaje XYZ, y es una de las partes más irritantes de la programación.
      Un buen desarrollador puede ponerse al día con un lenguaje nuevo en unas semanas. Yo mismo lo hice, y también he visto a equipos crear plataformas completas con un stack totalmente nuevo para ellos. Programar consiste sobre todo en descomponer problemas, crear soluciones e implementarlas. El código es solo el resultado.
    • Lo interesante aquí es que sea Ruby.
      Por lo que percibo en mi zona, si vienes de una trayectoria no tradicional y no tienes un título en CS, puede convenirte estudiar un lenguaje algo menos típico, como Ruby o Python. Si postulas a lugares que usan lenguajes más populares, tienes que competir en un mar de candidatos con título y experiencia en ese lenguaje.
      Creo que las empresas de Ruby o Python tienden a estar un poco más abiertas a contratar a personas sin el título esperado, y en varios sentidos también pueden ser un poco más relajadas. Casi siempre he trabajado en empresas de Java, pero una vez trabajé en una de Python, y ese equipo tenía un rechazo casi político por Java/C++/C# y era combativo en su postura de que Python era excelente. Si compartías ese sentimiento, probablemente habrían sentido una fuerte afinidad contigo como candidato.
      En mi trabajo actual había un producto peculiar hecho desde hace mucho en Ruby on Rails, y ese equipo también era parecido: apasionado y extrañamente político, con una fuerte creencia de que Ruby era superior a todo lo demás, y contrataba a más personas de trayectorias no tradicionales. Incluso años después de irme de aquel puesto en Python, reclutadores que solo buscaban desarrolladores para hacer Python seguían contactándome, como si eso fuera más importante que el producto, la composición del equipo o la cultura de la empresa. Cuando me presentan puestos en equipos de Java o C#, normalmente destacan la empresa, los inversionistas o el producto más que el lenguaje.
    • Sí, es lo bastante popular como para poder encontrar trabajo con bastante facilidad.
      Hay menos vacantes que para JS, Java o C#, pero también hay menos desarrolladores Ruby. Siempre ha sido así.
    • Contratar para Ruby on Rails fue una experiencia realmente desagradable.
      Hay demasiada gente que en realidad no tiene la experiencia que dice tener, y cuando haces preguntas básicas de programación que un desarrollador sénior debería poder responder, alrededor del 80% de los candidatos va directo a ChatGPT y finge que la respuesta es suya. Ni siquiera hablo de algo tipo LeetCode, sino de preguntas como “qué es el polimorfismo” o “qué es la refactorización”.
      Puede que toda la industria se haya vuelto así, pero como el pool de talento es pequeño, se nota mucho más. Si dependiera de mí, usaría otra cosa en el trabajo, y no solo por lo reducido del pool de talento. Muchas de las funciones “divertidas” y ahorradoras de tiempo de Rails tienen poco impacto en aplicaciones complejas, o se convierten en aristas filosas que nos frenan.
    • Al buscar puestos remotos en EE. UU., parece un poco menos popular que Django, y da la impresión de que se sostiene gracias a las vacantes de GitHub y Shopify.
      Node, dotnet, Go y Java parecen ser todos más populares.
  • La parte clave es: “Decidí entrar a Flatiron School. Si no conseguía trabajo después de terminar el curso, no tenía que pagar”.
    Yo también fui a un bootcamp, y era uno de esos en los que necesitabas una entrevista de admisión; fue una entrevista real, bastante difícil para principiantes. El modelo de bootcamp, cuando está bien implementado, puede ser realmente muy bueno. Por supuesto, también hay corrupción y estafas, y por desgracia muchas personas inocentes perdieron dinero.
    Por eso, si estás considerando un bootcamp, conviene elegir uno al que sea difícil entrar y que tenga un contrato de ingresos compartidos. Dicho eso, los contratos de ingresos compartidos también pueden ser sospechosos. A veces exigen el pago aunque consigas un trabajo no relacionado con tecnología, por ejemplo en retail.

    • Vi discusiones recientes sobre BloomTech/Lambda School y me volví muy cauteloso con los contratos de ingresos compartidos.
      https://news.ycombinator.com/item?id=40067939
    • Los contratos de ingresos compartidos también pueden ser sospechosos.
      Según mi experiencia con este tipo de cosas, en general suelen ser muy explotadores y apuntar a personas vulnerables. La mayor señal de alerta es que la mayoría de estos lugares no ofrece públicamente los términos del contrato. Normalmente tienes que pasar horas en el proceso antes de conocer los detalles, porque, por las razones que acabo de mencionar, no quieren que esa información se difunda.
      A la inversa, también puedes usarlo como filtro rápido. Si preguntas “¿pueden enviarme los detalles ahora?” y te responden “no antes de que vengas a un seminario presencial de 4 horas”, simplemente pasa de largo.
  • “¿Conductor de camión a los 40?”
    Ahí se nota el edadismo de nuestra industria. Empezar en esta profesión a los 38 se trata como si fueras alguien de la Antigüedad, casi como una pieza de exhibición de un show de rarezas.