¡La guía de autoaprendizaje más completa sobre conceptos básicos de informática!

La guía de autoaprendizaje más completa sobre conceptos básicos de informática es la siguiente:

1. Estructura de datos y algoritmo

Programa = estructura de datos + algoritmo.

Las estructuras de datos a menudo se colocan junto con algoritmos. Algunos colegios y universidades tienen dos cursos, a saber, "Estructura de datos" y "Diseño y análisis de algoritmos".

Esto ha causado confusión entre muchos estudiantes. ¿Cuál es la diferencia entre estructuras de datos y algoritmos? Algunos estudiantes incluso piensan que esto es un problema.

En realidad:

La estructura de datos describe principalmente la forma de organización de los datos. Así es como se almacenan estos datos, por eso existen matrices, listas enlazadas, pilas, colas, árboles y gráficos, que son los puntos clave de las estructuras de datos.

Los algoritmos, por otro lado, se centran en las ideas. Por ejemplo, cómo ordenar los elementos de una matriz, cómo encontrar el número más grande y el número más pequeño, etc. Para decirlo sin rodeos, es la forma de resolver los problemas en la realidad. Por eso existen algoritmos como la programación codiciosa y dinámica.

No importa lo que pienses sobre las estructuras de datos y los algoritmos, ¡debes estudiarlos detenidamente! Ya sea una entrevista o un examen de ingreso de posgrado, ¡es imprescindible!

Resumamos algunos puntos de conocimiento importantes para que podamos estudiar de manera específica.

Análisis de complejidad

Complejidad del tiempo

Complejidad del espacio

La primera lección para aprender estructuras de datos y algoritmos, siempre selecciono el análisis de complejidad. En mi opinión, este es el punto de conocimiento más importante en estructuras de datos y algoritmos y no acepta ninguna refutación.

Recomendación de artículo:

¡Enseñanza al estilo niñera! Aprenda a fondo la complejidad del tiempo y la complejidad del espacio.

Estructura de datos

Matriz: Una matriz es un tipo de datos agregado, que es una colección de varias variables del mismo tipo organizadas en secuencia.

Lista enlazada: Una lista enlazada es una estructura de datos en la que los elementos de datos se almacenan en una estructura de almacenamiento enlazada, que se caracteriza por una discontinuidad física.

Pila: La pila es una tabla lineal especial que solo puede insertar y eliminar nodos de datos en el extremo fijo de la tabla.

Cola: La cola es una tabla lineal especial similar a la pila. A diferencia de una pila, una cola solo permite inserciones en un extremo de la tabla y eliminaciones en el otro extremo.

Tabla hash: la tabla hash se deriva de la función hash. La idea es que si hay un registro con la misma clave que T en la estructura, se debe encontrar en la ubicación de almacenamiento de F (T), de modo que el registro buscado se pueda obtener directamente sin comparación.

Montón: el montón es una estructura de datos especial en forma de árbol. El montón que se suele analizar es el montón binario.

Árbol: El árbol es una estructura típica no lineal. Es un conjunto finito k con dos nodos.

Gráficos: Los gráficos son otra estructura de datos no lineal. En una estructura de gráfico, los nodos de datos generalmente se denominan vértices y los bordes son pares de vértices pares ordenados.

Estructura de datos de operación

Búsqueda: busque nodos que cumplan condiciones específicas en la estructura de datos. Normalmente, dado el valor de un campo, busque el nodo con ese valor de campo.

Insertar: Añade un nuevo nodo a la estructura de datos.

Eliminar: Elimina el nodo especificado de la estructura de datos.

Modificar: Cambia el valor de uno o más campos del nodo especificado.

Ordenar: reorganiza los nodos en el orden especificado. como aumentar o disminuir.

Libros recomendados sobre estructura de datos

Habla sobre estructura de datos, estructura de datos y análisis de algoritmos.

En comparación con libros de estructura de datos similares en el mercado, este libro "Dahua Data Structure" es más interesante y fácil de leer, y las explicaciones del algoritmo son detalladas y profundas.

Es un material de lectura muy adecuado para el autoestudio.

Este libro está narrado de una manera interesante, citando una gran cantidad de conocimientos de la vida como analogías y haciendo pleno uso del lenguaje gráfico para reflejar el contenido abstracto. También realiza un análisis línea por línea de algunos. algoritmos clásicos involucrados en estructuras de datos, y se realizaron comparaciones con varios algoritmos.

Si aún no puedes entender, puedes mirar mi imagen. Aunque es un poco lenta, definitivamente es fácil de entender:

Matriz: la pequeña bola encontró la. Waterloo de la matriz. El entrevistador sugirió regresar al pueblo para criar animales.

Lista enlazada: ¡La lista enlazada se puede entender con sólo unos pocos trazos!

Pilas y colas: ¡Humph! ¡Quédate en la "pila" y haz cola!

Cuerdas: ¿Conoces las cuerdas?

Algoritmos

La rutina para aprender algoritmos es muy sencilla. Lee más, escribe más y usa más el ordenador.

Algoritmo de retroceso

Algoritmo de divide y vencerás

Algoritmo de enumeración

Algoritmo codicioso

