La guía profesional definitiva de IA: cómo elegir una carrera, subir de nivel y encontrar un trabajo interesante





El 3 de agosto, Sergey Shirkin, especialista en ML e inteligencia artificial, habló en nuestras redes sociales.



Sergey estuvo involucrado en la automatización de tecnologías financieras y bases de datos en Sberbank y Rosbank, creando modelos financieros basados ​​en el aprendizaje automático y el trabajo analítico en Equifax. Predice la visualización de televisión utilizando métodos de inteligencia artificial en Dentsu Aegis Network Russia. Profesor invitado en la Escuela Superior de Economía (Máster en Comunicación basada en datos).



Sergey también explora la computación cuántica aplicada a la inteligencia artificial y el aprendizaje automático. Está al frente de las facultades de Inteligencia Artificial, Big Data Analytics e Ingeniería de Datos de la Universidad Geek, donde trabaja como decano y profesor.



Compartimos contigo la transcripción de la transmisión y la grabación.



***



Mi nombre es Sergey Shirkin, hoy hablaremos de inteligencia artificial. Discutiremos los caminos iniciales: cómo ingresar a la inteligencia artificial, cómo aprender los temas necesarios, qué cursos tomar, qué literatura leer, cómo comenzar una carrera. También sobre varias direcciones.



Los temas de hoy pueden ser interesantes no solo para los principiantes, sino también para los programadores experimentados; por ejemplo, cómo pasar del campo de la programación al campo del aprendizaje automático, la inteligencia artificial y las redes neuronales. Dependiendo de la tecnología en la que esté involucrada una persona y los idiomas que aprenda, la transición práctica a esta área puede tener lugar de diferentes maneras. Hay muchas especialidades en IA.



¿Recomendar materiales para la auto inmersión en IA?



Si eres un principiante total, es mejor comenzar por aprender Python. Una forma rápida de hacer esto, como he visto con otros novatos, es PythonTutor.ru. Allí es necesario estudiar la teoría y resolver problemas - al menos el 70 por ciento Los problemas pueden parecer difíciles si no ha programado nada antes.



El siguiente paso es el lenguaje de consulta SQL, y el sitio SQL-EX.ru ayudará aquí: hay ejercicios sobre SQL. Están organizados en etapas: etapa de capacitación, etapa para obtener una calificación; puede ocupar un lugar determinado en la calificación. Aquí aprenderá a trabajar con bases de datos. Paralelamente, existen materiales de formación del autor Moiseenko, y son bastante fáciles de aprender.



Entonces necesitas estudiar el aprendizaje automático en sí. Varios algoritmos que van desde la regresión lineal, la regresión logística, hasta el aumento de gradiente. Hay muchos materiales aquí. Luego puede ir a las redes neuronales: para visión por computadora, para PNL; aprenderá redes neuronales convolucionales, redes neuronales recurrentes y las más avanzadas: transformadores, Bert, etc.



Te contaré sobre el desarrollo de la IA. Si nos fijamos en la historia de este desarrollo hasta 2010, entonces es bastante escasa: hubo, por supuesto, algunos grandes logros en IA y en campos relacionados, en big data, por ejemplo, y muchos algoritmos matemáticos estaban listos. Pero no había suficiente potencia informática y datos para la IA. Desde 2010, o más bien desde 2012, la IA se ha disparado. En 2012, en una de las competencias, la red neuronal derrotó a los algoritmos clásicos de visión artificial y aprendió a reconocer alrededor de 1000 clases de imágenes.



Después de este logro, apareció una gran brecha entre los competidores que usaban la visión por computadora clásica y comenzó el desarrollo de redes neuronales artificiales. Surgieron varias arquitecturas de redes convolucionales y se produjo un gran avance en la visión por computadora. Anteriormente, se creía que para una red neuronal distinguir entre una imagen de un gato y un perro era algo muy difícil, pero en 2012, las redes neuronales aprendieron a reconocer y clasificar imágenes mucho más rápido y con mayor precisión que los humanos.



Hoy en día, la visión por computadora ha dado grandes pasos. Paralelamente, se está desarrollando el procesamiento del lenguaje natural (PNL). Con la llegada del modelo GPT-3, que fue creado por OpenAI hace un par de meses, la red neuronal aprendió a generar texto (así como música y otras secuencias). Este es uno de los principales pasos de la PNL; lo más probable es que prospere en esta década. Aparecerán chatbots que podrán mantener un diálogo completo con una persona.



SQL y Python un poco. Después de los cursos de ciencia de datos, sin experiencia, ¿puede conseguir un trabajo inmediatamente como científico de datos o necesita trabajar primero como analista de bases de datos?



Entrar en la ciencia de datos es más difícil ahora que hace 5 años. Luego fue posible participar en alguna competencia en Kaggle y ocupar un lugar, no necesariamente el primero, por ejemplo, en el primer 10%, en alguna competencia interesante, no en un nivel de entrenamiento. Después de eso, ya era posible acudir a empresas, responder preguntas sencillas sobre aprendizaje automático y contratar a una persona así. Había pocos especialistas.



Ahora todo es mucho más complicado, por lo que a veces no funciona justo después de haber estudiado aprendizaje automático y matemáticas para conseguir el trabajo de sus sueños: un especialista en inteligencia artificial o un científico de datos.



Una buena forma de hacerlo es trabajar primero con un analista de datos, de bases de datos o de un analista de datos. El hecho es que tienes que aprender a preprocesar, limpiar datos y aplicar estadísticas. Pueden ser tecnologías de bases de datos, incluido Python. Cuando gane experiencia, tenga experiencia, entonces podrá, utilizando su conocimiento de bibliotecas de ciencia de datos en Python - Pandas, NumPy, SKLearn, solicitar un trabajo relacionado con IA o ciencia de datos.



¿Cuál es la diferencia entre los especialistas en IA y los científicos de datos?



¿La IA necesita C ++? ¿Qué aconsejarías estudiar para convertirte en un experto en visión artificial?



Ahora hay una división en las vacantes de las empresas occidentales: además del científico de datos, hay vacantes separadas para especialistas en IA. Anteriormente, se entendía que un científico de datos es una persona que se dedica al análisis de datos tabulares, tareas de visión por computadora y tareas de PNL. También había una vacante de analista de datos: pagaba menos, aunque también era bastante prestigiosa; esa persona tenía que analizar los datos, pero no profundizar demasiado en la inteligencia artificial relacionada con el habla, el texto y las imágenes, trabajando principalmente con datos tabulares. Luego hubo una mezcla de vacantes: en el Valle, todos los analistas de datos se llamaban científicos de datos, incluidos los que trabajan solo con datos tabulares y los que trabajan con PNL y visión por computadora. Y al mismo tiempo, un poco más tarde, comenzaron a asignar un especialista en inteligencia artificial separado.En las empresas rusas, normalmente no existe tal división, aunque a veces hay vacantes especializadas, por ejemplo, "ingeniero de visión artificial / PNL". Es deseable que un científico de datos pueda hacer todo poco a poco.



Acerca de C ++: el más básico es Python. Es decir, si eres un profesional de la inteligencia artificial, debes usar TensorFLow, Keras o PyTorch; ahora es lo primero. Pero si escribe más programas de bajo nivel, por ejemplo, si el trabajo está relacionado con vehículos robóticos, a menudo necesitará código C ++. Python no siempre es rápido. Las bibliotecas para el aprendizaje automático suelen estar escritas en C ++, pero a veces es necesario escribir todo el programa en C ++: además de los modelos en sí, la lógica (if-else, etc.) puede funcionar y en C ++ funciona más rápido. Por supuesto, es difícil llegar de inmediato a una vacante de este tipo, y es mejor trabajar primero para una donde haya suficiente Python, por ejemplo, donde hay análisis de redes sociales con análisis de imágenes, sin la necesidad de un procesamiento rápido.



Para convertirse en un especialista, debe aprender a trabajar con bibliotecas para redes neuronales, estudiar la biblioteca OpenCV para Python; también está disponible para C ++. Esto le dará la caja de herramientas. También es deseable poder trabajar con la biblioteca NumPy, comprender las matemáticas mismas del análisis de imágenes, es decir, comprender el álgebra lineal y el cálculo, y también conocer la arquitectura de las redes neuronales. Etc.



¿Por qué las entrevistas de ML plantean preguntas sobre cómo resolver conflictos en una tabla hash?



¿Por qué es este un marcador para la contratación cuando puedes buscarlo en Google en el camino?



No todas las vacantes lo piden. Si va al análisis de datos tabulares, es poco probable que se le pregunte. Definitivamente le preguntarán si está solicitando el puesto de ingeniero de ML: es decir, no solo crea modelos de ML, también los implementa, y necesita conocer algoritmos y estructuras de datos. Y si está desarrollando algo como un automóvil robótico, aún más: allí debe escribir código de alto y bajo nivel, y este conocimiento es imprescindible. Y, a veces, este conocimiento es necesario en el análisis de datos tabulares; digamos que escribe un módulo para esto en C ++.

Si aún no está listo para tales vacantes, puede realizar más entrevistas. Por ejemplo, si va a conseguir un trabajo como científico de datos en un banco, habrá menos preguntas de este tipo.



He estado escribiendo en Python durante 10 años, pero no tengo estudios superiores. ¿Qué tan difícil es entrar en el ámbito de la IA sin ser inteligente?



Se necesitan matemáticas superiores. Tendrá que tomar cursos o estudiar literatura, y este será un proceso largo. Necesitará capacitación en álgebra lineal, cálculo, teoría de la probabilidad y estadística matemática. El currículo escolar habitual claramente no es suficiente para estudiar IA; Por supuesto, los programas son diferentes: en algunas escuelas y en el décimo grado, se cubren temas de las universidades, pero esto rara vez sucede.



Eventos de entrenamiento Pandas, SKLearn, Catboost, Seaborn, Kaggle: 3% y 13%. ¿Necesito sumergirme en DL o ya puedo buscar trabajo?



Las bibliotecas ya están funcionando bien; ya tiene Pandas para trabajar con datos tabulares, SKLearn para modelos de aprendizaje automático, Catboost para aumentar el gradiente y Seaborn para renderizar. Los resultados son 3% y 13%; esto significa que si esto no es una competencia de entrenamiento, entonces con tales resultados ya debería tener algún tipo de medalla.



El aprendizaje profundo no siempre es necesario. Puede que ya estés intentando buscar trabajo, creo. Pero, si necesita trabajar con DL, aún necesita enseñar redes neuronales.



¿Cuál es el conjunto básico de libros para leer?



Voy a mostrar mis libros al final de la transmisión. Elegí el set básico, nada particularmente avanzado.



¿Hasta qué punto están demandadas estas profesiones ahora? ¿Habrá muchas vacantes en 2 años?



Si recuerda 2015-16, entonces, por ejemplo, no hubo más de 5-10 vacantes de científicos de datos en Headhunter. Es decir, había un mercado casi vacío. Por supuesto, luego hubo un cambio de nombre de los analistas a científicos de datos, pero esto tampoco fue suficiente.



Ahora se necesitan varios cientos a la vez, si miras el mismo sitio. Dicen que hay vacantes que no están. Por ejemplo, en ODS - OpenDataScience - si busca, hay una sección de vacantes separada. En general, si bien las vacantes no terminan, creo que en 2 años solo habrá más. No solo las grandes empresas se dedican a esto: hay startups, pequeñas empresas; Los científicos de datos ahora son necesarios en las agencias gubernamentales, por ejemplo, en varios departamentos municipales, en el servicio de impuestos, etc.



¿En qué industria tiene más demanda la IA?



La aplicación más simple de la IA, donde su uso explícito puede automatizar una gran cantidad de trabajo mental de los especialistas, está en el sector financiero. Hay una gran cantidad de bancos. Cada uno de ellos necesita, por ejemplo, evaluar la solvencia de los prestatarios, es decir, determinar, de acuerdo con varios criterios, si vale la pena emitir un préstamo, si la persona sobreestima su fortaleza y si podrá reembolsar el préstamo. Este es el uso más obvio de la IA.



Luego, el marketing, la creación de campañas publicitarias: es decir, cuando necesita predecir si una persona verá un anuncio (en Internet, en la televisión, etc.). Esta también es una dirección desarrollada, es imposible no automatizarla usando IA. Además, la robotización se está desarrollando ahora: no solo hay robots industriales, sino también domésticos: aspiradoras robóticas y otros accesorios para el hogar, que también están siendo desarrollados por alguien. O varias aplicaciones para un teléfono inteligente: en general, hay muchas industrias, que van desde la industria, la medicina, el comercio minorista, las finanzas, el marketing y hasta el entretenimiento. Por ejemplo, la IA también se puede utilizar en juegos.



Cien más apreciados al postularse para un trabajo en ciencia de datos: ¿conocimientos de matemáticas, comprensión de algoritmos específicos, experiencia laboral?



Tiene una maestría técnica y un año de trabajo como analista de datos en consultoría.



Tiene una buena experiencia: una universidad técnica, un año de trabajo como analista de datos. Si ya ha estudiado tecnología y sabe cómo programar, entonces ingresar a la ciencia de datos es fácil. Si ha trabajado en el análisis de bases de datos y conoce SQL, esta es una gran ventaja, y si agrega programación y aprendizaje automático, este es un conjunto muy bueno.



Hablaré sobre cómo creo modelos de aprendizaje automático en el trabajo. La empresa para la que trabajo es Dentsu Aegis, una empresa muy famosa, especialmente entre quienes trabajan en marketing. Es uno de los 5 principales grupos de comunicaciones del mundo; tiene su sede en Tokio y oficinas en 145 países. Sucursal rusa - Dentsu Aegis Network Russia. Ha trabajado en Rusia durante 25 años y es un pionero de las innovaciones en los medios.



Les hablaré del área de la que soy responsable como científico de datos. Esta es exactamente la aplicación de la que hablé como la más obvia en la aplicación práctica. La inteligencia artificial en el marketing ayuda a automatizar muchas de las tareas de los especialistas, y una de ellas es predecir cómo los diferentes tipos de contenido serán vistos por diferentes audiencias objetivo. Les contaré más sobre una de mis tareas inmediatas: la predicción de lo que se ve en televisión.



La audiencia puede ser de varios cientos, y para pronosticarlos manualmente, se requeriría el trabajo de decenas de especialistas. Es abrumador. Una gran cantidad de datos, hasta miles de millones de filas en tablas. Debe tener cuidado no solo de construir un modelo de aprendizaje automático, sino también de hacerlo funcionar rápidamente. Para tal trabajo, necesita conocer bien las bases de datos relacionales y no relacionales, trabajar con Linux, tener habilidades de devops y, en general, comprender la arquitectura de la aplicación, la infraestructura de TI de la empresa, conocer bien Python, posiblemente C ++.

Cuando creamos una predicción de las vistas de TV, utilizamos métodos modernos de aprendizaje automático. Para los datos tabulares, estos son el aumento de gradiente y el bosque aleatorio. Si se analiza texto, utilizamos redes neuronales; además de ellos, modelado de temas, TF-IDF y otros métodos comunes de PNL.



