JavaRush /Blog Java /Random-ES /Una guía para el futuro desarrollador de Java. Entrevista...
Fry
Nivel 41
Львов

Una guía para el futuro desarrollador de Java. Entrevista y carrera

Publicado en el grupo Random-ES
Una guía para el futuro desarrollador de Java.  Entrevista y carrera - 1 La Fuerza es un río del que muchos pueden beber, y el entrenamiento Jedi no es la única forma de aprovecharla". — Luke Skywalker Todas las selecciones de libros quedan atrás. Depende de usted decidir cuáles leer y cuáles no. Ahora sólo te queda un objetivo: conseguir un trabajo y construir una carrera sin pisar un rastrillo. El último artículo está dividido en secciones: - Antes del trabajo - Entrevista - Durante el trabajo Esta parte contiene gran parte de mi opinión personal, así que no saques frases fuera de contexto y trátalas como una conversación franca con un viejo amigo :).

Antes del trabajo

A continuación se muestran los diez clichés más populares que surgen cuando el alma se siente atraída por la programación, pero ciertas circunstancias interfieren con la persona. Mi tarea es tratar de detener tus sospechas y prepararte para una forma positiva de pensar. Si estás leyendo este artículo, ¡estás más lejos de lo que crees! Mentalmente, ya estás donde necesitas estar, y si ya has leído algunos libros, entonces ya estás a la mitad del camino. Por lo tanto, deja de dudar: esta es la suerte de los débiles. ¡Solo adelante! ¿Ya mejor? ¡Entonces vamos! "No tengo educación" Cuando era completamente verde y entré a la academia de una de las grandes empresas de subcontratación, los entrevistadores me insinuaron amablemente que no estaban interesados ​​en un diploma en absoluto, por lo que las preguntas eran específicas: sobre programación orientada a objetos y conceptos básicos. Java. Por supuesto, encontrará vacantes donde la disponibilidad de tecnología. la educación será un requisito claro. Sólo quiero decir que su ausencia no es un obstáculo estos días. Muchas oficinas extranjeras solicitan una licenciatura o maestría en informática o, atención, experiencia relevante. ¿No es convincente? Quizás te anime el hecho de que no tengo educación técnica ;), pero esto no me impidió en absoluto adquirir experiencia en grandes empresas. Pregúntame ahora, ¿qué haría si pudiera rebobinar la película? Por supuesto, iría a KPI/NAU, pero no me entristecería mucho no poder entrar. Deja de preocuparte por eso. El tiempo pasará; puedes obtener un título a los 40 si lo deseas, pero por ahora, concéntrate en convertirte en un desarrollador junior aquí y ahora. “Habrá gente más inteligente que yo” Siempre habrá personas más inteligentes, más inteligentes, más flexibles, más talentosas que tú, y cualquier trabajo no es una excepción. Este hecho no le da en absoluto derecho a desviarse de su objetivo. Quizás, en algún lugar del otro lado del mundo, haya un niño japonés que multiplica y divide números más rápido que tú, y una abuela de la República Checa teclea en el teclado de un teléfono móvil más rápido que cualquier adolescente. Pero no piensas en eso, ¿verdad? Entonces, ¿por qué deberías preocuparte por las personas con las que trabajas una vez que te contratan? En algunos aspectos, sus futuros colegas serán superiores a usted y en otros serán inferiores a usted. ¡Esto esta bien! Lo tachamos. “No creo que pueda” Bueno, primero que nada, nadie dijo que sería fácil, pero esto no significa en absoluto que tu objetivo sea imposible. No hay nada que le impida simplemente intentarlo, incluso si actualmente trabaja como contable o asesor de ventas. Ven después del trabajo y siéntate a estudiar. Si con el tiempo ves algún progreso, es una señal de que estás avanzando en la dirección correcta. ¡No pares! Si estás un poco interesado en esto y te lo dan, entonces no conozco un solo punto que pueda convencerme de que no eres digno de ello. "Me abruma la pereza" La pereza es simplemente falta de motivación. Si notas que la mayor parte de tu tiempo libre, en lugar de estudiar y mantener el rumbo, lo haces estúpidamente haciendo basura, me apresuro a advertirte que, lo más probable, ser programador no es para ti. Al menos no ahora. Algunos llaman a la pereza un pecado, una enfermedad, el cólera de la era moderna junto con la obesidad. Deje este asunto a la histeria profesional. En mi opinión, todo lo que nos rodea en esta vida está imbuido de la ilusión de la lucha y la competencia: quién es más alto, quién es más fuerte, quién es más rico. Quién tiene un coche más genial, quién en el equipo tiene un salario más alto, quién hace más press de banca en el gimnasio, cuál de las chicas se casó antes y tuvo hijos, esto te enferma, como la apestosa comida rápida. La gente dejó de vivir y disfrutar la vida, de perseguir sus sueños, de cambiar su zona de confort por la posibilidad de elegir entre Pepsi y Coca-Cola. Para mí la pereza es buena, es simplemente maravillosa. Esta es una función protectora ordinaria de su cuerpo para ahorrar energía y tiempo en cosas que le son inútiles. El hombre fue creado para ser libre, así que si eres vago, deja de intentar levantar el trasero del sofá; tal vez ahora esté en su lugar :). "Voy allí por el dinero" Si reúne a los desarrolladores y dice: a partir de ahora su salario será de 3 a 4 mil jrivnia para cualquier nivel, y los evaluadores seguirán recibiendo las mismas tarifas, entonces la pregunta será diferente: no cuántos es una bomba, sino cuántos programadores seguirán siendo programadores después de esta noticia. Mucha gente se mete en TI por el dinero. Salario traducido de dólares, queso y una costosa DSLR. No importa cuánto trabajé con la gente, siempre hubo conversaciones sobre esto. No digo que esto sea malo, solo quiero que no intentes convencerte de que vienes con propósitos puramente espirituales para cambiar el mundo para mejor. Antes de conseguir un trabajo como junior, sabía cuáles eran los salarios de los seniors, los líderes técnicos e incluso los mandos intermedios, y estos pensamientos solo me inspiraron: en mi época anterior a trabajar como programador, solo podía soñar con esas cifras. Llama a estas cosas por su nombre y deja de avergonzarte de ello. “Me parece que esto no es mío”. ¿ De quién entonces? Ya sabes, es fácil de comprobar. Abra el primer volumen de Hortsmann y comience a leer y escribir código a partir de los ejemplos. Si no estás aburrido y no estás dedicando tiempo al mismo capítulo durante la segunda semana, deja de lado tus dudas. El estudio de especialidades técnicas es algo secuencial. No puedes pasar a B sin conocer A, pero siempre tendrás la oportunidad de retroceder un capítulo y fortalecer tus bases. A por ello. “Hay muchos como yo” Siempre hay competencia por un lugar. No discuto, por ejemplo, que ahora hay entre 300 y 400 probadores sin experiencia, o incluso más por lugar. Sí, ésta es la amarga verdad, pero, por otro lado, incluso con tales indicadores no puedo encontrar un punto suficientemente serio. ¡¡Sí, al menos 100500 por plaza!! Siempre tienes la oportunidad de adquirir experiencia en tus proyectos: crea algún tipo de servicio, un programa de escritorio, usa todo el stack que conoces y ya estás avanzando, mientras que el resto, además de enviar tu currículum, lo hace. nada más. “Nadie responde a mi currículum” Continuación del punto anterior. Lo más probable es que para los futuros especialistas en TI sin experiencia, poder redactar un currículum bonito sea bueno, pero cuando hay mucha gente para una vacante, muchos currículums son muy similares entre sí: usted, por supuesto, puede enviar una foto. con escote (si es niña) o escribe muchas tecnologías, que tú solo conoces por Wikipedia. En ambos casos, a RR.HH. simplemente no le importará: si la vacante del proyecto debe incluir a una persona que, por ejemplo, conozca AWS, buscará AWS en su currículum. Tenga en cuenta otro punto importante, como las recomendaciones de los compañeros. Este es el dolor de cualquier persona que no tenga tales conocidos, porque la mayor parte de los jóvenes provienen de allí (si la persona es recomendada, no es un idiota, por supuesto). Por lo general, para el puesto junior contratan, enfatizo, una persona adecuada y activa que esté lista para aprender, e incluso para comer. Y si ese candidato fracasa, lo más probable es que usted sea el siguiente. Bueno, mientras el resto es entrevistado, tienes muchas áreas en las que puedes mejorar tus habilidades: código abierto, tareas en Internet y tal vez trabajar como autónomo. “No pasaré la entrevista/Quiero incorporarme a una empresa específica” Sí, lo más probable es que la primera entrevista sea un fracaso, pero la experiencia que obtendrás no tiene precio. Con cada entrevista posterior, se volverá más seguro e ingenioso. Todavía recuerdo mi primera... ¡¿Dios, de qué tonterías estaba hablando?! Fue una pena tener que irme después (recordé a ese demonio que me sonrió en la cara), pero cuando llegué a casa y lo pensé, me di cuenta de que era una lección maravillosa. Después de él, todos los acontecimientos similares posteriores estuvieron imbuidos de tranquilidad y confianza. Nadie murió, están buscando gente como yo, lo que significa que subiré. ¡Creer en ti mismo! Si desea unirse específicamente a una determinada empresa, creo que no le contaré un truco que sea popular en nuestro entorno, pero aún así: antes de organizar una reunión con esta empresa, realice una entrevista con la competencia. Quizás le ofrezcan algo que no pueda rechazar o las condiciones sean más duras. Una cosa estoy segura: no te arrepentirás. “Yo también me siento bien en este trabajo” Ya sabes, hay un viejo dicho: Le mieux est I'enneini du bien (“Lo mejor es enemigo de lo bueno”). Quizás tu trabajo no sea el peor lugar para estar, pero sí, el jefe es un idiota, ¿y qué? O, por ejemplo, el tercer año sin bonificación, pero con salario estable, sobre todo porque ya tengo más de 30 años. Hasta cierto punto, esto puede ser cierto, solo recuerda que tienes una vida y no debes desperdiciarla en decepciones, por consuelo imaginario, cuando hay tantas cosas interesantes a tu alrededor y toda tu vida no es suficiente para comprender. No tengas miedo de ser mejor, no tengas miedo de ser el mejor. No escuches a nadie, ve hacia tu objetivo con perseverancia si sabes que eso es lo que realmente quieres hacer. ¡No tengas miedo de cambiar!

Entrevista

En general, puedes encontrar todo esto en Internet o preguntarle a tus amigos, pero creo que no será superfluo. A continuación se muestra un ejemplo de una entrevista para un desarrollador junior de Java, tal como sería ahora si yo fuera el entrevistador. Las preguntas pueden ser cualquier cosa, sólo intenté recopilar algo normal sobre el hospital. Imaginemos que tienes suerte. Esquema estándar Paso 1. Te llama un reclutador y concertas una entrevista con ella, por ejemplo, mañana a las 11:00. Paso 2. Llegas antes, ya que las 11:00 probablemente no sea la hora para ti, sino para los desarrolladores, que han reservado una especie de habitación en la que te torturarán. Sería una buena práctica que cualquier reclutador advirtiera sobre esto. Paso 3. De hecho, a partir del paso 3, todos los puntos se pueden mezclar, porque las entrevistas pueden ser diferentes. Por ejemplo, aquí te pueden preguntar sobre cosas básicas, de dónde eres, por qué estás aquí, etc. Es posible que el propio RR.HH. pueda hacer esto y, por supuesto, es posible que en inglés. Realmente depende de la empresa. Paso 4. Lo invitan a una sala de reuniones, donde conversará con una, dos, tres personas, una de las cuales será un senior o un líder técnico que trabajará con usted en el futuro, entre el resto. Puede ser un Scrum Master, otros desarrolladores o RR.HH. Te entrevistan un rato, luego te dan la mano y te dejan ir. Paso 5. Quizás esto sea al día siguiente, o quizás inmediatamente después del paso 4: tendrá una conversación con el cliente extranjero (si lo hay), o quizás él mismo realizará la entrevista. Como puedes ver, hay muchas opciones. En algún lugar hay clientes, en algún lugar también hay una entrevista telefónica. Este es sólo un ejemplo. Ejemplo de una entrevista técnica para un desarrollador junior de Java. Lo siento mucho por los subdesarrolladores que leen algo inteligente con el objetivo de ahogarse/aplastarse/lucirse frente al solicitante en la entrevista. Si ves a una persona así frente a ti y sientes presión y tensión de su parte, envíalo inmediatamente a tres divertidos, porque después de completarlo con éxito tendrás que trabajar con este idiota. No desperdicies tus preciosos nervios. La entrevista, en primer lugar, debe realizarse con el objetivo de averiguar qué sabe el candidato y no qué no sabe. Naturalmente, si necesitas una persona que sepa algo concreto, pregúntale, no le molestes con cosas inútiles que no utilizas en el proyecto. ¡Sé humano, después de todo! A continuación se presentan preguntas aproximadas que pueden surgir en una entrevista. 5 preguntas para cada tecnología. POO 1. ¿Dé un ejemplo de polimorfismo de la vida real? ¿Cuáles son las ventajas? ¿Defectos? Escribe un código simple. 2. ¿Qué es una interfaz? ¿Clase abstracta? ¿Por qué necesitamos interfaces si podemos escribir todo estúpidamente en clases (una pequeña provocación)? Lo mismo ocurre con la clase abstracta. ¿Cuáles son los métodos predeterminados en Java 8? 3. Construya una jerarquía de clases usando un ejemplo específico de una base de datos o programa imaginario (hay una lista de diferentes clases de trabajadores de la base de datos) y la interacción entre ellos (agregación, composición). 4. ¿En qué se diferencia la composición de la agregación (is-a, has-a)? 5. ¿Cómo se puede evitar la prohibición de herencia múltiple en Java? JDK/JRE 1. ¿En qué se diferencia JDK de JRE? ¿Qué es la JVM? 2. ¿Qué es classpath y para qué sirve? ¿Cómo, por ejemplo, cargar otras clases en el classpath? 3. ¿Qué sabes sobre el cargador de clases? 4. ¿Cuéntanos sobre javadoc? ¿Para qué sirve? 5. ¿Qué es JAR, GUERRA? Java común 1. ¿Cuál es la diferencia entre métodos estáticos y no estáticos? ¿Qué es definitivo? 2. ¿Qué es el boxeo-unboxing? byte b = 127, b++, ¿cuál es el resultado y por qué? 3. ¿Qué son los envoltorios, para qué sirven? 4. ¿Qué necesito hacer para crear mi anotación? ¿Qué es anular/sobrecargar? 5. ¿Por qué la clase String es definitiva? ¿Qué hace el método interno()? Estructuras de datos 1. ¿Explique la estructura de la API de colecciones en Java? ¿Ya has trabajado con Stream API? 2. ¿Cuál es la diferencia entre ArrayList y LinkedList? ¿Dónde es mejor usar ArrayList y dónde está LinkedList? 3. Cuéntanos cómo funciona HashMap. ¿Cuáles son las características de trabajar con TreeSet, HashSet? ¿Tienes experiencia con colecciones de guayaba? 4. Arreglos en Java, ejemplo de arreglo bidimensional. 5. hashCode, ¿es igual a usar HashMap como ejemplo? Concurrencia 1. ¿Qué es un proceso? ¿Fluir? ¿Cómo crear un hilo? ¿Qué está sincronizado? ¿Cómo entender tal o cual fragmento de código seguro para subprocesos? 2. ¿Qué es Thread.sleep y también esperar, notificar y ceder? 3. ¿Dé un ejemplo de punto muerto? 4. Colecciones cuando se trabaja con subprocesos múltiples. 5. Operaciones ThreadLocal y Atomic SQL/JDBC 1. Usando un ejemplo específico, obtenga de la base de datos de Usuarios aquel cuyo salario es mayor que 5000. 2. Ejemplos INNER JOIN, OUTER JOIN, Ordenar por, Agrupar por. 3. ¿Por qué necesita un controlador JDBC? Ejemplos. 4. Cuéntanos todo lo que sabes sobre ResultSet, un par de ejemplos. 5. Escriba un DAO simple usando RS. JPA/Hibernate 1. ¿Cuáles son las desventajas y ventajas de JPA? 2. ¿Qué es EntityManager? ¿Entidad? 3. Criterios en JPA/Hibernate. 4. Uno a uno, muchos a muchos en JPA/Hibernate 5. ¿Cómo harías un JOIN en Hibernate? ¿HQL? Primavera 1. ¿Qué es DI/IoC? Ventajas. 2. ¿Qué es el contexto de la aplicación? ¿Frijol? 3. ¿Cuáles son los tipos de inicialización de IoC? 4. Singleton, ¿prototipo en primavera? ¿Primavera basada en anotaciones? 5. ¿Ciclo de vida de los frijoles? ¿Método de inicio, método de destrucción? @PostConstruct, @PostDeploy? experto 1. Fases principales de maven, ciclo de vida. 2. ¿Cómo ejecutar maven con pruebas, sin pruebas? ¿Qué es el arquetipo, la dependencia mvn? 3. Perfiles en maven, cómo crearlos, cómo iniciarlos. 4. ¿Qué es una instantánea en Maven? ¿Repositorios centrales/remotos? 5. Complementos en mvn, cómo funcionan, un par de ejemplos. Algo 1. El concepto de algoritmo, su velocidad, Big-O-Notation. 2. ¿Cómo encontrar el elemento del medio en LinkedList de una vez? 3. ¿Escribir una pila primitiva? ¿Cuál es la diferencia entre pila y cola? ¿LIFO, FIFO? 4. Clasificación rápida, clasificación por combinación. 5. Escribe un programa que compruebe si un número es un palíndromo. Estoy de acuerdo, tal vez la barra esté un poco más inclinada hacia el medio que la junior, pero creo que esa preparación definitivamente no te hará daño. Intenta profundizar en cada pregunta. Por cierto, muchas áreas de Java no están indicadas aquí, téngalas en cuenta.

Durante el trabajo

Aquí hay algunas pequeñas recomendaciones para aquellos desarrolladores junior/intermedios que ya se han establecido. Estos sencillos consejos pueden ayudarle tal como me ayudaron a mí. No seas terco. Deja de intentar demostrar tu punto, incluso si está tentadoramente cerca de la verdad. Ya te habrás dado cuenta de que llevas mucho tiempo discutiendo, lo que significa que al otro lado de las barricadas hay un burro corriente que sólo tiene dos opiniones en la vida: la suya y la equivocada. Tenemos un número increíblemente grande de personas testarudas que se mantienen firmes hasta el final, sólo para que su ego no se vea afectado. Y estos no son solo sus colegas, simplemente están en todas partes: en el minibús, en la tienda, familiares, amigos cercanos; no puede huir ni esconderse de ellos. Necesita interactuar de alguna manera con ellos, incluso si comprende que la persona está diciendo abiertamente tonterías. Es más, a ti te puede pasar lo mismo. Estoy de acuerdo, las cosas sencillas se pueden explicar incluso a una persona testaruda, pero ¿y si hablamos de cuestiones arquitectónicas en un proyecto u opinión personal? Olvídate de esta basura, sé flexible. Tengo mucho respeto por las personas que pueden admitir que cometieron un error delante de todos. Ésta es precisamente la cualidad que le resultará útil como especialista junior: es difícil enfrentarse a una persona abierta, especialmente cuando admite que está aprendiendo y que tiene derecho a cometer errores. No llegues tarde No importa si es un período de prueba o simplemente un viernes, cuando todos se olvidan y vienen a las 11. Otra cosa es importante: la puntualidad es una característica de un profesional que gana puntos extra de la nada. . Y los puntos extra no le harán daño a una persona sin experiencia, ¿verdad? Intenta no llegar tarde y sal del trabajo después de trabajar honestamente durante 8 horas. No abuse de las estimaciones Desafortunadamente, esta es una situación muy común en la que me metí en el pasado. El desarrollador se fijó entre 8 y 16 horas para completar la tarea y, inesperadamente, la completó en 3 o 4 horas. Las horas restantes las dedica a su tiempo personal jugando al ping-pong, como fue mi caso, o viendo YouTube y otros entretenimientos. Desde el punto de vista legal parece que estamos de acuerdo, pero desde el punto de vista humano te estás privando de cosas muy importantes: 1. Estás parado, porque estás llenando tu tiempo extra con cosas innecesarias; 2. No se está desarrollando porque no informa a su gerencia sobre su rápido progreso, nadie sabe que está completando las tareas más rápido de lo esperado; 3. Comienzas a sobreestimar constantemente la cantidad de tiempo promedio para los valores, esto es solo un camino a ninguna parte. Tómese el tiempo para estudiar. La posibilidad de quedarse atrás de la locomotora es irrealmente alta, así que tenga en cuenta que la tecnología y las nuevas versiones se están desarrollando muy rápidamente. Suscríbase a los evangelistas de Java de nuestros días, lea resúmenes de Java y, en general, interese y aprenda cosas nuevas. Esto le ayudará a mantener su marca y desarrollarse. Ayuda a otros No tengas miedo de ayudar a los demás, incluso si son tan verdes como tú. En primer lugar, fortalecerás enormemente tus conocimientos y, en segundo lugar, ganarás el respeto ante los ojos de los demás y, al mismo tiempo, ellos te ayudarán. En un entorno así nacen los mejores equipos y un crecimiento técnico y personal muy rápido. Hacer deporte. Tener un hobby No, en serio. Las personas que hacen ejercicio no sólo se ven y se sienten mejor, sino que su función cerebral también mejora. A esto contribuye la escoliosis, la zona lumbar, el exceso de peso, diversos problemas con los órganos internos: sentarse frente a la computadora las 24 horas del día, incluso fuera del trabajo. Si no puedes hacer deporte (lo cual lo dudo), utiliza pequeños trucos: trabaja de pie de vez en cuando, bájate dos paradas antes y camina hasta el trabajo. Y en general caminar más. También existe el riesgo de agotamiento si la programación ocupa mucho más tiempo que 40 horas a la semana. Los pasatiempos personales vendrán al rescate, por ejemplo, la fotografía, la música, etc. Dedique tiempo a la espiritualidad con regularidad. Equilibra tu vida personal Cuando tu novia/esposa te dice: “la computadora portátil o yo”, debes pensar detenidamente qué lugar ocupa la programación en tu vida. Por otro lado, al comenzar su viaje en TI, debe explicarle claramente a su pareja que ahora necesita estudiar mucho para lograr más. Espero que lo entiendan. Pues intenta equilibrar y distribuir tu tiempo correctamente. Vaya más allá de ser proactivo, si siente, por ejemplo, que puede compartir conocimientos o tener temas interesantes, ¿por qué no organizar pequeños cursos dentro de la empresa para otros? No tengas miedo de participar en grandes proyectos de código abierto si sabes cómo puedes ayudar. Si quieres escribir un juego, un proyecto social u otra idea, ¡hazlo, hazlo, hazlo! No te quedes quieto, busca siempre formas de desarrollarte. Sea competitivo Observe las nuevas tendencias, manténgase actualizado con las tendencias que están sucediendo en la comunidad Java. Por ejemplo, no le vendrá mal si de vez en cuando monitorea las vacantes de Java en DOU, pero no para alejarse del trabajo, sino para saber qué tecnologías siguen siendo relevantes y cuáles están desapareciendo lentamente del mercado. . Intenta también tomar cursos sobre Coursera, Udacity, etc., explora nuevos horizontes. E incluso inglés: intenta ver tus películas/series favoritas en original con subtítulos para mejorar tu habilidad oral, descarga un par de aplicaciones interesantes para aprender el idioma (por ejemplo LinguaLeo) y, al final, haz cursos.

Conclusión

Bueno, mi pequeño proyecto sobre DOU está llegando a su fin. Queridos amigos, deseo sinceramente que consigan un trabajo y espero que todo lo que he descrito en estos 7 artículos sea una guía valiosa para ustedes, incluso para aquellos que ya están trabajando como desarrolladores de Java. Futuros jóvenes, recuerden que nada es imposible, y si realmente se esfuerzan, seguramente lo lograrán. Quiero que finalmente decidas si es para ti o no, desarrolles un plan de entrenamiento detallado y lo sigas con calma. No te enojes si a cambio recibes silencio: todo esto es temporal, lo principal es creer y en ningún caso desviarte del rumbo, sino estudiar, estudiar y estudiar de nuevo. Me gustaría agradecer enormemente al equipo de DOU por editar gran parte del material y brindarme el horario de máxima audiencia los lunes. DOU es una comunidad interesante que ha dejado de ser solo un sitio para especialistas ucranianos en TI. También me gustaría agradecer a todos los comentaristas que leyeron mis artículos en diagonal y sacaron frases de contexto. Sin ti, los artículos no serían tan interesantes :) ¡Que la Fuerza te acompañe! Artículo original tomado de DOU.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION