CodeGym /Blog Java /Random-ES /No es necesario luchar contra el mal en el desarrollo, pe...
John Squirrels
Nivel 41
San Francisco

No es necesario luchar contra el mal en el desarrollo, pero tampoco tocarlo: la historia de Irina la Programadora

Publicado en el grupo Random-ES
Sabemos que los estudiantes de CodeGym quieren escuchar las historias de quienes ya trabajan en TI. Así que tomamos el asunto en nuestras propias manos y lanzamos una serie sobre desarrolladores de varios países y empresas que completaron nuestra capacitación en Java. Esta historia es sobre Irina. En la escuela y la universidad le encantaban las ciencias técnicas. Sabía un poco de programación pero decidió trabajar en publicidad contextual. Aún así, Irina quería probar suerte en el desarrollo. Un día, recibió un correo electrónico informándole que estaban contratando pasantes de desarrollo para un servicio en particular. Y aunque nuestra heroína no pasó la entrevista, la experiencia la motivó a empezar a aprender Java."No es necesario luchar contra el mal en el desarrollo, pero tampoco tocarlo": la historia de Irina la Programadora - 1

"Definitivamente quería probarme a mí mismo en el desarrollo"

Después del noveno grado, cuando tuve que elegir la dirección de mis estudios posteriores (es decir, las vías técnica, humanitaria, económica y médica), me debatí entre la vía humanitaria y la técnica. Para mí, las humanidades representaron una carrera como periodista, denunciando el mal y defendiendo buenas causas en todo el mundo. Mientras contemplaba la pista técnica, pensé, si no estoy luchando contra el mal, al menos no lo tocaré. Seguí el camino de menor resistencia y elegí la pista técnica. Después de la escuela, entré a la universidad, con especialización en Ciencias de la Computación e Ingeniería Informática. Lamentablemente, la universidad no proporcionó ninguna habilidad en ningún idioma específico. De manera inconexa, aprendí algunas cosas sobre C++, C#, JavaScript y diseño de UI. En mi tercer año, por casualidad me interesé en la publicidad contextual y casualmente conseguí un trabajo en una empresa bastante conocida. Como resultado, permanecí en publicidad durante 2 años. Disfruté de éxitos decentes, pero definitivamente quería probarme en el desarrollo. Mi regreso a la programación tampoco tuvo un plan bien pensado: recibí un correo electrónico en el trabajo sobre un nuevo servicio que buscaba contratar pasantes desarrolladores de Java. Decidí ir a una entrevista. Por supuesto, en ese momento mis conocimientos básicos no eran suficientes para conseguir una oferta, pero este episodio me impulsó a buscar algunos recursos sobre Java. Me encontré con este curso en Internet. Al principio no me engancharon: todas las imágenes divertidas y las historias de robots me hicieron parecer poco serio, pero realmente me gustó la oportunidad de practicar y comprobar mis tareas. Me demoré y decidí intentarlo, y luego me dejé llevar.

"Reprobé las primeras entrevistas"

Estudié sin un horario rígido, a trompicones: durante los descansos en el trabajo, a veces por la noche. Aproximadamente en el nivel 16-17, comencé a intentar buscar trabajo. Para entonces ya llevaba unos tres meses estudiando con algunos descansos. Si no tienes experiencia laboral, les gusta preguntar sobre algoritmos, pero yo tampoco los conocía casi. Así que fallé en las primeras entrevistas. Tuve que prepararme más, buscar las preguntas más frecuentes y memorizar las respuestas. Aprendí SQL con urgencia, estudié sistemas de control de versiones de código (en mi opinión, CodeGym menciona a Git en un nivel excesivamente avanzado, no hasta el nivel 30) y principios SOLID, y aprendí algoritmos de clasificación. Al final, me contrataron como desarrollador junior en una pequeña empresa. Mis tareas en mi primer trabajo eran súper triviales: desarrollar nuevas funciones del sistema, pulir las funciones existentes, corregir errores. Usamos la metodología en cascada: una persona de negocios envía una tarea, un analista la describe con un poco más de detalle, un desarrollador la implementa, un analista la prueba y luego el desarrollador la incorpora al producto. No utilizamos ninguna tecnología especial: escribimos todo en Java puro: un monolito en lugar de microservicios. Para trabajar con la base de datos, utilizamos nuestro propio marco de código cerrado. Al principio hubo un océano de dificultades, desde aprender cómo cargar el proyecto en el repositorio hasta cómo escribir una solicitud en la base de datos para que no expire el tiempo de espera. Tuve que buscar mucho en Google sobre cómo trabajar con JSON, SOAP, qué es Maven y cómo construir un proyecto Maven. No abandoné el aprendizaje. Intenté estudiar al menos cada dos días, pero hubo un par de ocasiones en las que tuve que dejarlo de lado durante un mes. Pero mi objetivo era terminar los preciados 40 niveles. Paralelamente, tomé un curso sobre el framework Spring. La primavera me ha abierto muchas oportunidades nuevas y las ofertas que recibo gracias a mi currículum se han multiplicado muchas veces. Durante la cuarentena, cambié de trabajo y cambié a un proyecto con arquitectura de microservicio. Estamos creando un servicio para buscar, vender, comprar y arrendar bienes raíces residenciales y comerciales, así como para solicitar y administrar hipotecas. El 80% de nuestros servicios están escritos en Kotlin. El otro 20% está escrito en Java.