Usamos el aumento de gradiente porque si predecimos usando datos tabulares, el aumento de gradiente está por delante de todos los algoritmos conocidos al trabajar con dichos datos. En Kaggle, a partir de 2018, todos los principales logros en las competiciones que utilizan datos tabulares se lograron precisamente con la ayuda del aumento de gradiente. La mayoría de los kegglers luego cambiaron a XGBoost: fue la primera biblioteca conocida para aumentar el gradiente, y luego muchos dominaron LightGBM de Microsoft o CatBoost de Yandex. Para la tarea de pronosticar las visualizaciones de televisión, el uso de series de tiempo también es adecuado, pero tales métodos no siempre funcionan bien: periódicamente aparecen eventos inesperados que deben ser respondidos o anticipados a tiempo. A veces hay períodos anormales prolongados, desde varios días hasta meses: por ejemplo,La Copa Mundial de la FIFA 2018 tuvo un gran impacto en las vistas. La cuarentena también se convirtió en un período anómalo: la gente comenzó a pasar más tiempo en casa y a ver más televisión. Esto también debe tenerse en cuenta, anticiparse. En general, este período es una especie de desafío para el aprendizaje automático y la IA, porque es necesario monitorear constantemente los modelos y controlarlos para que funcionen correctamente. Además de los períodos anormales, el pronóstico está influenciado por los días festivos, las condiciones climáticas, los cambios en las tendencias en las vistas de programas y canales específicos. Como resultado, los modelos resultan bastante complejos, pues es necesario tener en cuenta todas las opciones posibles, tener en cuenta o anticipar anomalías y desviaciones.Esto también debe tenerse en cuenta, anticiparse. En general, este período es una especie de desafío para el aprendizaje automático y la IA, porque es necesario monitorear constantemente los modelos y controlarlos para que funcionen correctamente. Además de los períodos anormales, el pronóstico se ve influenciado por los días festivos, las condiciones climáticas, los cambios en las tendencias en las vistas de programas y canales específicos. Como resultado, los modelos resultan bastante complejos, pues es necesario tener en cuenta todas las opciones posibles, tener en cuenta o anticipar anomalías y desviaciones.Esto también debe tenerse en cuenta, anticiparse. En general, este período es una especie de desafío para el aprendizaje automático y la IA, porque es necesario monitorear constantemente los modelos y controlarlos para que funcionen correctamente. Además de los períodos anormales, el pronóstico se ve influenciado por los días festivos, las condiciones climáticas, los cambios en las tendencias en las vistas de programas y canales específicos. Como resultado, los modelos resultan bastante complejos, pues es necesario tener en cuenta todas las opciones posibles, tener en cuenta o anticipar anomalías y desviaciones.cambios en las tendencias en las vistas de programas y canales específicos. Como resultado, los modelos resultan bastante complejos, pues es necesario tener en cuenta todas las opciones posibles, tener en cuenta o anticipar anomalías y desviaciones.cambios en las tendencias en las vistas de programas y canales específicos. Como resultado, los modelos resultan bastante complejos, pues es necesario tener en cuenta todas las opciones posibles, tener en cuenta o anticipar anomalías y desviaciones.



Naturalmente, los modelos no se dejan solos: las pruebas, el ajuste fino y el monitoreo están constantemente en proceso. Pero no solo importan los modelos: otro paso importante es la creación de funciones. Primero, estos son signos relacionados con la hora del espectáculo: hora del día, día de la semana, temporada, etc. En segundo lugar, hay atributos relacionados con el contenido. Al mismo tiempo, hay que entender que si el programa se emite por la noche, entonces, independientemente del contenido interesante, no habrá más visualizaciones que en horario de máxima audiencia. La importancia de las funciones puede variar, pero diferentes públicos elegirán contenido diferente. Puede depender del género, la edad, el estatus social.



Una de las etapas más laboriosas del trabajo con datos es la ingeniería de características: procesar o crear características. Esta parte de la ciencia de datos requiere mucha experiencia: o no hay recetas conocidas de antemano, o son demasiado simples, y debe idear formas de preparar funciones sobre la marcha.



A veces hay curiosidades en los datos: digamos que el espectador enciende el televisor por la noche y se queda dormido. Resulta como si hubiera visto programas toda la noche. Este es un ejemplo de ruido en los datos: los datos parecen ser precisos, pero parece que no lo son, y debe aprender a adivinar, aunque es difícil. Además, se suelen mostrar muy pocos anuncios por la noche.



Cuando construimos un modelo, no solo necesitamos hacerlo funcionar, sino también proporcionar pruebas y monitoreo. Para ello necesitamos métricas. Dado que tenemos un problema de regresión, nuestro conjunto de métricas será diferente del conjunto de clasificación, por ejemplo. Estos son el error cuadrático medio y el coeficiente de determinación; todos son muy importantes. También hay métricas que debe crear usted mismo para resolver un problema comercial específico, por ejemplo, el problema de optimizar los costos de una campaña publicitaria. En este caso, necesitamos predecir no solo la calificación de TV, sino también la cobertura de la campaña publicitaria; Trabajamos no solo con aprendizaje automático, sino también con métodos estadísticos y econométricos complejos. Este es el caso cuando el conocimiento del aprendizaje automático no es suficiente: requiere cálculo, álgebra lineal, métodos de optimización matemática.A diferencia de las tareas comunes de aprendizaje automático (regresión, clasificación, agrupamiento), aquí debe crear sus propios métodos, y la programación por sí sola no es suficiente.



Me gustaría mencionar el programa de la Escuela Superior de Economía - Comunicaciones basadas en datos. Tuve que ayudar a los estudiantes en este programa en el camino, están comprometidos con el marketing y temas relacionados con el aprendizaje automático. En realidad, ¿qué es el aprendizaje automático y la ciencia de datos para un especialista en marketing? Anteriormente, no se esperaba que un especialista en este campo programara y realizara modelos complejos, pero ahora es una habilidad que da ventajas en el mercado laboral. Si un especialista, además de su profesión, domina la ciencia de datos, entonces tiene la oportunidad de cambiar de trabajo y convertirse en científico de datos, o continuar desarrollándose en su área temática, pero con grandes ventajas competitivas. El experto en aprendizaje automático podrá hacer predicciones más precisas, pero requerirá mucho aprendizaje.



¿Vale la pena prestar atención al curso MIPT / Yandex Data Science, o quizás mirar hacia Udacity?



Según tengo entendido, te refieres a un curso de MIPT / Yandex en Coursera. Udacity es una plataforma de aprendizaje independiente; no solo hay ciencia de datos, aunque una gran parte de los cursos están destinados a la inteligencia artificial y la ciencia de datos. Recomiendo no detenerse en un recurso, sino probar varios cursos. Los cursos no coinciden al 100%, siempre puedes encontrar algo nuevo que no conocías antes. Además, el nuevo curso se puede utilizar para la repetición. Por ejemplo, cursos sobre GeekBrains en nuestros departamentos de IA, ingeniería de datos y análisis de big data. Como soy su decano y maestro, puedo contarles más sobre ellos.



Los cursos se combinan en facultades; por ejemplo, la facultad de inteligencia artificial tiene 17 cursos, más 8 adicionales. Casi todos los cursos tienen trabajos prácticos como proyecto final. Por lo tanto, un especialista que aprende sobre ello obtiene práctica. Recomiendo no solo estudiar teoría, sino hacer proyectos: las buenas habilidades prácticas te acercarán a la entrevista y al inicio de una carrera.



Yo mismo estudié hace un tiempo en Udacity; hice un curso sobre vehículos robóticos, muy largo, estaba previsto que fuera de 9 meses, pero el curso duró aproximadamente un año. Realmente aprendí mucho, las impresiones de la plataforma son positivas. Pero, por supuesto, todos los cursos se imparten en inglés.



¿Cómo tener en cuenta las anomalías en las series de tiempo y se pueden eliminar?



Un proceso desagradable. No existe una receta preparada para esto; necesita una gran cantidad de pruebas. Más precisamente, hay modelos listos para usar, pero están diseñados solo para detectar anomalías en el pasado, y no solo necesitan ser detectados, sino también anticipados.



Para tales casos, hay varios desarrollos, pero debe crearlos usted mismo. Lo más importante es determinar qué ocurrirá en el futuro: por ejemplo, un aumento en la visualización de televisión en determinados canales y programas. A medida que pasa el tiempo, estos datos vuelven a los datos de entrenamiento y deben procesarse de la manera correcta.



Incluso si no hay anomalías en el futuro, las anomalías pasadas pueden afectar su pronóstico. Aquí hay muchos métodos; la más simple es eliminar los datos anómalos, pero si hay muchos, esto puede llevar a la pérdida de un período completo de la serie temporal, por lo que este método no siempre es adecuado.



¿Cómo conseguir un trabajo sin experiencia comprobada?



Buena experiencia son tus proyectos. Es decir, si no solo enseña teoría, sino que realiza un proyecto de inmediato, preferiblemente bajo la guía de un mentor (una persona con experiencia en ciencia de datos e inteligencia artificial), entonces sabe lo que está haciendo. No solo sabes cómo aplicar la teoría, o aplicar un modelo a los datos que se encuentran en Internet, sino también cómo resolver problemas prácticos. Cuando trabajas en tales proyectos, obtienes conocimientos que no se pueden obtener de libros y cursos, y la ayuda de un mentor es invaluable aquí.



Hablemos de libros: he preparado una pequeña pila.



Si trabaja en ciencia de datos, lo más probable es que tenga que trabajar en un entorno Linux. Al mismo tiempo, no será un administrador, es decir, no necesitará un conocimiento demasiado profundo, pero se requerirá un conocimiento seguro de esta plataforma para tareas administrativas simples (planificar el lanzamiento de scripts o deshacerse de los recursos del sistema operativo). Aquí es donde el libro "LINUX - Pocket Guide" de Scott Granneman le ayudará. Se puede estudiar en un par de días.



Sobre la teoría de la probabilidad, recomendaría el libro de GG Bitner "Teoría de las probabilidades", que contiene tanto teoría como problemas. La teoría de la probabilidad será útil tanto para entrevistas como para trabajos.

Cualquiera que trabaje en TI requiere un conjunto mínimo de conocimientos y habilidades. En consecuencia, el libro "Mínimo teórico en informática: todo lo que un programador y desarrollador necesita saber" (Philo Vladston Ferreira) es un programa educativo en informática.



Si se sumerge en la programación y el desarrollo de bajo nivel, necesitará algoritmos. En el libro "Algoritmos para principiantes: teoría y práctica para un desarrollador" de Panos Luridas, los algoritmos se dan sin referencia a un lenguaje específico. Hay un libro más extenso para C ++: "Algoritmos en C ++" de Robert Sedgwick; es útil cuando desea eliminar algunas de las operaciones de alto nivel que tiene Python y crear algoritmos desde cero.



Si desea tener una idea general del trabajo de alto nivel de un científico de datos, entonces el libro "Trabajar con datos en cualquier campo: cómo alcanzar un nuevo nivel utilizando análisis" de Kirill Eremenko es para usted. Aquí no hay programación. Pero, si ya es un experto, solo le será útil si aún no ha trabajado con datos.

Siguiente: “Ciencia de datos. Data Science from Scratch de Joel Grasz también es un libro útil. De la misma publicación: “Estadísticas prácticas para profesionales de la ciencia de datos. 50 conceptos esenciales ”de Peter Bruce y Andrew Bruce. Aquí también puedes estudiar estadística.



Si va a trabajar con datos en Python y utilizará la biblioteca Pandas, definitivamente necesita "Python and Data Analysis" de Wes McKinney, el autor de la biblioteca Pandas.

Sobre el aprendizaje automático, recomiendo dos libros: Machine Learning de Peter Flach y Python y Machine Learning de Sebastian Raska.



Para el aprendizaje profundo, está el libro Aprendizaje profundo en Python de Francois Schollet, donde puede estudiar redes neuronales para problemas de visión artificial y PNL. Específicamente en PNL, hay "Análisis aplicado de datos de texto en Python" por Benjamin Bengford, Rebecca Belbrough y Tony Ojeda.



Si desea aprender TensorFlow para el aprendizaje profundo, hay un libro con el mismo nombre de Bharat Ramsundar y Reza Bosag Zade.



