JavaRush /Blog Java /Random-ES /Un viaje asombroso al Valhalla, o cómo un historiador-arc...
Denis Sidorenko
Nivel 25
Новосибирск

Un viaje asombroso al Valhalla, o cómo un historiador-archivista se convirtió en desarrollador de Java

Publicado en el grupo Random-ES
Palabras introductorias ¡Hola a todos! Mi nombre es Denis y al momento de escribir este artículo cumplí 30 años hace apenas unas semanas. Desde hace exactamente 6 meses trabajo como desarrollador de Java en una de las fintech más grandes de Rusia. Escribo código en Java 8, al mismo tiempo estudio React, para no perder la velocidad de mi drakkar y navegar más lejos. Sinceramente, todavía no creo lo que está pasando. Bueno, ahora vamos a la historia en sí. La historia se escribió sobre mis rodillas. Si noto algún error tipográfico o violación de las reglas de publicación, haré las correcciones. Historia de éxito Un día me encontré en la calle (en el sentido literal de la palabra): así es la vida de muchos niños de los años 90 que se quedaron sin padre. En esa época de mi vida, mi único tiempo libre era un reproductor de CD japonés y un disco sencillo con el álbum del grupo Epidemic. Para diversificar de alguna manera mi vida, en la temporada de invierno iba a la biblioteca de la ciudad para calentarme. Empecé a leer fantasía en la biblioteca, pero un buen día, al llegar a la sala de literatura técnica, me encontré con el libro “El lenguaje de programación C” de Brian Kernighan y Dennis Ritchie. Admiré la sintaxis del idioma. Para mí esto parecía un estándar. Aunque ¿qué estándar podría haber conocido entonces? Yo no era nadie y no había forma de llamarme. Luego me interesé mucho en aprender este lenguaje y encontré un libro de los hermanos Deitl, The C/C++ Language. Déjame hacer una reserva ahora mismo y probablemente ya lo entiendas: ¿cómo se puede aprender un idioma sin tener una computadora? Sí, ni siquiera tenía un lugar donde vivir. Pero simplemente lo estudié en papel, o imaginé cómo funcionaría si tuviera al menos el "cubo" habitual. Intenté recordar tipos de datos, estructuras, etc. La vida cambió mucho cuando apareció un techo sobre nuestras cabezas y el primer coche basado en Intel Celeron. Por supuesto, el niño, que no había visto ninguna alegría en la vida, cogió un ordenador y se apresuró a jugar. En ese momento se lanzó el juego World of Warcraft, todavía en versión beta. Entonces vivía en Kupchino (distrito de San Petersburgo). Internet era "súper rápido" y las redes locales eran más populares (donde jugábamos CS 1.6, Battlefield, etc.). Tras el lanzamiento de World of Warcraft, los niños del barrio tenían muchas ganas de jugar juntos y, por supuesto, sin pagar una suscripción oficial de Blizzard. Aquí hubo una mayor inmersión en TI. Encontré un emulador escrito por chinos en Delphi y funciona bastante bien como servidor para WoW. Sin embargo, todos los comentarios y documentación estaban en chino. Después de algunos ajustes, funcionó. En Internet encontré entusiastas que analizaban paquetes de red de WoW y escribían su propio servidor para el juego. Apareció el famoso proyecto Mangos, escrito en C++. Hicimos compilaciones de servidores listas para usar, instaladores con un solo clic, etc. No había manuales en Internet, sólo un manual y una guía. Escribió guías para otros. Todo el período de la infancia descrito brevemente anteriormente tuvo lugar durante los llamados “años escolares”. No fui a la escuela y de alguna manera terminé el undécimo grado con los 3 grados, excepto 4 grados en historia. No tenía tiempo para caminar cuando la cuestión era simplemente sobrevivir. Por algún milagro, sin haber reprobado y aprobado el Examen Estatal Unificado en 2008, ingresé al departamento de historia, con especialización en historiador-archivista. ¿A dónde más podría ir? Cero conocimiento de matemáticas, física y química también. ¿De qué tipo de conocimiento podemos hablar? ¿Debería convertirme en ingeniero? Ni siquiera tenías que intentar la introducción a las matemáticas. Mientras estudiaba a tiempo completo durante los primeros 3 años en la Facultad de Historia, en mi dormitorio tenía libros exclusivamente sobre código. Esto incluye .NET FRAMEWORK 3.0 de Andrew Troelsen y libros sobre SQL, JS, etc. Al asistir a clases sobre el Antiguo Oriente, pensé en el código. Sin embargo, la agitada vida estudiantil y las activas excavaciones arqueológicas me mantuvieron ocupado y me dejaron poco tiempo para mi pasatiempo favorito. Sorprendentemente, en ese momento habían pasado más de 6 años desde que toqué por primera vez el lenguaje C, pero seguía interesado por pura curiosidad. La famosa era de los "abogados y economistas". No hay ninguna exageración de "ir a TI", pero aún estás interesado. Después de recibir una beca de Oxford al final de mi tercer año, me vi obligado a dejar Rusia y me fui a Italia (historia familiar). Naturalmente, también tuve que dejar mis estudios. Después de pasar 3 años en Italia, aprendí el maravilloso idioma italiano, pero olvidé por completo todo lo que había aprendido antes de Italia. Cuando regresé y conseguí un trabajo como barman en un restaurante italiano en mi ciudad natal de San Petersburgo, comencé a aprender PHP. En ese momento, eran populares los cursos del especialista, el famoso profesor Igor Borisov (con la voz de Galygin) sobre PHP, JS, etc. Mientras estudiaba estas tecnologías, busqué activamente escribir mi propio foro, pero ¿cuál es el punto? Después de todo, existen motores excelentes para esto. Pero nuevamente, fue simplemente interesante. A 8 meses de regresar a mi tierra natal, recuerdo la universidad que dejé y el tiempo dedicado a ella. Voy allí y me recupero, pero como historiador-arqueólogo. Después de estudiar literalmente 3 meses, tomo una decisión extremadamente extraña: mudarme de San Petersburgo a la ciudad de Zlatoust (región de Chelyabinsk). Al tener un pequeño colchón financiero y no trabajar, intento comprender qué está pasando. ¿Qué? ¿Para qué? ¿Por qué? La mudanza al interior fue de carácter familiar, quería encontrar a mi padre, quien nos dejó en la calle en el “hermoso” año 1992. Mientras intentaba encontrar un trabajo a tiempo parcial, seguí jugando con PHP. Al comprender la inutilidad de esta empresa en ese momento y tener un gran deseo de graduarme de una universidad, me mudé a Chelyabinsk y me transfirieron a una universidad local: SUURSU (sí, la misma donde estudió Evgeny Roshal, el creador de WinRAR). Pero para gran sorpresa de la dirección de "historia", no existe, o más bien no existía, formato de correspondencia. Surgió una elección: ¿teología y ciencia política? Por supuesto, elegí la segunda opción. Por primera vez, JavaRush aparece en el horizonte. Los amigos te aconsejan que pases los primeros 10 niveles (sí, todavía eran gratuitos en ese entonces) y, si te gusta, continúas. Sinceramente, sólo completé los primeros 7 niveles y me di cuenta de que incluso habiendo llegado al 10, simplemente no tenía dinero más allá de eso. Cuando descubrí Java por primera vez, tuve sentimientos encontrados todos los días. Pareció quebrarme y provocarme rechazo. Estas bolsas, empacan todo en bolsas. Llamé a la clase Perro, por favor, y el nombre del archivo es el mismo. Después del "caos" y el poder de C++, la ortodoxia de Java era extremadamente inusual. La velocidad de todo esto dejaba mucho que desear. En general, honestamente me apresuré a olvidarlo como un horror silencioso, e incluso entonces volví a mirar hacia C#. En 2007, recuerdo que cuando estaba leyendo un libro sobre .NET FRAMEWORK 3.0, pensé: "Seguramente esto puede usarse para escribir juegos interesantes". Como anticipando el desarrollo activo de Unity y otras cosas. Por supuesto, no sin la ayuda de C++. Pero volvamos a la historia de Java. Después de hacer mi primer intento en JavaRush y detenerme en el nivel 7, me sumergí en las humanidades del estudio de ciencias políticas. Escribí artículos científicos y sólo en sueños intenté compilar el código. Apenas había suficiente dinero para sobrevivir. Tiempos difíciles, por supuesto. Pero no sin la ayuda de Dios terminé mis estudios y defendí mi diploma. Inmediatamente después de mi defensa, me ofrecieron inscribirme en un programa de maestría, pero no en ciencias políticas, sino en sociología. Me atrajo la forma presupuestaria de educación y estuve de acuerdo. Aquí inmediatamente haré una reserva (omito dos años de mi vida): cuando, después de comenzar a estudiar PHP, conozco a un joven diseñador, de la mano hacemos pedidos en un sitio independiente. Él hace el diseño, yo hago el diseño. Esta es sólo una pequeña experiencia en el frontend. Una maestría en sociología en SUSU ya parecía una búsqueda más aplicada y práctica. El curso incluía matemáticas superiores, matemáticas. análisis, estadísticas, etc. (casi todo lo que ahora está en la hoja de ruta del Data Science). Incluso Python estaba al final de mi maestría. Y justo en este momento, al comienzo del segundo año de la maestría, entiendo que realmente no quiero trabajar con esto y que la demanda de “sociología” es insignificante. Estoy mirando nuevamente hacia el desarrollo y nuevamente les escribo a amigos que aconsejaron JavaRush en algún momento. Pasaron de 3 a 4 años desde el primer intento. Para mi gran sorpresa, los chicos ya están trabajando como desarrolladores de Java, en puestos intermedios. No escribieron historias de éxito, pero en comunicación personal me sorprendió que después del nivel 18-19 consiguieran trabajos como aprendices o Juniors. Empecé a pensar de nuevo, a deambular, a correr... Viendo los ratings de Tiobe, Pypl, etc. todo el día. Video en youtube: "¿Qué lenguaje de programación elegir primero en XXXX?" Recién ahora, después de haber trabajado como desarrollador durante 6 meses, me doy cuenta de lo absurdo de esta pregunta. El número de vacantes en hh.ru en mi región (en ese momento Chelyabinsk) dejaba mucho que desear. Uno de los amigos “exitosos”, que ya había conseguido un trabajo en desarrollo, dijo en texto plano: “deja de pensar, paga una suscripción a JR, sube al nivel 20, luego te ayudaremos con la base Spring, y entonces dependerá de ti”. Recuerdo este maravilloso día, 11/09/2019: comprar una suscripción anual en una promoción por 5800 rublos... En ese momento ni siquiera podía pensar que esta compra se amortizaría x100500 veces. Fue un viaje de 5 meses. Todavía recuerdo el octavo nivel de JR (misión de sintaxis de Java): resultó ser un punto de inflexión. Muchos de los que estudiaban en paralelo conmigo en ese momento no pudieron soportar la complejidad de las tareas y dejaron a JR con las palabras: "Oh, qué diablos, iré y empezaré a invertir y recibiré un ingreso pasivo de 200.000 rublos al mes". .” Hasta la fecha, todas las personas que he conocido que se dieron por vencidas en el Nivel 8 no se han convertido en inversores, millonarios o incluso en clase media. A veces vienen con las palabras: "préstame algo de dinero". Cómo sentí el octavo nivel (sintaxis de Java) en JavaRush: Un viaje asombroso al Valhalla, o cómo un historiador archivero se convirtió en desarrollador.  - 1 un amigo con el que pasamos hombro con hombro hasta el nivel 20, siendo 9 años mayor que yo, consiguió un trabajo en Luxoft. Creo que todavía tendrá tiempo para escribir su historia. Si no entramos aquí en absoluto en la fábula de Krylov, entonces la moraleja y el resultado son los siguientes: 1) La primera seguridad social tuvo lugar en la empresa Zaycev.net en Chelyabinsk. Fallé con éxito (durante 1,5 horas hubo preguntas extremadamente extrañas, los 20-25 minutos restantes intenté hacer la prueba en papel). Gracias chicos por la experiencia de la primera entrevista. La prueba incluyó una pregunta estándar sobre los principios de la programación orientada a objetos, seguida de la traducción de un sistema numérico a otro. Hay 6 tareas en total. Lo último es escribir un algoritmo de clasificación; simplemente no lo logré porque... Atascado el día 5 (tarea: “¿Qué hace este código?”) y se acabó el tiempo. 2) Después del fracaso del servicio de seguridad social en marzo de 2020, comenzó la gran depresión en zaycev.net : la pandemia de Covid-2019. Una época extremadamente controvertida. ¿Cómo se desarrollará la defensa de la tesis? ¿Qué hacer a continuación? ¿Donde trabajar? Además, se quemó mi dacha, que compré por unos cientos de miles con la esperanza de construir mi propia casa. Al menos algunos, simplemente para no andar por ahí a los 30 años. 3) En medio de una pandemia, decido mudarme de Chelyabinsk a Novosibirsk (¿qué tengo que perder? La casa de campo se quemó de todos modos). El viaje en sí fue “divertido”, la región de Kurgan está cerrada a la entrada y salida. Miedo a que la policía te detenga y te devuelva a casa con las palabras "no puedes ir a Novosibirsk sin registrarte". El llamado período del régimen de “ autoliquidación ”. 4) Me mudé a Novosibirsk y no puedo encontrar trabajo. Los maravillosos chicos de la empresa 2GIS, después de la cuarta etapa de la entrevista, me dicen que lo siento, desperdiciamos su mes, pero ya encontramos a alguien más (esto fue un intento no de conseguir un trabajo en desarrollo, sino un vacante regular de operador telefónico); 5) Luego conseguí trabajo como vendedora en la maravillosa tienda Lenta, porque es verano de 2020 y esta opción me parecía un cuento de hadas. Los antiguos dueños de negocios de restaurantes se ven obligados a usar bolsas amarillas de Yandex.Food y trabajar de pie. Sobrevivieron lo mejor que pudieron. Los eventos son recientes, recuérdalos tú mismo. 6) Un amigo con quien resolvimos problemas en JR (mencionado anteriormente), ya consiguió un trabajo (después de 5 meses de estudiar en JR), me invita a participar en un proyecto de código abierto en Java. Me gustó la idea de recibir y compartir experiencia, incluso si no te pagan por ello. Había una persona en este proyecto que organizó este “movimiento” mismo. Al mismo tiempo, trabajó como TeamLead QA en una gran empresa en Moscú. Le gustaron mis ideas para el proyecto y cómo usar Spring lo mejor posible (en ese momento solo conocía lo básico). 7) Llegó el día en que el mismo organizador del proyecto de código abierto preguntó: ¿puedo dedicar más tiempo? ¿Y dónde trabajo? Al escuchar las palabras “Lenta” y al asesor de ventas, me recomendó a su empresa para el puesto de control de calidad móvil. Dispositivo GPC. No sabía nada sobre Selenium, Appium, etc. Pero en tan solo un par de semanas entré en la esencia de escribir pruebas automáticas para teléfonos móviles basados ​​en Android e iOS. El salario base, superior a 1.000 dólares, me impresionó mucho. A partir de ese momento, la vida tomó un rumbo completamente diferente. 8) Se acerca agosto de 2020, literalmente llevo 1,5 meses trabajando en la empresa como control de calidad. Era una tarde de agostoJúniordel título del currículum. También agregué un poco de experiencia comercial en un lugar nuevo, mi progreso en JavaRush (en ese momento era nivel 22). También indicó que estaba participando en un proyecto de código abierto y envió un enlace a la única tarea de prueba en Zaycev.net en github (por cierto, sí, lo hice durante un mes y aparentemente hice un caso real: era un servicio meteorológico). 9) Ese mismo Día X llega cuando, en la “siguiente” mañana de agosto, reviso mi correo. Veo un mensaje de hh.ru que una gran empresa quiere comunicarse con usted. La primera reacción fue: "¿Sí? ¿En serio? ¿Estás bromeando? ¿Te he estado enviando mi currículum desde hace qué año y sólo ahora?". Decir que me estaba preparando para la entrevista sería quedarse corto. Simplemente no me preparé y me di cuenta de que o mis conocimientos actuales eran suficientes o lo siento amigo, pero aún hay que enseñar y enseñar. 10) Llegó el día de la llamada de Zoom con hr. Un minuto antes de la reunión comencé a pensar: ¿vale la pena conectarme ahora y avergonzarme? Pero, ¿por qué pensarlo? No tengo nada que perder: en Zaycev.net ya estoy al máximo, pero necesito experiencia en entrevistas. Después de preparar una taza de café, entré exactamente a la hora acordada. Para mi gran sorpresa, me esperaban dos personas: 1) Product Owner y 2) Team Lead. Te conté una historia similar a la que has leído hasta ahora. Respondió preguntas como: "¿Por qué fuiste a la escuela de posgrado?", "¿Por qué regresaste a Rusia desde Italia?", "¿Por qué cambiaste la vida en Milán por la vida en Novosibirsk?" En ese momento, literalmente el día antes de la llamada, estaba configurando el servidor Wildfly en Debian 9 puro, y con estas palabras terminé mi mini monólogo en la entrevista. Después de una breve pausa, me di cuenta de que la conexión se había producido y se anunció brevemente: "¿Estás de acuerdo en hacer una prueba y, si tienes éxito, te contrataremos?" Mi respuesta fue: "Sí". PD: Hice la prueba en un par de días y al mismo tiempo seguí trabajando como control de calidad. La tarea era bastante interesante: era necesario escribir un servicio en Spring puro, donde se recibía una solicitud como entrada del controlador, era necesario implementar varias capas DTO y, en el repositorio, recibir datos no de la base de datos, sino de json, cuya estructura tuve que idear yo mismo. Cualquier persona interesada en los detalles de la tarea y su solución, escríbame en un mensaje personal: no sé qué tan legal será la publicación de este material. Después de enviar la tarea para su revisión el mismo día, recibí un "Sí" de la empresa que me invitó. Me he convertido oficialmente en desarrollador de Java. Tuve que omitir muchas cosas para no aburriros con el texto. Lo bueno de toda la situación es que pagué la suscripción a JavaRush el 11/09/2019 y recibí la oferta el 11/09/2020, exactamente 1 año, con una larga pausa durante el inicio de la pandemia y la preparación para defendiendo mi tesis de maestría. Hasta la fecha, he adquirido una experiencia invaluable en el desarrollo de aplicaciones comerciales. 6 meses dieron más que años de estudio. Pero esto sería imposible sin experiencia práctica en JavaRush (problemas y más problemas). Ahora con todo mi agradecimiento al proyecto JR, intento ayudar a mis amigos, Quienes, como yo, quieran dedicarse al desarrollo de Java, les doy algunas suscripciones premium anuales. Gracias al trabajo, no voy a trabajar. Ni siquiera puedo llamarlo trabajo: disfruto de las tareas difíciles. Durante este tiempo, se estudiaron tecnologías desde Kafka hasta Hadoop, y la pila personal de tecnologías no deja de reponerse. Mis años de estudiante, con una duración total de casi 9 años, me inculcaron las habilidades de la perseverancia y un deseo constante de enseñar y aprender cosas nuevas. Sin esto, miles de dólares al mes no le motivarán especialmente. Definitivamente no vale la pena dedicarse a este campo únicamente por dinero. Érase una vez, viviendo en la calle, ni siquiera podía imaginar que me compraría una casa en una zona ecológica de los espacios abiertos de Siberia. Hacer lo que amas, recibir un salario digno, gracias al cual se acabó el modo de supervivencia. Recuerdo la famosa frase de Petyr Baelish de la serie Juego de Tronos: Un viaje asombroso al Valhalla, o cómo un historiador archivero se convirtió en desarrollador.  - 2 Casi 30 años de supervivencia, en exactamente un año de pandemia, se convirtieron en Valhalla, por el que todos los vikingos también se esfuerzan desenfrenadamente. ¿Si solo estás pensando en aprender Java? ¿Necesito esto? ¿Podré hacerlo? Simplemente desplácese hasta el pie de página de la página principal de JR y lea esas tres palabras: Los programadores no nacen. Bloque de consejos ¿Qué tipo de historia podría haber sin consejos? 1) No recomiendo profundizar en las tareas con juegos, siempre que necesites acostumbrarte lo antes posible. ¿Por qué? Sino porque dedicarás mucho tiempo a algo que, de hecho, no necesitas. Pero aprender Spring te acercará a tu objetivo mucho más rápido. ( Sin embargo, si tienes tiempo, tienes una vida dulce y un techo sobre tu cabeza, puedes hacer algunos juegos ). Pero repito: Java no se trata de desarrollo de juegos. Oh, sí, en general, olvídate de jugar juegos en tu computadora, desinstala Steam en tus teléfonos y otros medios. Volví a jugar a The Witcher sólo después de 5 meses de trabajar como desarrollador. 2) Dedique más tiempo a las estructuras y colecciones de datos (la primera es que las necesitará al realizar tareas de refactorización de código); 3) Puede aprender SQL solo antes de unirse, si planea aprobar una entrevista. fuma el restode camino a la oficina. El mejor recurso actualmente en RuNet: sql-ex.ru 4) Spring. Sí, sí, ya es como Java-core. Siempre que quieras conseguir un trabajo. El curso en vídeo de Alishev en Youtube y un par de artículos sobre Habré fueron suficientes para mí. 5) ¿Algoritmos para que rebote? Es poco probable, pero no estaría de más conocer un par de tipos comunes. Todavía no he leído el libro completo de Grokai, Algoritmos. 6) Los libros que resultaron de gran utilidad fueron D. Bloch - Java Effective Programming (3.ª edición) y R. Martin - Clean Code. Todavía no he leído “La Filosofía de Java” de Bruce Eckel (me detuve en la página 150). 7) Únete a cualquier movimiento en el que puedas adquirir experiencia. Código abierto, tu propio proyecto favorito, tal vez una pasantía. Por supuesto, refleje actividad útil en su currículum: en general, "peine" su currículum. 8) No podrás detectar errores fuera del estanque sin dificultad.... Si honestamente pasas el octavo nivel (sintaxis de Java) en JavaRush, incluidas las tareas adicionales, debes saber: casi te has convertido en un gato de Java. Entonces será un poco más fácil. 9) ¿Cómo prepararse para las entrevistas? Que Odin me perdone por abrir el cofre del tesoro, aquí está el enlace: https://github.com/enhorse/java-interview 10) Y no olvides repasar los temas de Lambda y Stream API en Java (preferiblemente antes la entrevista, pero más a menudo para un trabajo más productivo desde los primeros días de su dispositivo). Al principio no entenderás qué es ni con qué frecuencia se utilizará. Sin embargo, después de estudiar el tema, te encantarán las transmisiones con todo tu corazón. Gracias por leer mi cuento. Estaré encantado de responder a tus preguntas, así como a chicos especialmente "calientes", invitarte a mi empresa para realizar prácticas o directamente a trabajar, dependiendo de tus conocimientos actuales (detalles en PM). Lo olvide por completo. En marzo de 2021, existe una gran escasez de personal para desarrolladores de Java en el mundo. Los responsables de las empresas se ven obligados a pagarte para que te olvides un rato del consumo y te dignes levantarte del sofá y convertirte en promotor. El hecho de que alguien haya comenzado a aprender un idioma y haya alcanzado el nivel 3-4 no significa que no tendrá un lugar en el mercado. Serás absorbido (literalmente) tan pronto como domines al menos los conceptos básicos de Java Core. La globalización, que nos ha llevado a la digitalización (hola Cyberpunk), necesita no sólo un ejército de desarrolladores, ¡sino legiones de gatos Java! Oh, sí, continúan escribiendo nuevos proyectos en Java y no solo admiten el legado. Hay que ser un mapache súper vago para no entrar en desarrollo hoy, en 2021. Las empresas te están esperando. Las empresas están dispuestas a pagar por tu formación. ¡Solo da un paso hacia ellos! ¡No tengas miedo! ¡Agori!
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION