Todas estas compañías, por ejemplo, MS, Google, Amazon, Facebook, Apple, siguen un enfoque en el que miden el proceso de pensamiento de un candidato.
Y usan diferentes medios para evaluar eso, pero sí, la mayoría de ellos usa Algoritmos / Estructuras de datos / Preguntas abiertas como uno de los enfoques para evaluar el talento (ya que esas son la base para desarrollar las tecnologías)
Para estar acostumbrado a algos / estructura de datos / codificación, debe haber entendido / practicado el mínimo, por ejemplo:
(Paso 1): debe tener una comprensión práctica de los algoritmos (por ejemplo, cuándo usar BackTracking, cuándo usar Divide and Conquer, ¿por qué se requiere doble hashing? ¿Dónde se puede aplicar el concepto de fuerza bruta?)
(Paso 2): debe tener una comprensión práctica de las estructuras de datos, por ejemplo (casos de uso prácticos relacionados con: cuándo usar el búfer circular, o cuándo usar una lista adyacente o la combinación de ambos o algo más para resolver el problema)
(Paso 3): debe practicar varios problemas de codificación para implementar las cosas que aprenden del Paso 1 y del Paso 2 (puede hacer lo siguiente para elegir cualquier lenguaje de codificación para elegir el suyo (C, C ++ o Java o Python) o PHP o cualquier otro)
(Paso 4): Resolver el problema no significa solo resolverlo, sino comprender la mejor manera de resolverlo, por ejemplo, el problema técnico dado puede usar varias formas para llegar a una solución, y es posible que desee utilizar la solución óptima. . (Cómo se conecta la solución dada con los recursos informáticos / de memoria, por ejemplo, Memoria / Potencia de procesamiento)
El más importante
Sin embargo, aparte de la programación, es posible que deba comprender que el concepto principal para la entrevista es mantener la entrevista activa y esto requiere algunas acciones de su parte, como las siguientes:
Necesitas hablar
Necesitas explicar
Necesitas discutir
Necesitas expresar tus puntos de vista
Debe comprender claramente las preguntas que se le hacen.
Debe comprender la expresión y mentalidad del entrevistador para comprender esas preguntas.
Es posible que deba hacer las preguntas adecuadas para comprender la pregunta o cualquier otro elemento de discusión.
Y también :
Prepárese: “Cuénteme sobre usted mismo”, “Sus habilidades relacionadas con el interés positivo / negativo adicional”, Conceptos básicos para los conceptos informáticos más necesarios o cualquier cosa que haya presentado en su “CV / Currículum”
Aparte de eso, depende de la posición a la que se le llama o solicita, por ejemplo
Trabajo de Microsoft SDE (Ingeniero de desarrollo de software)
Ingeniero de Desarrollo de Software (SDE)
Ya sea que esté creando nuevos códigos, algoritmos o estructuras de datos, usted es el vínculo entre los conceptos abstractos y los productos tecnológicos utilizados diariamente por sus amigos, familiares y millones de otras personas en todo el mundo. Utilizando su dominio de las herramientas técnicas, desarrolla aplicaciones y sistemas operativos de última generación, tomando decisiones sobre el diseño y la implementación de características.
Los ingenieros de desarrollo de software se sumergen profundamente en el código y trabajan como parte de un equipo de expertos en programación que resuelven problemas y crean nuevas herramientas poderosas. Colabora con los ingenieros de desarrollo de software en pruebas (SDET) para garantizar una calidad estelar del producto, y proporciona orientación técnica a los gerentes de programa (PM) a medida que comunican las necesidades del usuario y los requisitos del producto. Como SDE, te dedicas a producir el software más avanzado del mundo.
Calificaciones:
Buscando un BS / MS o Ph.D. licenciatura en ingeniería, informática o campo relacionado
1-2 años de experiencia en programación en C ++, Java u otros lenguajes de programación preferidos
Capacidad para derivar soluciones creativas e innovadoras pensando “fuera de la caja”
Experiencia en definición de características, diseño y viabilidad
Habilidad demostrada para estimar el tiempo de desarrollo.
Ingeniero de software en trabajo de prueba en Google (You Tube)
En Google abordamos las pruebas de manera diferente: estamos probando y rompiendo el código constantemente, pero ayudamos a reconstruirlo mejor. Los ingenieros de software en prueba (SET) diseñan la infraestructura de prueba de Google y escriben código para examinar y validar el desarrollo y las implementaciones de software a gran escala. Como SET, se asocia con desarrolladores de software para crear y codificar pruebas simultáneamente con el desarrollo de productos. Usted crea herramientas que ayudan a los desarrolladores a ser más productivos, escribir un mejor código y probarlo ellos mismos. La resolución de problemas es insuficiente, es más como pronosticar problemas.
Responsabilidades
Cree conjuntos de pruebas automatizadas avanzadas para ejercer nuestras aplicaciones de clase mundial.
Trabaje con los equipos de ingeniería de desarrollo y prueba para automatizar las pruebas.
Realizar investigaciones sobre tecnologías emergentes.
Analice y descomponga un sistema de software complicado y diseñe una estrategia para probar este sistema.
Entrenar y guiar a otros miembros del equipo.
Calificaciones mínimas
Licenciatura en Informática (en lugar de licenciatura, 4 años de experiencia relevante).
Experiencia laboral relevante, que incluye experiencia en desarrollo y / o automatización de pruebas.
Calificaciones preferidas
Máster o doctorado en informática o campo técnico relacionado.
Excelente habilidad de codificación en C, C ++, Java o Python.
Buenas habilidades de secuencias de comandos en al menos un lenguaje común (Perl, Python, Shell).
Altamente competente en un entorno UNIX / Linux.
Profundo conocimiento de las tecnologías de internet.
———
Por lo tanto, para los puestos de desarrollo, al empleador le gustaría ver sus capacidades de desarrollo de software, por ejemplo, depuración, patrones de diseño, hilos, estilo de codificación, conceptos / implementación de la estructura de datos
Sin embargo, para la posición de prueba, aparte de las preguntas de desarrollo, debe mostrar sus capacidades / actitud de prueba hacia la característica / producto de software desarrollado, especialmente la automatización.
Y más:
Lo que sea que hayas mencionado en tu CV