Programación dinámica

Algoritmo de búsqueda

Búsqueda binaria

Búsqueda en tabla hash

Búsqueda de estructura de árbol

Coincidencia de cadenas

Coincidencia violenta

Algoritmo de Knuth Morris Pratt

Los 10 mejores algoritmos de clasificación

Clasificación de burbujas

Método de clasificación por selección

p>

Clasificación por inserción

Clasificación de shell

Clasificación por fusión

Clasificación de montón

Clasificación rápida

Clasificación de conteo

Clasificación por Radix

Clasificación de cubos

Recomendaciones de libros de algoritmos

Diagrama de algoritmos

Ejemplos enriquecidos, Con imágenes y textos, esta es una introducción novedosa a los algoritmos.

Ya sea un programador profesional, un entusiasta de la programación o un estudiante de informática que necesita revisar algoritmos, este libro es su mejor opción.

Los primeros tres capítulos del libro lo ayudarán a sentar una base sólida y lo llevarán a aprender el método de búsqueda binaria, la representación de O grande, dos estructuras de datos básicas y la recursividad.

Las páginas restantes presentarán principalmente algoritmos ampliamente utilizados, que incluyen: técnicas de resolución cuando se enfrentan problemas específicos, cuándo usar algoritmos codiciosos o programación dinámica; aplicación del algoritmo de gráfico hash;

Algoritmos (cuarta edición)

Un libro de referencia clásico en el campo de los algoritmos, que cubre el sistema de conocimiento central de los algoritmos que ha evolucionado durante décadas.

El libro explica una variedad de algoritmos y estructuras de datos, lo que le permite implementarlos, depurarlos y aplicarlos en diversos entornos informáticos.

Como libro de referencia clásico en el campo de los algoritmos, este artículo presenta de manera integral el conocimiento necesario de los algoritmos y las estructuras de datos, con una discusión especial sobre la clasificación, la búsqueda, el procesamiento de gráficos y el procesamiento de cadenas.

La cuarta edición ofrece específicamente 50 algoritmos que todo programador debería conocer y comprender, y proporciona códigos reales.

Recomendaciones de tutoriales en vídeo

"Estructura de datos" es impartido conjuntamente por profesores de la Universidad de Zhejiang y el profesor He. Los cursos son excelentes, el sistema es completo, la experiencia de clase es buena, el nivel de dificultad es online y la calidad es buena. Puede aprender muchos métodos y técnicas de pensamiento. Los estudiantes que quieran aprender bien las estructuras de datos no deberían perdérselo.

"Estructura de datos y algoritmo", la característica más importante de este curso es la combinación de teoría y práctica. Aprenderá técnicas algorítmicas para resolver una variedad de problemas computacionales, implementando aproximadamente 100 problemas de codificación algorítmica.

Recomendaciones de sitios web

Si aún te resulta difícil aprender, puedes utilizar los siguientes sitios web para aprender.

Sitio web de visualización dinámica de estructura de datos y algoritmos.

Ejercicio

El aprendizaje de estructuras de datos y algoritmos suele ir acompañado de "resolución de preguntas". Si no hay circunstancias especiales, se recomienda cepillar LeetCode.

Para LeetCode, existen múltiples soluciones a los problemas y, a menudo, buscamos la solución óptima. La siguiente es la solución óptima de LeetCode compilada por personas mayores de Tsinghua. Es muy recomendable:

Dos personas deben sentirse muy cómodas juntas.

2. Principio de composición informática

El principio de composición informática es el principio de "computadora" y "composición".

Creo que es el curso más difícil de todos los cursos básicos de informática. El núcleo de todo el curso es construir una máquina que pueda ejecutar instrucciones de ensamblaje mediante el uso de circuitos lógicos digitales y flip-flops.

Recomendaciones de libros

¿Cómo funciona un ordenador? ¿Cómo funciona el programa?

Precisamente porque los principios de composición informática son relativamente difíciles de aprender, para los principiantes, la elección de libros introductorios para este curso es más amigable que otros cursos.

¿Cómo funciona el ordenador y cómo se ejecuta el programa? Estos dos libros son muy delgados. El autor explica los conocimientos en lengua vernácula, con imágenes y textos, lo cual es bastante bueno para principiantes.

En comparación con la mentalidad de aprender, leo más con una mentalidad curiosa.

¿Cómo funcionan los ordenadores?

Este libro aboga por volver al conocimiento básico de la informática en el mundo actual de rápido desarrollo informático y continua innovación tecnológica. Al explorar la naturaleza de las computadoras, los ingenieros pueden aumentar su interés en las computadoras y captar rápidamente los puntos clave y utilizarlos de manera flexible cuando se enfrentan a las últimas tecnologías complejas.

Cómo se ejecutan los programas

Este libro parte de la estructura interna de la computadora y explica en detalle el binario, la memoria, la compresión de datos, la relación entre los archivos fuente y los archivos ejecutables, los sistemas operativos. y aplicaciones Programas, lenguaje ensamblador, métodos de control de hardware, etc. En forma de ilustraciones. El propósito es permitirle al lector saber qué sucede desde el momento en que el usuario hace doble clic en el ícono del programa hasta el momento en que el programa comienza a ejecutarse.

