Cómo prepararse para trabajos de ingeniero de datos en Amazon / Google / Facebook / Quora

Me uniré a Facebook en algún momento del próximo año (2018) como ingeniero de datos. Fui pasante en su equipo de Aprendizaje automático aplicado a principios de este verano.

Descargo de responsabilidad : Esto puede no ser aplicable a otras empresas. O incluso a otros equipos en Facebook para el caso.

Dividiré las habilidades necesarias en dos partes. Lo habitual: habilidades técnicas , y el nombre creativo: otras habilidades.

Habilidades técnicas:

  • SQL : imprescindible.
    Todas las consultas de canalización y análisis de datos exploratorios se realizan en SQL (Hive o Presto). Mucha gente piensa que es solo SELECCIONAR * DE cosas. ¿Cuan dificil puede ser? Bueno, solo dígales “SELECCIONE el dedo de la mano DONDE id = 3” [1] 😛 Además, a escala de Facebook, la eficiencia se convierte en clave. Eso también se evalúa durante las entrevistas.
  • Python : imprescindible .
    La mayoría de las tuberías están escritas en Python. No solo como marco, sino también para la manipulación de datos (cuando SQL no es suficiente) y las pruebas estadísticas también. Pero, las entrevistas solo evaluaron las habilidades de codificación, como lo que cabría esperar en una típica entrevista de ingeniería de software.
  • Unix : Bueno para tener .
    Todos los ingenieros obtienen un servidor de desarrollo. Por lo tanto, conocer las herramientas y funcionalidades básicas será de gran ayuda en lo que respecta a la productividad. Sin embargo, esto no es realmente una expectativa durante las entrevistas.

Técnicamente, eso es todo. Hay muchas otras cosas buenas (como el funcionamiento interno de HDFS, Yarn, MapReduce, etc.), pero ¡oye! ¿Hay algo que no sea bueno tener? … No, no respondas eso.

Otras habilidades:

  • “Métete en la mente del usuario final”.
    Aquí, “usuario final” puede significar el usuario final del producto (Facebook, Quora, etc.) o el usuario final de su entrega (gerentes de producto, científicos de investigación, etc.).
    La intuición del producto y la empatía son quizás las habilidades más importantes (pero subestimadas) que un ingeniero debería tener. Aprovecha el producto antes de la entrevista.
  • El mantra ideal del ingeniero de datos: “Piensa como un ingeniero de software, habla como un científico de datos, pica como una abeja”.
    Espera, la tercera parte es de otro dicho, por favor ignora. No picar. No eres un gerente de producto.
  • “La depuración es una habilidad. Comprender los registros de Hive es un arte “.
    Los errores de la colmena son como ese bebé realmente molesto que ininteligiblemente llora por todo. (Espera, me dicen que son todos ellos). Al principio es difícil decodificar, pero eventualmente comenzarás a comprender qué significa exactamente cada berrinche sin sentido.
    Entonces, como en la crianza de los hijos, la experiencia previa con tales sistemas realmente ayuda mucho .

Notas al pie

[1] Amazon.com: Mysql Seleccione dedo de la mano donde Id 3 camiseta divertida: ropa

El ingeniero de datos es uno de los trabajos más populares en estos días. Obtienes un salario muy alto por el trabajo de ingeniero de datos. Para ingresar a este campo debes aprender las siguientes habilidades.

Paso 1: Aprenda SQL: Sí, esta es la madre de todos los lenguajes de datos. Si ya conoce SQL, entonces es muy bueno. Si no, al menos aprenda los conceptos básicos de SQL.

Dado que la mayoría del ingeniero de datos pasó de la antigua escuela de consultas SQL a la nueva escuela de Big Data, puede esperar preguntas sobre este tema.

Paso 2: Aprenda Hadoop: una vez que conoce SQL, puede comenzar a aprender Apache Hadoop. Esta es la base de la mayoría de las plataformas de Big Data que se utilizan en Ingeniería de Datos. Por lo tanto, aprende bien. Le ayudará a aclarar sus dudas sobre el algoritmo MapReduce y su implementación en Hadoop.

