Preguntas reales sobre el algoritmo de Alibaba

Hablando de publicaciones de algoritmos, la primera reacción en Internet puede ser la involución. Las publicaciones de algoritmos también se conocen como las publicaciones de involución más serias. Con respecto a este tema, ya he escrito artículos relacionados antes. La competencia por este puesto es realmente feroz, pero personalmente creo que no es exagerado llamarlo involución. Personalmente, creo que una tendencia importante en los últimos años va de la confusión a la claridad.

Ya en 2015, cuando estaba haciendo prácticas en Alimama, sentí que no existía un estándar unificado para los requisitos de contratación o incluso el contenido laboral de los ingenieros de algoritmos en la industria. Se puede considerar que, de hecho, incluidas las grandes empresas, el contenido laboral específico de este puesto no se ajusta a los requisitos de capacidad de los candidatos. Diferentes entrevistadores tienen diferentes estilos y diferentes estándares.

Déjame darte algunos ejemplos. El primer ejemplo es que cuando me entrevistaron para una pasantía, porque era estudiante universitario, realmente sabía muy poco sobre el campo del aprendizaje automático, casi cero. Pero aun así aprobé y la razón para aprobar es muy simple. Debido a la experiencia galardonada de ACM, el proceso de entrevista se centró principalmente en preguntas sobre algoritmos y las respondí muy bien. Pero durante la entrevista, un director de otro departamento me preguntó si tenía alguna experiencia en este ámbito. Dejé en claro que no, pero que estaba dispuesto a aprender.

Luego me dijo que el trabajo de los ingenieros de algoritmos está relacionado principalmente con el aprendizaje automático, por lo que el aprendizaje automático es la base. En ese momento pensé que no tenía suerte, pero no esperaba pasar la entrevista.

Para poner otro ejemplo, a un amigo de entonces se le pidió que escribiera un modelo de árbol en lenguaje R durante la entrevista final de empleo. No recuerdo el modelo exacto. Lo único que sé es que no lo sabía en ese momento, así que no recuerdo el nombre. Pero cualquiera que conozca el mercado sabe que la industria básicamente ya no debería utilizar el lenguaje R. Ya sea por la familiaridad del entrevistador con el lenguaje R en ese momento o con el lenguaje R usado por su equipo en ese momento, se puede ver que Alibaba no tenía estándares unificados para los ingenieros de algoritmos en ese momento. De hecho, es verdad. En ese momento, había mucha confusión entre el título de ingeniero de algoritmos y el de ingeniero de minería de datos.

No estoy seguro de qué preguntarán las publicaciones actuales sobre algoritmos, pero hasta donde yo sé, los principios del modelo de aprendizaje automático y algunas experiencias previas son definitivamente inseparables. No hay habilidad en estas dos piezas. Es difícil aprobar una entrevista basada únicamente en los premios ACM y las capacidades algorítmicas, y mucho menos en un departamento central como Alimama.

Se puede ver en estos dos ejemplos que la industria todavía estaba muy confundida hace 5 años, pero ahora está cada vez más claro qué hace este puesto y qué habilidades necesitan los ingenieros. Y creo que quedará cada vez más claro en el futuro. Es posible que todavía haya algunos departamentos o arquitectos de nivel superior que no sepan mucho sobre algoritmos. Por ejemplo, no es raro que líderes tecnológicos con experiencia en ingeniería lideren equipos de algoritmos, pero deberían ser cada vez más raros en el futuro.

Hay cierta verdad en el dicho de que no existe un programa 985, ni una maestría de una escuela prestigiosa, ni una entrevista en papel para puestos de algoritmos en grandes empresas. Sin embargo, no podemos limitarnos a observar el fenómeno y sacar conclusiones aleatorias. La razón detrás de un análisis cuidadoso es que los requisitos para los ingenieros de algoritmos son cada vez más claros. Sin embargo, aunque los requisitos son claros, todavía existen problemas. El problema es que estas habilidades no se reflejan fácilmente en las entrevistas. Este problema existe tanto en el reclutamiento escolar como en el reclutamiento social.

El problema del reclutamiento social será mejor. De la experiencia anterior se desprende que el problema del reclutamiento escolar es bastante grave. ¿Cómo conocemos sus capacidades de procesamiento de datos? ¿Qué tan bien conoces los detalles del modelo? ¿Cómo juzgar si puedes sostener esto después de tu llegada?

Es precisamente por este problema que muchos entrevistadores o RR.HH. tienen que plantear requisitos estrictos. Siempre es correcto reclutar algunos estudiantes inteligentes con buena base y excelente experiencia. Incluso si se equivocan, ahora pueden aprender.

Lógica de reclutamiento

A continuación, les hablaré sobre la lógica de reclutamiento de varias empresas, y también descubrí algunos patrones.

