¿Por qué aprender estructuras de datos en C?
Porque C no oculta nada. Sin listas, mapas ni colas integrados, implementas cada estructura a partir de bloques de memoria y punteros, que es exactamente lo que es la estructura. Después, el HashMap de Java y el dict de Python son las mismas ideas con la gestión de memoria ya resuelta, y puedes razonar sobre lo que cuestan.
¿Qué debo saber antes de aprender estructuras de datos en C?
Punteros, structs, arrays, y malloc y free. Sobre todo punteros: una lista enlazada es una cadena de campos struct node *next, y un árbol binario tiene dos por nodo. Si los punteros todavía te cuestan, el curso de C de Coddy los cubre primero, gratis.
¿Cómo se implementa una tabla hash en C?
Con un array de cubetas, una función hash que convierte una clave en un índice y una regla para cuando dos claves caen en la misma cubeta: normalmente una lista enlazada por cubeta (encadenamiento) o el sondeo de la siguiente posición libre. Cuando la tabla se llena por encima de un factor de carga fijado, reservas un array más grande y vuelves a insertarlo todo. El curso de tabla hash del paso uno construye una desde cero.
¿Es C un buen lenguaje para las entrevistas de programación?
Pocos candidatos hacen entrevistas en C fuera de los puestos de sistemas embebidos y de programación de sistemas, porque escribir una tabla hash desde cero en mitad de una entrevista cuesta un tiempo que otros lenguajes te dan gratis. Aun así, el conocimiento se transfiere por completo, y C++ está a un paso: la misma sintaxis, más la STL. Un camino habitual es aprender las estructuras en C y después hacer los paquetes de entrevista en C++, Java o Python, todos ellos disponibles en esta ruta.
¿Qué cursos de esta ruta no se enseñan en C?
Tres: la programación dinámica y la serie de entrevistas en Python se enseñan en Python, y la manipulación de bits en C++. Aparecen después de los pasos, cada uno con un enlace que lo abre en su propio lenguaje. De los tres, el de manipulación de bits es el más fácil de seguir desde C: C++ conservó los &, |, ^, ~, << y >> de C tal cual.
¿Debo aprender estructuras de datos en C o en C++?
C para entender las estructuras, C++ para usarlas. En C lo construyes todo, y por eso tantas carreras enseñan la materia en C; en C++ construyes cada estructura una vez y luego recurres a la STL, y por eso lo usan los programadores competitivos. Empezar en C y pasar a C++ no te hace perder nada.