투잡뛰는 개발 노동자

[No programador, sobrevivir como desarrollador] 14. Resumen de las preguntas frecuentes en entrevistas técnicas para desarrolladores principiantes

Creado: 2024-04-03

Creado: 2024-04-03 20:38

No graduado en informática, sobreviviendo como desarrollador


#14. Contenido frecuente en entrevistas técnicas para desarrolladores principiantes


[Áreas de la memoria principal]

  • Área de código: área donde se almacena el código fuente del programa. La CPU obtiene las instrucciones (fuente, funciones, sentencias de control) almacenadas en el área de código para procesarlas. Por ejemplo, cuando un programa escrito en C se ejecuta, el código fuente de ese programa se almacena en el área de código.
  • Área de datos: área donde se almacenan las variables globales y estáticas. Se asigna con el inicio del programa y no se destruye hasta que finaliza. Por ejemplo, cuando un programa escrito en C se ejecuta, las variables globales o estáticas declaradas en ese programa se almacenan en el área de datos.
  • Área de pila: área de memoria temporal que utiliza el programa. Las variables locales y los parámetros relacionados con la llamada a la función se almacenan aquí. Se asigna con la llamada a la función y se destruye cuando la función finaliza. Por ejemplo, cuando se llama a una función escrita en C, las variables locales o los parámetros que utiliza esa función se asignan al área de pila.
  • Área de montón: área donde el usuario asigna y libera dinámicamente el espacio de memoria. Por ejemplo, cuando se asigna memoria dinámicamente utilizando la función malloc() en C, el área de memoria asignada se almacena en el área de montón.

[Estructura de datos]

  • Pila: estructura de datos que utiliza el método LIFO (Last In, First Out). Por ejemplo, el botón 'Atrás' en una computadora es similar a una pila. Las páginas visitadas anteriormente se almacenan en la pila y, al presionar el botón 'Atrás', la página almacenada más recientemente se extrae y se muestra, al igual que en una pila.
  • Cola: estructura de datos que utiliza el método FIFO (First In, First Out). Por ejemplo, obtener un número de espera en un banco y unirse a la fila de espera es similar a una cola. La persona que llega primero es atendida primero y la que llega al final es atendida al final, al igual que en una cola.
  • Árbol: estructura de datos que representa datos en una jerarquía. Por ejemplo, el DOM (Document Object Model) de HTML es similar a un árbol. La estructura de una página HTML se representa como un árbol, comenzando con el nodo raíz, la etiqueta html, y luego se muestran los nodos secundarios de forma secuencial.
  • Montículo: uno de los tipos de estructuras de árbol binario, se divide en montículo máximo y montículo mínimo. Por ejemplo, en una cola de prioridad, los datos con la prioridad más alta se ubican en el nodo raíz del montículo y los datos con la siguiente prioridad más alta se ubican en los nodos secundarios, este es un ejemplo de un montículo máximo.

[RDBMS y NoSQL]

  • RDBMS: base de datos que define y gestiona los datos de forma estructurada con un esquema estricto. Los datos se pueden almacenar de forma distribuida y es fácil de modificar. Por ejemplo, MySQL, Oracle y MS-SQL son ejemplos representativos de RDBMS.
  • NoSQL: base de datos que almacena y gestiona datos con un esquema flexible. Es adecuada para el procesamiento y almacenamiento de grandes cantidades de datos, y también tiene una alta escalabilidad. Por ejemplo, MongoDB, Cassandra y HBase son ejemplos representativos de NoSQL.

[Orientación a procedimientos y orientación a objetos]

  • Programación orientada a procedimientos: técnica de programación que prioriza el procesamiento secuencial. Los lenguajes como C y Pascal son lenguajes orientados a procedimientos.
  • Programación orientada a objetos: método para procesar datos y procedimientos de forma lógica vinculándolos en el concepto de objeto. Los lenguajes como Java, C++ y Python son lenguajes orientados a objetos. Por ejemplo, en un programa de simulación de automóviles, el automóvil se expresa como un objeto, y las propiedades que tiene el automóvil (color, aceleración, etc.) se expresan como datos, y las funciones que realiza el automóvil (conducir, detenerse, etc.) se expresan como métodos.