La regla aquí es que cuanto más pequeña es la fábrica, más pragmática es, y cuanto más grande es, más virtual es. En realidad, esto es fácil de entender, porque las fábricas pequeñas tienen fondos y presupuestos limitados, y el responsable de cada puesto debe tener cuidado y nunca contratar más personas. Una vez reclutado, debe haber un propósito específico, como escasez de mano de obra para algo o un problema que no se ha resuelto y necesita ser reclutado. En este caso, los requisitos de la pequeña fábrica son muy claros: cuanto más se acumule tecnología coincidente, mejor.

En otras palabras, cuanto más los combine, mejor. Cuantas más coincidencias haya, menores serán los costes de entrada y aprendizaje. Lo mejor es hacerlo directamente.

Las grandes fábricas no lo son, y cuanto más grande es la fábrica, peor es. La razón también es muy sencilla. Además de satisfacer las necesidades de mano de obra, el objetivo de la contratación en las grandes fábricas también tiene otro significado: la reserva de talento. Por ejemplo, la Clase Tsinghua Yao gradúa a 30 personas cada año. Si 30 personas van a Tencent, ¿qué utilidad tendrá para el desarrollo de Tencent? Si fueras un caballo viejo, ¿podrías aceptar tal cosa? Definitivamente no, porque el número de personas con talento es limitado. Aunque hay mucha gente compitiendo, siempre hay muchos usuarios destacados. Otras empresas le han quitado demasiado y le han dejado menos a su empresa. Como gran empresa, definitivamente nos esforzaremos por lograrlo, incluida la contratación de pasantes. De hecho, el objetivo esencial es reclutar talentos.

Hasta cierto punto, a una gran empresa le cuesta menos formar a un estudiante excelente para convertirlo en un ingeniero excelente que contratar a un ingeniero igualmente excelente en el mercado. Al menos el 80% de los mejores talentos en puestos de algoritmos están en manos de grandes empresas, y el 20% restante lo compiten pequeñas empresas de segundo y tercer nivel. Es muy difícil para una gran empresa contratar un excelente ingeniero en el mercado, mucho más difícil de lo que todos piensan. A menudo no faltan ofertas para estas personas, junto con las restricciones de jerarquía y remuneración en las grandes empresas, realmente no es fácil captar aquellas empresas de segundo nivel con mucho dinero.

Así que la lógica central al entrevistar a pequeñas empresas es la coincidencia. Tienes las habilidades que necesitan y sabes las habilidades que necesitan. No importa. Es inútil si se te ocurren muchas cosas sofisticadas. Algunos entrevistadores de pequeñas empresas ni siquiera saben qué es acm. ¿Te sirve decirle que eres medallista de plata asiático?

Los requisitos de contratación de las grandes empresas son relativamente triviales y generalmente se centran más en lo básico. La base aquí no son sólo los conocimientos básicos, sino también las habilidades básicas. Por ejemplo, la capacidad de la estructura de datos y el algoritmo, como la flexibilidad del pensamiento, es darle un problema de algoritmo para ver si puede resolverlo de manera flexible. Otro ejemplo son los fundamentos del aprendizaje automático, algunos principios básicos de los modelos, etc.

Además de lo básico, otra cosa muy importante es tu poder blando, como tu capacidad para expresarte, tu inteligencia emocional y tu reacción cuando te encuentras con dificultades. Por ejemplo, ¿tienes un proceso de pensamiento claro cuando te encuentras con un problema? ¿Te rindes después de un simple intento o estás dispuesto a seguir trabajando duro? También está tu personalidad, por ejemplo, si eres obediente o independiente. Si tienes una personalidad fuerte, es posible que a tu jefe le resulte difícil manejarte. En términos profesionales, los costes administrativos son un poco elevados y también pueden desanimar a los entrevistadores.

Otra cosa que se menciona a menudo es el potencial. Este es un concepto muy vacío. Es enteramente el sentimiento subjetivo del entrevistador y es difícil tener un apoyo real. Hasta donde yo sé, probablemente hay varios aspectos. Uno es el coeficiente intelectual. Las personas inteligentes aprenden cosas rápidamente y tienen un gran potencial. No hay duda al respecto. Incluso si no comprende muchas cosas, si puede hacer que el entrevistador sienta que aprende rápidamente y que no son problemas, entonces esto no es una deducción.

También está la edad, por ejemplo, si has perdido varios años después de algunas idas y vueltas y eres mucho mayor que otros solicitantes (más de dos años), el entrevistador puede sentir que tu potencial es grande. reducido. Por ejemplo, algunas de tus experiencias pasadas, como tu perseverancia en un determinado campo y tu rápido crecimiento desde cero, también harán que el entrevistador piense que tienes un gran potencial.