También hay un libro que explica de manera simple y clara los principios de las redes neuronales: el libro de Andrew Trask "Grock Deep Learning". También hay "Algoritmos de Grock": explica bien los algoritmos que pueden ser útiles en entrevistas y en la práctica.



¿Qué preguntas en las entrevistas?



Hay una pequeña colección de preguntas. Hay preguntas sobre el aprendizaje automático clásico: un especialista que consigue un trabajo en el campo de la ciencia de datos y la inteligencia artificial debe saber cómo funcionan los modelos clásicos del aprendizaje automático: regresión lineal, logística, descenso de gradiente, regularización L1-L2. Es necesario que una persona hable sobre el principio de funcionamiento de los árboles de decisión, sobre el criterio del contenido de la información para problemas de clasificación y regresión; para que una persona sepa cómo funciona el aumento de gradiente de bosque aleatorio. Es muy bueno si conoce las diferencias entre los modelos de aumento de gradiente (Catboost, LightGBM, XGBoost), es decir, cuál es la diferencia entre estas bibliotecas, cómo se implementa el aumento de gradiente en ellas. También necesita una persona que posea las bibliotecas de aprendizaje automático: Pandas, NumPy, SKLearn. Si un especialista necesita trabajar con redes neuronales, con visión artificial, con PNL,luego habrá preguntas sobre estos temas.

Puede haber muchas preguntas. Si una persona responde bien, entonces es interesante preguntarle sobre algunos de sus proyectos; si una persona ha hecho algo, el entrevistado inmediatamente tiene muchas preguntas relacionadas con los proyectos. Si tiene proyectos personales en GitHub, o proyectos educativos de cursos, será muy bueno si puede contar en detalle sobre las tecnologías y algoritmos que utilizó.



Además, durante la entrevista, puedes hacer diferentes preguntas básicas. Por lo general, si una persona las responde bien, lo más probable es que sea un buen especialista. Por supuesto, es importante que pueda completar la tarea de prueba. La teoría es una cosa, pero también es importante cómo una persona puede resolver un problema práctico, programarlo, qué código escribirá. Si una persona conoce toda la teoría, pero envía un código en el que el OP no se usa cuando es necesario, entonces no sabe cómo aplicar la teoría correctamente. Además, por supuesto, el código en sí debe ser legible y comentado.



También quería hablar de computación cuántica, el aprendizaje de máquinas cuánticas es otra área de mi interés, pero hoy no tendré tiempo.



¿Qué se debe escribir en el currículum para recibir una invitación a una entrevista?



Un currículum es un momento crucial. Primero, no debe estar hinchado en volumen: debe contener solo experiencia relevante. Si trabajó en una especialidad no relacionada con TI, esto no es necesario. Enumere sus logros en breve, proyectos, cursos tomados, relevantes para la vacante. Escriba lo que le muestra como un especialista que es capaz de hacer el trabajo. Y, por supuesto, el resumen debe ser legible.




Que paso antes



  1. Ilona Papava, ingeniera de software sénior en Facebook: cómo obtener una pasantía, obtener una oferta y todo sobre trabajar en una empresa
  2. Boris Yangel, ingeniero de ML de Yandex: cómo no unirse a las filas de especialistas tontos si es un científico de datos
  3. Alexander Kaloshin, EO LastBackend: cómo lanzar una startup, ingresar al mercado chino y obtener 15 millones de inversiones.
  4. , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
  5. , DeviceLock — .
  6. , RUVDS — . 1. 2.
  7. , - . — .
  8. , Senior Digital Analyst McKinsey Digital Labs — Google, .
  9. «» , Duke Nukem 3D, SiN, Blood — , .
  10. , - 12- — ,
  11. , GameAcademy — .
  12. , PHP- Badoo — Highload PHP Badoo.
  13. , CTO Delivery Club — 50 43 ,
  14. , Doom, Quake Wolfenstein 3D — , DOOM
  15. , Flipper Zero —
  16. , - Google — Google-
  17. .
  18. Data Science ? Unity









All Articles