Paso 3: Aprenda Hive: una vez que conozca Hadoop, puede comenzar a aprender Apache Hive. Este es el motor de consulta más popular utilizado en Ingeniería de Datos. Puedes aprender la sintaxis de Hive y la teoría básica. Entonces puedes practicar consultas de Hive.

Paso 4: Aprenda Apache Spark: Apache Spark es una opción muy popular que afirma un mejor rendimiento que Apache Hadoop y Hive. Muchas empresas lo están utilizando. Por eso es muy importante aprenderlo.

Paso 5: Aprenda Scala: junto con Hive, Hadoop y Spark, es posible que tenga que aprender un idioma como Scala o Java 8 streaming. Puede seleccionar uno de estos idiomas. Una vez que domine todas estas habilidades, estará bien preparado para la entrevista con el ingeniero de datos.

Libros : puedo sugerirle algunos buenos libros sobre preparación de entrevistas para ingenieros de datos:

  • Las 200 principales preguntas y respuestas de la entrevista con el ingeniero de datos
  • Las 50 preguntas más frecuentes sobre la entrevista SQL
  • Las 50 preguntas y respuestas más importantes de la entrevista de Apache Hadoop
  • Las 50 preguntas y respuestas más importantes de la entrevista de Apache Hive
  • Las 50 preguntas y respuestas más importantes de la entrevista de Apache Spark

Cursos : si te gustan los cursos en video, hay algunos buenos cursos sobre preparación de entrevistas de Ingeniero de datos en Udemy.

  • Curso de preparación para la entrevista de Hadoop
  • Curso de preparación para la entrevista de la colmena
  • Curso de preparación para la entrevista Spark
  • Curso de preparación de preguntas de la entrevista MySQL

Espero que esta información ayude. Déjame saber tu opinión sobre esto.

Sígueme en Gautam Gupta para obtener más información sobre el tema del ingeniero de datos.

Como tienes buen tiempo a mano, me gustaría sugerirte que estudies para,
1) Hadoop, Conocimiento profundo de HDFS ya que Facebook opera en el sistema de archivos distribuido hadoop más grande y único, También las acciones del Usuario, como las actualizaciones de estado o me gusta, se almacenan en una base de datos MySQL altamente distribuida y personalizada.
2) HBase: – La mensajería de Facebook se ejecuta sobre HBase y todos los mensajes enviados desde Desktop y Mobile se mantienen en HBase.
3) Hive: – Facebook ha estado usando Hive para generar informes para desarrolladores y anunciantes externos que necesitan rastrear su aplicación o progreso.
4) Cassandra: – Facebook desarrolló su propia versión de cassandra, hay un documento sobre esto en el sitio web de Datastax, es posible que desee revisarlo también: – Papel de Cassandra de Facebook, anotado y comparado con Apache Cassandra 2.0
5) También es posible que desee Google Arquitectura de datos en Facebook y aprender lo más posible sobre el mismo.

Todo lo mejor y avísame si consigues el trabajo para que pueda enviarte mi currículum 🙂

Haría la preparación de la entrevista en 2 partes: preparación de la entrevista de codificación general y preparación de la ciencia de datos. En general, las entrevistas de Facebook / Google / Linkedin / Twitter y otras compañías son bastante estándar y generales, por lo que el tipo y el proceso de la entrevista son más predecibles y ciertas formas definitivamente pueden facilitar su preparación.

Para una entrevista de codificación general, le sugiero que se concentre en el conocimiento más básico con suficiente práctica. Algunos consejos son:

Estructura de datos y preparación de algoritmos.
La razón por la que primero debe prepararse bien para la estructura de datos y los algoritmos es que realmente son la base de la mayoría de las entrevistas con ingenieros de software. Una pregunta de entrevista es como pedirle que resuelva un problema con una combinación de habilidades que aprendió de estos conocimientos básicos.

Libros como Cracking the Coding Interview, Introduction to Algorithms y su libro de texto en la escuela son los mejores recursos.

Practica con preguntas de codificación
La idea de este paso es enseñarle a usar lo que aprendió de esos libros para resolver una pregunta real y darle algunas ideas sobre qué tipo de preguntas se hacen en una entrevista general. Otro consejo es buscar preguntas de entrevistas pasadas de Dropbox y descifrar tantas como sea posible. No intente memorizar preguntas y respuestas, ya que las empresas generalmente evitan hacer preguntas filtradas en público, por lo que es muy poco probable que vuelva a encontrar la misma pregunta.

Hay innumerables recursos en línea y recomendaría:

  • Entrevista de descifrar la codificación: muchas preguntas de práctica, con explicaciones cortas en la parte posterior.
  • LeetCode (muy recomendado): le permite codificar y ser juzgado en línea.
  • Glassdoor: probablemente ni siquiera tendrá tiempo suficiente para terminar todas las preguntas.

Para la parte de ciencia de datos, no necesita profundizar demasiado en matemáticas, ya que su posición es ingeniero en lugar de investigador. Algunos consejos son:

Familiarizarse con la teoría básica de la ciencia de datos
No es necesario hacer todos los trabajos de matemáticas, ya que es poco probable que se te pida que hagas algo de matemáticas en una entrevista. Pero lo que es mucho más importante es tener una comprensión clara de cómo funciona cada algoritmo. Por ejemplo, puede explicar fácilmente cada algoritmo en una o varias oraciones, también puede describir los pros y los contras de ellos y saber cuándo usar qué algoritmo para resolver el problema. Dicho esto, memorizar sin comprender nunca funcionará.

Resolver problemas de la vida real.
No está solicitando un puesto de investigación, entonces será mejor que sea realmente bueno para resolver un problema de la vida real con la teoría de la ciencia de citas y sus experiencias. En una entrevista, se le puede pedir que diseñe un sistema y discuta con el entrevistador desde un alto nivel hasta un montón de detalles. Hay muchas formas de prepararse para esto. En primer lugar, le sugiero que investigue un poco sobre cómo la ciencia de datos, incluido ML, IR, se está utilizando en productos reales y trate de entender por qué está diseñado de esta manera. En segundo lugar, también es útil leer documentos que tratan principalmente sobre la aplicación en lugar de la teoría. Por último, si tienes suficiente tiempo de preparación, crea algunos proyectos paralelos y ensuciate las manos.

Sigue practicando
La entrevista técnica no solo evalúa su capacidad de codificación, sino una variedad de habilidades y habilidades como habilidades de comunicación, capacidad de análisis, etc. También muchas personas se sentirán nerviosas al resolver un problema cuando alguien mira por encima del hombro, por lo que incluso puede fallar Las preguntas más simples.

Mucha gente también quiere recibir comentarios de buena calidad de entrevistadores experimentados. Con eso en mente, trabajamos en la construcción de http://www.gainlo.co/ , que permite al candidato tener una entrevista simulada con entrevistadores experimentados de Google, Microsoft, Linkedin, etc. y obtendremos comentarios reales para mejorar.

Bueno, debes prepararte muy rigurosamente para cualquier entrevista en Facebook. ¡Uno de mis colegas entró en Facebook después de 13 rondas de entrevistas! Puede esperar algo en las líneas similares.

Diría que realiza una preparación exhaustiva de todos los temas como HDFS, Pig, Hive, Mapreduce, Hadoop cluster y otros. Aquí hay una colección de algunas de las preguntas de la entrevista y sus respuestas que probablemente enfrentará en su entrevista:

  • Las 50 preguntas principales de la entrevista de Hadoop para las que debe prepararse en 2016
  • Preguntas de la entrevista de Hadoop – PIG
  • Preguntas de la entrevista de Hadoop: configuración del clúster de Hadoop
  • Preguntas de la entrevista de Hadoop – HDFS
  • Preguntas de la entrevista de Hadoop -MapaReduce

Además de lo anterior, te recomendaría que te ensucies las manos con un pequeño proyecto en Big Data & Hadoop que puedes usar para dirigir tu entrevista a tu favor cuando las cosas se pongan difíciles. Además, te sugiero que practiques más sobre preguntas orientadas a la práctica que FB podría enfrentar en la vida real. Esto le daría una ventaja real en su entrevista.

¡Espero que esto ayude!

Dado que la pregunta es específicamente para trabajos de Ingeniería de Datos, no repetiré ¿Cómo me preparo para una entrevista de trabajo de ingeniería de software? responde aquí, y solo habla sobre la preparación específica de Ingeniería de Datos.

Para el conocimiento general de los sistemas y la infraestructura de datos, el libro Diseño de aplicaciones intensivas en datos es un gran recurso para comprender los desafíos fundamentales que las empresas enfrentan comúnmente y algunas soluciones y conceptos de diseño bien establecidos para resolver estos problemas. Recomiendo encarecidamente comenzar allí.

Como ingeniero de datos, también se espera que esté familiarizado con SQL , ya que es el lenguaje más común para consultar y manipular datos. SQLZOO es un recurso bastante bueno para aprender lo básico. Puntos de bonificación si puede aprender a leer los resultados de una consulta EXPLAIN, para que pueda aprender a escribir consultas SQL más eficientes.

