Esta es una lista bastante larga y he recopilado algunas de las preguntas de mis amigos y las he segregado según su dominio.
Me he concentrado principalmente en software embebido e incluso no consideré el diseño de PCB, las posiciones de ingeniería de diseño de hardware.
También actualizaré algunas preguntas más sobre electrónica analógica y digital.
- ¿Cómo es una entrevista de fundador en Palantir?
- ¿Cuáles son algunos consejos de entrevistas de trabajo para mi entrevista Best Buy? ¿Cómo puedo prepararme mejor?
- Cómo responder una pregunta de entrevista sobre patrocinio cuando tengo 3 años de visa OPT
- Tengo una entrevista de pasantía en Microsoft en aproximadamente 12 horas y no estoy totalmente preparado. ¿Qué tengo que hacer?
- ¿Cómo calmo mis nervios lo suficiente como para dormir la noche anterior a una gran entrevista?
Rompecabezas C y C
- C Vs C incrustado vs C ++ ¿Cuál es la diferencia entre C y C incrustado?
- C pasos de compilación
- Conozca muy bien “estático, global / externo, automático, registro, constante y volátil”. ¿Cuándo utiliza una palabra clave estática para una variable global?
- ¿Uso de palabras clave volátiles?
- Saber sobre “estructura, unión y enumeración”.
- ¿Cuál es la diferencia entre estructura y unión? ¿Dónde usamos la unión? Estructuras y Uniones y sus acolchados.
- Conocer los conceptos básicos de punteros. Punteros dobles. Alias de puntero, indirección múltiple.
- Punteros de función y funciones de devolución de llamada
- Char ptr, int ptr y sus tamaños? alias de puntero.
- Ptr nulo, ptr nulo y sus usos?
- malloc vs calloc vs realloc.
- Operaciones de archivo en linux
- Encasillamiento
- Función en línea. Diferencia entre Inline y macro.
- Directivas del pre procesador.
- Manipulación de bits: establecer, obtener, borrar, alternar, cambiar, mostrar bits
- Campos de bits en C
- ¿Diferencia entre montón y pila? Escriba una función para determinar si la pila aumenta o disminuye.
- Pérdida de memoria
Programa C para
- Revertir bits en un número.
- Cuente el número de bits establecidos en un byte / palabra / dword / qword
- Intercambia mordiscos en un byte
- Invierte una cadena.
- Imprime los elementos diagonales de una matriz.
- Elimine el espacio en blanco de una cadena en el lugar.
- Eliminar caracteres duplicados de una cadena (“AAA BBB” -> “A B”)
- Encuentra el primer carácter no repetitivo en una cadena (“ABCA” -> B)
- Asignación de memoria dinámica de una matriz 2D
- Transposición de una matriz
- Diferentes formas de intercambiar dos números.
- Encuentre el tamaño de un tipo de datos sin el operador sizeof.
- Encuentra little endian o big endian.
- imprime los números del 1 al 100. Pero para los múltiplos de tres imprime “Fizz” en lugar del número y para los múltiplos de cinco imprime “Buzz”. Para números que son múltiplos de tres y cinco, imprime “FizzBuzz”.
Estructuras de datos
- Lista vinculada y sus sabores
- Pila: implementación mediante matrices y lista vinculada
- Cola: implementación mediante matrices y lista vinculada
- Implemente las siguientes funciones para un árbol binario:
Insertar
PrintInOrder
PrintPreOrder
PrintPostOrder
Implemente un PrintInOrder no recursivo
Algoritmos
- Conozca la complejidad del tiempo y el espacio de los algoritmos básicos
- Algoritmos de clasificación y búsqueda.
- Invertir una lista vinculada, lista vinculada circular
- Para encontrar factorial con y sin recursividad.
- Identificar el triángulo de Pitágoras.
- Para identificar palíndromo.
- Para generar la secuencia de Fibonacci.
- Averigüe si una lista vinculada tiene un ciclo. Ahora hágalo sin marcar nodos (detectar bucle en la lista vinculada)
- Encuentra el medio de una lista vinculada. Ahora hazlo mientras solo revisas la lista una vez (la misma solución que encontrar ciclos)
Arquitectura de la computadora: microprocesador, microcontroladores (8051), ARM, DSP y otros periféricos / controladores SoC
- CISC Vs RISC
- Harvard vs Von Neuman Architecture
- Taxonomía de Flynn
- DMA VS sondeo vs interrupciones
- E / S mapeadas E / S frente a E / S mapeadas en memoria
- Memoria virtual
- Tubería
- Paralelismo a nivel de instrucción, Paralelismo a nivel de hilo.
- Arquitectura Superscalar, Arquitectura VLIW, Arquitectura EPIC, SMT y Multi-core
- RAM Vs ROM
- Varios modos de direccionamiento en 8086
- ¿Qué son las interrupciones? Tipos de interrupciones?
- ¿Qué es el ISR?
- ¿Cuál es el tipo de retorno de ISR?
- ¿Podemos usar cualquier función dentro de ISR?
- ¿Podemos usar printf dentro de ISR?
- ¿Podemos poner un punto de interrupción dentro de ISR?
- ¿Qué es la latencia de interrupción?
- Tipos de mapeo de caché.
- ¿Qué es Snooping Cache?
- Temporizador de vigilancia
- Restablecimiento de apagado (COP Timer), reinicio de encendido
- Controlador DRAM / SDRAM
- Controlador e-Flash
- Controlador de interrupción
- Temporizadores
- Controlador DMA
Sistema operativo / Conceptos en tiempo real
- ¿Cuándo necesitas un sistema operativo?
- ¿Cuándo necesitas un RTOS?
- RTOS VS Tiempo compartido OS?
- Da algunos ejemplos de GPOS y RTOS.
- Soft en tiempo real vs Hard en tiempo real
- ¿Qué es el tiempo real y qué es RTOS?
- Diferencia entre varios núcleos. kernel monolítico, micro kernel, nano kernel, exo kernel, kernel híbrido, kernel de recursos.
- ¿Qué es la inversión prioritaria? ¿Por qué ocurre la inversión prioritaria y sus soluciones?
- ¿Qué es la herencia prioritaria?
- Proceso vs hilos
- Mecanismos de IPC
- Subprocesos: mutex, semáforo, variables condicionales
- Programación preventiva vs no preventiva
- ¿Qué es la programación? ¿Y sus tipos?
- ¿Qué es la programación prioritaria?
- ¿Qué es el super loop?
- Estados del proceso
- Paginación de demanda
- Núcleo
- Hilo
- ¿Qué son los controladores de dispositivo?
- ¿Qué son las interrupciones?
- ¿Qué son los programadores a corto, mediano y largo plazo?
- ¿Qué es SMP (multiprocesamiento compartido)?
- ¿Qué es el cambio de contexto?
- ¿Cuál es la información en el PCB?
- ¿CPU Bound vs I / O Bound?
- Diseño de memoria de un proceso
- Múltiples hilos
- ¿Punto muerto?
- ¿Condiciones para un punto muerto?
- ¿Detectar y evitar puntos muertos?
- Livelock?
- Spinlock?
- ¿Condición de carrera?
- Semáforos?
- Mutex?
- Semáforo binario vs Semáforo de conteo
- Semáforo vs Mutex
- ¿Diferencia entre mutexes y secciones críticas?
¿Qué son las cerraduras reentrantes? Implemente un bloqueo reentrante con mutexes. - Paginación
- Segmentación
- Intercambiando
- Fragmentación
- Paliza
- ¿Qué es la mitad superior y la mitad inferior de un núcleo?
Conceptos de Linux
- Comandos de Linux
- ¿Cuáles son los diferentes tipos de shell y por qué bash?
- API POSIX. ¿En qué se diferencian los subprocesos de los hilos RTOS?
Comunicación / DSP / Conceptos de redes
- Muestreo, período de muestreo y frecuencia de muestreo
- frecuencia de corte
- Ancho de banda de frecuencia
- Teorema de Nyquist
- Aliasing y Anti-aliasing
- Relación señal a ruido
- Truncamiento / redondeo
- Circunvolución
- Correlación
- FFT
- FIR, Filtros IIR
- Capas OSI
- Capas TCP / IP
- ¿Diferencia entre TCP y UDP? ¿Cuándo quieres usar uno sobre el otro?
- Piggybacking
- ARP
- DHCP
- Otros conceptos básicos de comunicación.
Protocolos de comunicación de corto alcance inalámbricos y en chip / placa
- I2C
- SPI
- PUEDE
- LIN
- UART
- Bluetooth (Bluetooth de baja energía)
- Ethernet
- IEEE 802.11
- ZigBee
- PCI
- LORA
- Zwave
- LTE
Conceptos de diseño analógico y digital – FPGA / ASIC
- Chanclas diferentes, contadores.
- Circuito secuencial, circuito combinacional.
- Conversión hexadecimal binaria a octal.
- ¿Qué son Fan in y Fan out?
- ¿Qué es la lógica Tristate?
- ¿Qué son los niveles de error?
- ¿Tiempos de transición en la puerta?
- MUX, DEMUX, codificador, decodificador
- Implemente algunos cicuit con transistor y conceptos básicos de amplificador operacional.
- Circuito divisor de frecuencia.
- Dibuje una forma de onda de 200Hz y luego dibuje una forma de onda de 50 Hz con referencia a 200Hz.
- Flujo de diseño VLSI
- DAC
- PWM
- ADC: resolución de bits durante la conversión.
- PLL, amplificadores operacionales, MUX analógico.
- Diseño de puertas básicas usando NMOS y PMOS.
- Dibuje el amplificador de ganancia de corriente usando BJT y MOSFET.
General
- Preguntas de tu proyecto. ¿Cómo conectó ese sensor en particular a la placa? Cualquier protocolo? ¿Frecuencia de reloj del controlador usado? pinouts de los sensores?
- ¿Por qué elegiste ese controlador para tu proyecto y por qué no el otro?
- ¿Cómo va a depurar un programa?
- ¿Qué hacer si su software en el SoC se cuelga?
- Uso de JTAG?
- Programación en el sistema?
- ¿Cómo se utiliza el osciloscopio, el analizador lógico, el analizador de espectro, el CANanalyzer?
- ¿Diferencia entre un BIOS y un proceso de arranque UEFI?
- ¿Diferencia entre un arranque de PC y un arranque de teléfono inteligente?
- Escribir código portátil en C.
- ¿Cómo se hace el código de ensamblaje en línea en C?
- ¿Explicar cómo funciona la memoria compartida? (Un buen candidato conocerá detalles como por qué los punteros se almacenan como compensaciones y cómo proteger las regiones de memoria utilizando semáforos).
- ¿Qué sucede en una llamada al sistema? (Una buena respuesta incluirá una descripción de las interrupciones del procesador y cómo las maneja el hardware, las decisiones de programación, los parámetros de clasificación, etc. (Para los programadores integrados, se puede sustituir una pregunta relacionada con operaciones concurrentes).
- ¿Cómo leerías en una cadena de longitud desconocida sin arriesgar el desbordamiento del búfer?
- ¿Qué es ABI / API?
Si desea impresionar al entrevistador, intente escribir dos soluciones para los rompecabezas C. 1. La solución más obvia y simple y 2. Código C ofuscado
Antes de buscar las respuestas, simplemente presiona el voto a favor. Gracias.
La mejor de las suertes !!