Mis planes para el futuro próximo son:

  1. Inmersión más profunda en la arquitectura. Me gustaría profundizar en el diseño de la arquitectura backend.

  2. Aprendiendo C++. Creo que esto definitivamente será útil para cualquier programador: poder, si es necesario, escribir las partes de una aplicación que deben ejecutarse excepcionalmente rápido. Esto será útil para cualquier cálculo matemático complejo.

  3. DevOps. Algunas empresas incluso hacen de esta habilidad un requisito obligatorio para los programadores. Y definitivamente será útil en cualquier otra empresa.

No me arrepiento en absoluto de que allá por noveno grado opté por la carrera técnica y que hace dos años tuve el coraje de dejar la publicidad y empezar la carrera de programación. El desarrollo es una especie de magia, una forma de simplificar las cosas complejas para las personas, de reemplazar la confusión por la claridad. Actualmente estoy intentando que mi hermano menor de 12 años se interese en la programación. Hace un año le regalé un kit de inicio Arduino y estoy pensando en comprarle un libro sobre codificación Python para Minecraft. Cuando sea un poco mayor, le presentaré CodeGym. Creo que le gustará. Una cosa importante que aprendí de CodeGym es que me di cuenta de que no debes tener miedo de pagar por buenos materiales. Se amortizará cien veces más.

Consejos para desarrolladores principiantes:

  • Continuar programando. El trabajo de un programador consiste enteramente en resolver ciertos problemas, encontrar ciertos errores y corregirlos. A veces esto puede parecer (¡y definitivamente lo parecerá!) insoportablemente difícil, aburrido y desconcertante, pero cuando finalmente resuelves el problema, se siente como un verdadero avance, una victoria, casi un descubrimiento. Y este ciclo se repite. Ira, aceptación, largos intentos y fracasos interminables, luego la victoria. La emoción del trabajo de un programador radica en la anticipación del próximo avance y victoria. "No es necesario luchar contra el mal en el desarrollo, pero tampoco tocarlo": la historia de Irina la Programadora - 2
  • Continúe aprendiendo siempre que sea posible. Leer artículos y libros. Encuentre y tome cursos en diversas áreas del desarrollo de software. No dejes de probar nuevas tecnologías. Aplícalos a tus proyectos personales. Interactúa con otras personas apasionadas por el desarrollo de software. Intercambiar experiencias e ideas. Hubo un tiempo en que hablar con gente tan ambiciosa me ayudó a no languidecer en mi primera empresa y a no tener miedo de seguir adelante.

  • De ahí mi tercer consejo: no tengas miedo de cambiar las cosas : un nuevo trabajo, un nuevo marco, un nuevo lenguaje (perdóname, CodeGym). Todas mis grandes victorias sobre mí mismo ocurrieron exactamente en el momento en que cambié de trabajo. Inicialmente, parece aterrador ir a algún lugar sin dominar completamente la tecnología o el lenguaje, pero esto estimula un gran crecimiento a medida que se estudia esta tecnología o lenguaje desconocido. Tu nuevo aire entra en acción y encuentras un significado especial en comprender y estudiar algo nuevo.

  • Sea razonable al evaluar sus puntos fuertes. Incluso si puedes combinar el empleo, el estudio independiente en casa, algunos cursos en línea, la universidad y tal vez una familia, por un tiempo, existe una gran posibilidad de que te agotes. Desafortunadamente, conozco a algunos tipos que se agotaron y abandonaron la programación después de un período prolongado de combinar la universidad, tener un empleo remunerado y también trabajar como desarrollador en prácticas no remunerado. Si se hubieran tomado un día libre extra o una licencia académica en la universidad, si se hubieran tomado un día de vacaciones y hubieran dejado de estudiar, si se hubieran tomado un descanso de sus cursos en línea por unas semanas, entonces tal vez todo hubiera salido bien. diferentemente.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION