Cómo contratar un programador confiable
1. Leer currículums
Leer currículums es siempre el primer paso de la entrevista. Un buen currículum debe ser correcto, claro y reflejar el aspecto más valioso del candidato. Primero filtraré los currículums que contengan errores tipográficos, oraciones poco claras o ilógicas, porque si un programador ni siquiera está dispuesto a revisar y mejorar cuidadosamente su currículum, es difícil imaginar la calidad del código que escribe. Luego, me concentraré en leer la parte de experiencia del proyecto del currículum. Aquí puedo ver la experiencia de desarrollo y el conjunto de habilidades del entrevistador, y juzgar si el marco técnico y las herramientas con las que está familiarizado coinciden con los requisitos actuales de la empresa.
Aquí también prestaré especial atención a cómo el entrevistador escribe sobre esta parte de la experiencia del proyecto. Debe utilizar palabras lo más concisas posible para describir los antecedentes del proyecto y su papel en el proyecto. y su participación en el proyecto. La duración del tiempo, las técnicas que utilizó y sus puntos destacados en el proyecto y otra información. Los programadores excelentes suelen tener un rasgo común: son buenos resumiendo y pueden encontrar problemas o explicarlos claramente. A menudo veo a los entrevistadores describir su experiencia en el proyecto en sus currículums como si estuvieran escribiendo historias. Este capítulo por sí solo ocupa varias páginas. De hecho, esto reducirá sus puntos porque hará que el entrevistador juzgue que no tiene la capacidad de resumen necesaria.
Finalmente, se te entregarán algunas de tus actividades sociales relacionadas con la programación, como: tus proyectos de código abierto en GitHub, respuestas a otros en Zhihu, V2EX y tu blog personal de tecnología, etc. Puntos extra, porque demuestra que tienes un gran entusiasmo por el trabajo que estás haciendo y estás dispuesto a aprender y mejorar en tu tiempo libre, como mencioné en mi artículo anterior "10 consejos profesionales para recién llegados al mundo laboral", si quieres. Para convertirse en un experto en un campo, hay que dedicar más de 10.000 horas, y este tiempo de trabajo por sí solo está lejos de ser suficiente.
2. Dale al entrevistador 10 minutos para presentar en qué eres mejor.
Después de que el entrevistador pase la prueba escrita y la entrevista de Recursos Humanos, deberás entrevistar al candidato cara a cara. . Estoy lejos de ser un experto en entrevistas, pero tengo algunos métodos propios. Odio hacer preguntas muy personales, como ¿cuáles son tus planes profesionales? ¿Por qué quieres cambiar de trabajo? etc. Prefiero darle al entrevistador 10 minutos para que presente las áreas en las que está mejor y más interesado. Esto a menudo me ayuda a hacer rápidamente los siguientes juicios:
¿Esta persona tiene pasión por lo que hace?
¿Puede comunicarse efectivamente en un equipo?
p>
¿Son lo suficientemente buenos en su área de especialización?
¿Su equipo estaría feliz de trabajar con esta persona?
Utilizo mucho este truco en las entrevistas y, en la práctica, ha demostrado serlo. muy efectivo por cierto.
3. ¿Se han sentado las bases firmemente?
Generalmente, las empresas de cierta escala organizan pruebas por computadora o pruebas escritas para los entrevistadores, de modo que puedan descartar primero a un grupo de entrevistados que no pasan. Otras empresas más pequeñas o de nueva creación pedirán a los entrevistadores que realicen entrevistas técnicas directamente. De hecho, creo que no hay mucha diferencia entre los dos. Los entrevistadores experimentados a menudo pueden juzgar si la base técnica del entrevistador es sólida a través de algunas preguntas técnicas simples. Esto no es para demostrar qué tan bueno es, sino para determinar si es bueno. es un programador calificado. Para mí, no valoro los resultados del examen por computadora porque muchas de las preguntas del examen por computadora se pueden obtener en línea, especialmente algunas empresas de subcontratación, que siempre pueden obtener las preguntas del examen a través de varios canales. para que la subcontratación que impulsan pueda aprobarse sin problemas el examen escrito.
Las siguientes son algunas preguntas que hago a menudo (JAVA):
¿Cuál es la diferencia entre HashTable y HashMap?
¿Los servlets son seguros para subprocesos?
La diferencia entre @include y jsp:include en JSP
¿Qué representan los códigos de respuesta HTTP 403 y 500 respectivamente?
...... p >
Estas preguntas son muy simples, pero algunos programadores con bases débiles a menudo revelan sus secretos en este momento. Por supuesto, dependiendo del puesto de la entrevista, también puede hacer algunas preguntas específicas. Por ejemplo, si necesita encontrar un programador que pueda escribir algoritmos básicos (como el cálculo del libro mayor de un banco o el cálculo de primas de una compañía de seguros). Puedes hacer algunas preguntas relacionadas con algoritmos.
4. ¿Es suficiente la profundidad técnica?
Tener una base técnica sólida generalmente puede cumplir con los requisitos de los programadores comunes en el proyecto, pero si está buscando un programador senior. Si es un empleado, también debe examinar la profundidad técnica del entrevistador. Ahora utilizamos muchos marcos cuando realizamos proyectos, lo que puede mejorar y garantizar nuestra eficiencia y calidad de desarrollo, pero también reduce los requisitos para las habilidades de desarrollo de los programadores. Por lo tanto, suelo hacerle al entrevistador las siguientes preguntas para comprobar su dominio del marco utilizado.
Describa, en este proyecto, desde el inicio de una solicitud HTTP hasta la respuesta final, ¿cómo fluye dentro de su sistema y marco?
Esta pregunta a menudo puede determinar la profundidad del dominio del entrevistador sobre las tecnologías relacionadas. El nivel descrito por los desarrolladores junior suele ser superficial. Por ejemplo, aquellos que usan el marco Spring MVC solo pueden hablar sobre la implementación de un controlador que hereda BaseCommandController (incluso muchos desarrolladores solo saben que heredan la clase base del marco interno de una empresa). para ir más allá Ya no está claro cómo el framework Spring lleva a cabo la circulación interna. Los desarrolladores más experimentados a menudo pueden indicar el mecanismo de implementación interno del marco y cómo llamarlo y procesarlo. Durante la descripción del entrevistador, también puede hacer algunas preguntas más profundas, como qué patrón de diseño representa una determinada clase en el marco, cuáles son los beneficios de adoptar dicho diseño, etc. Esto es mucho más efectivo y natural que pedirle al entrevistador que escriba un código de patrón de diseño.
Además del examen técnico, los desarrolladores senior también deben examinar sus capacidades de diseño. Cuando se trata de diseño de software, la mayoría de los entrevistados pueden recitar hábilmente las tres características básicas de la orientación a objetos: herencia, encapsulación y polimorfismo, y también pueden describir sus conceptos con claridad. Pero normalmente hago la siguiente pregunta para examinar sus capacidades de diseño orientado a objetos.
Utilice un fragmento de código de programa para describir la habitación en la que nos encontramos.
Me sorprendió descubrir que al menos la mitad de los entrevistados tenían dificultades para usar con precisión la interfaz y la clase para modelar la sala, y algunas personas escribían la sintaxis del código más básico o las palabras clave de forma incorrecta.
5. Elija personas que se ajusten a la cultura corporativa.
Este también fue un malentendido que experimenté. Siempre espero reclutar personas con la mayor capacidad técnica para el equipo. coincide con la cultura de toda la empresa y el equipo. Esto a menudo lleva al resultado de que, aunque se contrata a personas, al poco tiempo se separan debido a ideas diferentes, lo que a su vez genera pérdidas para la empresa. Veamos qué tiene que decir el director de GitHub.
Nos tomamos en serio nuestra propia filosofía con respecto al proceso de contratación. Queremos que todos los empleados de GitHub comprendan el entorno al que se enfrentan y se aseguren de que puedan adaptarse bien. Esto incluye la cultura, las filosofías, los planes, los errores e incluso las cenas que creamos. Más que si sus habilidades cumplen con los requisitos, valoramos su potencial y si pueden adaptarse a nuestra cultura corporativa.
He trabajado en diferentes empresas o equipos con distintas diferencias culturales. He visto a muchos programadores que defienden la apertura y el código abierto tener dificultades para desempeñarse en una empresa relativamente cerrada con muchos procesos y restricciones normativas. final, elige irte. Por lo tanto, a la hora de contratar programadores, elegir el adecuado suele ser más importante que elegir el mejor.
6. Método de entrevista conductual
El método de entrevista conductual puede ser el único método de entrevista de libro de texto que utilicé en todo el proceso de entrevista. Que un programador pueda trabajar bien depende no solo de si puede completar con éxito las tareas de desarrollo, sino más importante aún, de si puede manejarlas y resolverlas de manera razonable y efectiva cuando se encuentra con algunos escenarios o problemas especiales. La entrevista conductual puede ayudarnos a predecir cómo se desempeñará el entrevistador en el trabajo en el futuro en función de un evento específico del pasado descrito por el entrevistador. Aquí hay una pregunta que uso a menudo.
Hable sobre la mayor dificultad o desafío que encontró en este proyecto y cómo lo resolvió.
A partir de la respuesta del entrevistador a la pregunta anterior, puedo juzgar muy bien si tiene una gran capacidad para resolver problemas de forma independiente, y creo que esto es lo más importante para los programadores además de la capacidad técnica. habilidades que se deben poseer.
7. Deles una tarea virtual
Después de los pasos anteriores, es posible que esté satisfecho con la situación general del entrevistador, pero no se apresure a sacar conclusiones todavía. He visto programadores que pudieron pasar con éxito todos los pasos de la entrevista anteriores y ser contratados, solo para no lograr hacer las cosas cuando llegaron al trabajo real.
Antes de decidir si contratarlos, dales una tarea virtual. No me refiero a un problema de programa abstracto, sino a una tarea de desarrollo real que puede existir en su proyecto actual y que debe completarse en una o dos horas. Una vez hice una pregunta de este tipo en el examen:
Escriba un pequeño programa para convertir un archivo de texto almacenado en un formato específico (como CSV) a formato XML y guárdelo como otro archivo.
Puedes darle una computadora con un entorno de desarrollo e IDE configurado y dejarle escribir código en el momento. Por supuesto, si el tiempo es limitado, también puede preguntarle directamente al entrevistador sobre las ideas de implementación y simplemente usar pseudocódigo para describir el proceso. A través de esta prueba, se pueden ver muchos detalles, como si el entrevistador tiene buenos hábitos de codificación, si el manejo de excepciones está estandarizado, si la lógica del código es exhaustiva y eficiente y si su eficiencia de desarrollo es lo suficientemente alta. Si el entrevistador da muy buenas respuestas, entonces debería poder juzgar que de hecho es un excelente candidato, porque nunca he conocido a nadie que pueda pasar la prueba anterior pero que no pueda hacer un buen trabajo en el trabajo real.