De esta manera, tiene sentido que la habilidad práctica sea un elemento adicional en lugar de un elemento principal. Porque en el caso de las grandes empresas, toda la arquitectura técnica a menudo se construye de forma independiente, lo que la diferencia del mundo exterior. Dicho esto, a menos que hayas estado en esto antes, es casi imposible encontrar una pila tecnológica que lo entienda completamente. Además, la escuela contrata inicialmente a personas con poca experiencia práctica y está más inclinada a aprender rápidamente que a contratar a alguien que pueda empezar de inmediato.

Competencias básicas

Dado que no he estado expuesto al reclutamiento escolar durante mucho tiempo, es difícil decir cómo prepararme para la entrevista. Sólo puedo decir qué tipo de estudiantes me gustaría reclutar. También puede entenderse como mi comprensión de lo que debe poseer un ingeniero de algoritmos excelente y calificado.

Comprensión del modelo

Los ingenieros de algoritmos trabajan con modelos, por lo que es necesario comprender el modelo. De hecho, no hace falta decir que todos los modelos lo dominan, no es necesario y es posible que el modelo preguntado en la entrevista no necesariamente sepa cómo usarlo. Pero a lo que se le presta más atención son a los hábitos de la persona a la hora de estudiar.

¿Incursionará un poco o profundizará más y qué podrá aprender?

En el trabajo real podemos enfrentarnos a diversas situaciones, como añadir nuevas funciones pero sin efecto, como actualizar el modelo y deteriorarlo, etc. Estas situaciones son posibles. Cuando nos encontramos con estas situaciones, debemos razonar basándonos en la información conocida y adivinar la causa para poder tomar las medidas adecuadas. Entonces, esto requiere que tengamos una comprensión más profunda del modelo actual; de lo contrario, es imposible perfeccionar la derivación.

Así que no importa a qué modelo le preguntes durante la entrevista. Lo que importa es si puede demostrar que ha realizado una investigación y una comprensión profundas.

Análisis de datos

Los ingenieros de algoritmos han estado trabajando con datos, por lo que la capacidad de analizarlos, limpiarlos y producirlos también es esencial. Cuando se trata de un análisis de datos simple, en realidad implica mucho. En pocas palabras, hay al menos dos puntos clave.

El primer enfoque es la capacidad de procesar datos, como SQL, Hive, Spark, MapReduce, etc. No, o al menos un poquito. Debido a que la tecnología de cada empresa es diferente, generalmente no contratamos con la expectativa de que los candidatos sean como nosotros, pero ciertamente es imposible que los candidatos lo sepan todo. Debido a que los estudiantes rara vez están expuestos al contenido de esta práctica, muchos no lo saben. Si sabes un par de cosas, en realidad es una ventaja.

El segundo punto clave es comprender los datos. Tomemos un ejemplo sencillo. Por ejemplo, la muestra actual no es válida después de entrenar el modelo. Necesitamos analizar las razones. ¿Cómo empezar? Este problema se encuentra a menudo en la vida diaria y también pone a prueba la capacidad y experiencia de los ingenieros de algoritmos para analizar datos. El dato es el agua y el modelo es el barco. Si quieres navegar en un barco a un lugar muy lejano, no basta con conocer la estructura del barco, también es necesario conocer los fenómenos hidrológicos y astronómicos. Sólo así podremos captar sugerencias de los datos y obtener una visión y una comprensión más profundas de determinados fenómenos.

Capacidad de ingeniería

Aunque es un ingeniero de algoritmos, eso no significa que la capacidad de ingeniería no sea importante. Al contrario, la capacidad de ingeniería también es muy importante. Por supuesto, esto no suele convertirse en un indicador rígido para la contratación, como investigar qué proyectos ha realizado antes. Pero se reflejará en las pruebas de su código. Su estilo de codificación y sus habilidades de codificación son uno de los puntos de prueba para su entrevista.

Esto no sólo es cierto en las entrevistas, sino también en el trabajo real. A pequeña escala, puede desarrollar herramientas y scripts para facilitar su trabajo diario o el de otros miembros de su equipo. A mayor escala, también puedes convertirte en el líder de desarrollo de un equipo, responsable de la mayor parte del trabajo de ingeniería de su equipo. Por ejemplo, copiar un artículo o reinventar un modelo desde cero. En realidad, se trata de un medio de competencia diferenciada. Si puede pagar razonablemente un trabajo que otros no pueden pagar, naturalmente se convertirá en su desempeño.

Los tiempos están cambiando, la industria se está desarrollando y las cuestiones de reclutamiento escolar de hoy son diferentes a las de entonces. Pero pase lo que pase, el puesto y las principales demandas de talento del entrevistador apenas han cambiado. Construiremos nuestro propio currículum y nos prepararemos para la entrevista desde el núcleo. Creo que ganaremos algo.