Una vez que haya dominado los conceptos en Diseño de aplicaciones intensivas en datos y cómo escribir consultas SQL, algunos buenos sistemas de código abierto para aprender a continuación son:

  • Kafka como un búfer de mensajes para iniciar sesión casi en tiempo real.
  • Spark para procesar datos en lotes (comúnmente una vez al día) y Spark Streaming para procesar datos en micro lotes (comúnmente un lote cada pocos segundos a minutos)
  • Aquí hay muchas otras herramientas de procesamiento de datos (definitivamente no necesita conocerlas todas), como:
  • MapReduce, Tez, Beam, Flink, Flume para el procesamiento por lotes en lugar de Spark.
  • Storm, Samza, Heron, Flink Streaming para el procesamiento de flujo en lugar de Spark Streaming.
  • Presto para ejecutar consultas SQL interactivas en diferentes almacenes de datos.
  • HDFS para almacenar datos en disco en muchas máquinas. Muchos sistemas de almacenamiento de datos de código abierto de Apache se basan en HDFS, como HBase y Hive.
  • Zookeeper para gestionar configuraciones y consensos. Por ejemplo, HBase utiliza Zookeeper internamente para realizar un seguimiento de qué cuadro es el maestro de HBase y qué RegionServers están actualmente vivos. Para obtener una explicación súper profunda sobre algunos casos de uso de Zookeeper en HBase, consulte: La respuesta de Eric Sammer a ¿Por qué HBase usa Zookeeper pero HDFS no?
  • YARN o Mesos para administrar recursos en un clúster, abstrayendo los conceptos de máquinas individuales, cada uno con sus propios límites de CPU y memoria, y pensando en el clúster como un conjunto de CPU X y GB E de memoria.
  • Flujo de aire para programar tareas y administrar dependencias de tareas (por ejemplo, solo quiero ejecutar la tarea “generar informe de ingresos” después de ejecutar la tarea “procesar ventas” para hoy).
  • Con el fin de prepararse para el trabajo, no es importante conocer los detalles de cada uno de los sistemas anteriores, pero es importante comprender cómo encajan en el ecosistema de datos y cómo funcionan a un alto nivel.

    Aprende un lenguaje JVM . Muchos de los sistemas anteriores están escritos en lenguajes JVM, y aunque muchos de ellos proporcionan API que no son JVM, sus API JVM tienden a ser mucho más potentes y eficientes. En particular, Java y Scala son probablemente los lenguajes más ampliamente aplicables dentro de la familia JVM.

    Por último, las habilidades generales de front-end también son útiles. Como ingeniero de datos, es posible que se le pida que cree visualizaciones de datos y otras herramientas de datos para su equipo. Saber reaccionar y tal vez D3 puede ser útil en estas situaciones.

    Los roles de ingeniería de datos en la mayoría de las empresas requieren principalmente el conocimiento de SQL complejo (subconsultas, funciones agregadas, cláusula de grupo, cláusula, uniones, etc.).

    Aparte de eso, dependiendo de la antigüedad y los requisitos del puesto, el conocimiento de big data, mapreduce, hadoop, hilo, scala, spark, colmena, cerdo, etc.son una gran ventaja.

    Hay algunas experiencias de entrevistas de ingenieros de datos en varias compañías en GeekyPrep.com. Únase a nosotros, prepárese para las entrevistas, ¡sea contratado! también. Puedes leer a través de ellos.

    ¡Buena suerte!

    Si investiga un poco en línea y lee cómo Facebook usa Hadoop, eso debería ayudarlo a comprender en qué tecnologías trabajan, cómo lo usan y qué se espera que un desarrollador de Hadoop sepa antes de unirse a Facebook. Puedes leer este artículo. Cómo usa Facebook Hadoop y Hive: esto será muy útil.

    También, en general, es útil si tiene una lista de preguntas que puede usar para comprender qué tipo de preguntas de la entrevista podrían hacerse. Encontrará esta lista de las 100 preguntas y respuestas más importantes de la entrevista de Hadoop 2015 más útil.

    Depende, sin saber mucho acerca de la empresa y la persona que lo entrevista, solo puede proporcionar una cierta cantidad de información y ser general.

    Normalmente con empresas más grandes, buscan a alguien que se destaque entre la multitud.
    Buscan a alguien con habilidades y alguien con confianza en esas habilidades.
    Quieren a alguien que haga el trabajo al final del día y alguien que pueda aportar nuevas ideas.
    Quieren a alguien dedicado y que amen lo que hacen.

    En la entrevista, podrían preguntarle para ver qué tan serio es usted.
    Normalmente en línea puedes encontrar ejemplos de preguntas de entrevistas y desde allí puedes preparar respuestas que te permitan mostrar la mejor versión de ti mismo.
    Pero esto depende totalmente de usted.
    Solo tienes que creer en ti mismo y descubrir qué te hace mejor que el resto de la competencia.
    Una vez que lo sepas, entra con la cabeza en alto y lucha.

    ¡Depende de lo que va a trabajar!

    Los ingenieros de datos tradicionales trabajan en SQL, algunas herramientas ETL como Informatica (opcional)

    Los ingenieros de datos modernos necesitan trabajar en sistemas de Big Data donde su experiencia de ingeniero de software ayudará.

    La mayoría de los ingenieros de datos de hoy están bien versados ​​en SQL y puede esperar preguntas sobre SQL. Sin embargo, SQL es fácil de aprender y con la evolución de las tecnologías de Big Data, los entrevistadores pueden evaluar su comprensión de los conceptos de DataWarehousing, habilidades de modelado que SQL. Por lo tanto, le recomendaría que se familiarice con los conceptos de DW, el modelado y el diseño de datos.

    La preparación dependería de los requisitos del trabajo. El rol de ingeniería de datos en estos días se centra mucho en Hadoop / MapReduce, NoSQL y demás. Comenzaría leyendo sobre MapReduce y Hadoop y haciendo un proyecto paralelo. Eso daría un buen punto de partida. No conozco preguntas específicas de la entrevista, solo veo preguntas relacionadas con la experiencia de un candidato.

    Entrevista con el ingeniero de datos de Amazon: la preparación comienza con el SQL básico. La primera ronda fue la pregunta basada en el escenario de diseño de modelado de datos y algunos códigos SQL. La segunda ronda fue la entrevista cara a cara: concepto Big DATA, ETL, SQL, DW, modelado de datos

    Respuesta simple

    Ir a las carreras de Facebook

    Cada detalle paso a paso

    Nadie puede guiarte como las carreras de Facebook

    Actualizan periódicamente sus preguntas

    Y cada información y conocimiento

    Con detalles y paso a paso.

    Gracias