[Sobrescritura y sobrecarga]

  • Sobrescritura: es redefinir y utilizar un método que tiene una clase principal en una clase secundaria. Cuando se llama a un método de una clase principal desde una clase secundaria, se ejecuta el método redefinido en la clase secundaria en lugar del método de la clase principal. Por ejemplo, el método toString() en Java es un ejemplo de sobrescritura.
  • Sobrecarga: es definir varios métodos con el mismo nombre pero con diferentes tipos y número de parámetros para responder a varias llamadas de tipo. Varios métodos con el mismo nombre pero diferentes parámetros funcionan. Por ejemplo, el método print() en Java es un ejemplo de sobrecarga.

[Algoritmo de reemplazo de páginas]

  • FIFO: reemplaza la página que ha estado cargada en la memoria física durante más tiempo. En una computadora, 'cerrar desde la barra de tareas' también es similar al algoritmo FIFO. Al igual que cerrar el programa que se ejecutó primero al final, se muestra y se cierra.
  • LRU: reemplaza la página que no se ha utilizado durante más tiempo. Una 'aplicación para cerrar aplicaciones' que cierra las aplicaciones antiguas entre las aplicaciones que no se utilizan con frecuencia también es similar al algoritmo LRU.
  • LFU: reemplaza la página con el menor número de referencias. Por ejemplo, la función 'cerrar pestaña' que cierra la pestaña que se usa con menos frecuencia entre las pestañas recién abiertas en el navegador también es similar al algoritmo LFU.
  • MFU: reemplaza la página con el mayor número de referencias. El algoritmo MFU no se utiliza mucho.

[Proceso y subproceso]

  • Proceso: unidad de trabajo de ejecución asignada por el sistema operativo, que significa programa. Cuando se ejecutan varios procesos simultáneamente, cada proceso recibe un área de memoria y una CPU independientes.
  • Subproceso: unidad de ejecución que funciona dentro de un proceso y comparte los recursos asignados al proceso. Por ejemplo, cada pestaña en un navegador web funciona como un subproceso, no como un proceso.

[OSI 7 capas]

  • Capa de aplicación: capa que conecta al usuario con la red. Incluye protocolos como HTTP, FTP y SMTP.
  • Capa de presentación: capa que define la forma de representar los datos. Incluye protocolos como JPEG, MPEG y SSL.
  • Capa de sesión: capa que gestiona la sesión entre dos sistemas que se comunican.
  • Capa de transporte: capa que se encarga de la transmisión de datos. Incluye protocolos como TCP y UDP.
  • Capa de red: capa que establece la ruta para la transmisión de datos. Incluye protocolos como IP e ICMP.
  • Capa de enlace de datos: capa que transmite datos mediante una dirección física (dirección MAC). Incluye protocolos como Ethernet y Token Ring.
  • Capa física: capa que se encarga de la conexión física y la comunicación del medio de transmisión.

[TCP y UDP]

  • TCP: servicio orientado a conexión que transmite datos de forma fiable. Establece o libera la conexión mediante el protocolo de enlace de 3 vías y el protocolo de enlace de 4 vías. Por ejemplo, cuando se inicia sesión en un sitio web o se transfieren archivos, se utiliza el método TCP.
  • UDP: servicio no orientado a conexión que no pasa por un procedimiento de señal para la transmisión de datos. La confiabilidad de los datos es baja, pero se caracteriza por su alta velocidad de procesamiento. Por ejemplo, en el caso de transmisión de video en línea o juegos en línea, donde la velocidad de transmisión es importante, se utiliza el método UDP.

Comentarios0