Recomendación de video

Este video es el primero en promover la serie de cursos "Comprensión profunda de los sistemas informáticos" de la Universidad Carnegie Mellon. ¿No eres bueno en inglés? No importa, hay subtítulos en chino e inglés. Después de ver este video, obtuve con éxito Conocimiento +6.

El libro de texto de apoyo para ver este vídeo es "Comprensión profunda de los sistemas informáticos".

3. Sistema operativo

No importa qué idioma aprendas, no puedes evitar lidiar con el sistema operativo. La ejecución final de todos los lenguajes depende del sistema operativo. Por ejemplo, si aprende Java y utiliza tecnología de subprocesos múltiples, el sistema operativo es en realidad responsable de administrar procesos y subprocesos.

Si no comprende el sistema operativo, no podrá aprender funciones avanzadas de los lenguajes de programación, como la programación de subprocesos, la asignación de memoria o el aprendizaje de conocimientos relacionados con Linux.

Solo aprendiendo el sistema operativo se pueden aprender mejor otros lenguajes y tecnologías. Por tanto, el sistema operativo es un conocimiento profundo para los programadores.

Recomendaciones de libros

Recomendaciones de introducción: Introducción a los sistemas operativos y sistemas operativos modernos.

Serie en profundidad: Comprensión profunda de los sistemas informáticos y comprensión de los sistemas informáticos desde la perspectiva de un programador.

Este es un libro de nivel básico. De hecho, este libro no es "en profundidad" y el contenido es relativamente superficial.

La "amplia cobertura" es en realidad la mayor ventaja de este libro. Nos cuenta cómo están diseñados y funcionan los ordenadores, cuáles son los puntos clave de los sistemas operativos y cuáles son sus funciones.

Después de leer este libro, podemos tener una comprensión racional del modo de trabajo de cada componente del sistema informático. Hasta cierto punto, en realidad se trata de entrenar la forma de pensar: el pensamiento computacional.

Recomendación de vídeo

Sistema operativo, la verdad es que no recomiendo verlo directamente desde el principio. Porque este libro parece realmente aburrido.

Aquí recomendamos los cursos de sistemas operativos de la Universidad de Tsinghua, que se dividen en niveles superior e inferior. Al mirar el video, puede combinarlo con las recomendaciones de libros anteriores.

Puedes ver (1) una introducción a los sistemas operativos y (2) una introducción a los sistemas operativos modernos.

4. Redes informáticas

El conocimiento relacionado con las redes informáticas se utiliza a menudo en el trabajo.

Para aprender sobre redes informáticas, debe comprender la programación de sockets, el modelo de red TCP/IP, la arquitectura de red OSI de siete capas y cómo empaquetar un paquete de datos capa por capa y luego descomprimirlo capa por capa. . Enviado del cliente al servidor.

Pero las redes informáticas son mucho más fáciles de aprender, porque las redes informáticas no son abstractas y se pueden encontrar ejemplos en la vida real.

Recomendaciones de libros

HTTP gráfico

Es fácil de entender con imágenes y textos, y es muy adecuado para comenzar. No es fácil hacer un libro escrito que sea fácil de leer y cubra las principales áreas del conocimiento. Este libro ha hecho eso, desde la cobertura del conocimiento HTTP hasta la legibilidad.

La característica de este libro es que, al mismo tiempo que explica, se complementa con una gran cantidad de vívidas ilustraciones de comunicación para ayudar mejor a los lectores a comprender en profundidad la interacción entre el cliente y el servidor en el proceso de comunicación HTTP.

Red informática

La mayoría de ellos utilizan "Red informática" de Xie Xiren, que es muy bueno y fácil de entender. También es un libro de texto de uso común para el ingreso al posgrado 408. examen.

Recomendación de vídeo

En primer lugar, debemos promover vigorosamente la microclase de redes informáticas del profesor Hu, que es el mejor curso de vídeo en red con animación. Las conferencias del profesor son lógicas y fáciles de entender.

5. Base de datosˌBase de datos

Una base de datos es un lugar donde se almacenan datos, pero no es así de simple.

Para aprender bases de datos, no solo debe conocer las partes básicas de las declaraciones SQL y las estructuras de diseño de tablas, sino también conocer los índices, la optimización lenta de consultas y la optimización de los parámetros de configuración.

Obtenga más información sobre optimización, respaldo y recuperación de SQL, optimización de arquitectura y otro contenido avanzado.

Recomendaciones de libros

Serie introductoria: tutoriales básicos de SQL, guías de estudio de SQL e introducción a los sistemas de bases de datos.

El ritmo de introducción de este libro es más suave y se utilizan ilustraciones en negrita y palabras clave para presentar el conocimiento de manera más vívida, lo que lo hace adecuado para estudiantes sin conocimientos básicos.

Para aquellos que no tienen conocimientos básicos, el curso básico de SQL de Mick es más fácil de entender y aprender, y es muy adecuado para que lo aprendan principiantes.

Serie en profundidad: tecnología MySQL insider-motor de almacenamiento InnoDB, diseño e implementación de Redis.