Red de conocimiento de abogados - Derecho de sociedades - Has estudiado informática durante casi un año y solo sabes un poco del lenguaje C. ¿Aún dices que eres un estudiante de TI?

Has estudiado informática durante casi un año y solo sabes un poco del lenguaje C. ¿Aún dices que eres un estudiante de TI?

Hola a todos, soy Latiao.

Índice de contenidos

1. Etapa introductoria de C/C++

Vídeo de aprendizaje recomendado: Punto de entrada básico de C++ sitio B Little Turtle

2. C /Desarrollo Avanzado de C++

Recomendación de video de aprendizaje: Curso gratuito MOOC Avanzado de C++

3. Desarrollo Avanzado de C++

Video tutorial: Programación MOOC de la Universidad China

4. Sistema operativo

Enlace tutorial: 6.828: Ingeniería de sistemas operativos

5. Base de datos

Vídeo tutorial: Base de datos MySQL de Desde entrada a cursos prácticos de CSDN

6. Red de computadoras

Enlace del tutorial: Preguntas del examen de redes de computadoras Niuke.com

Recientemente vi esta pregunta en un sitio web suyo. La pregunta es la siguiente:

Soy un estudiante de primer año en informática a finales de 985. He estado siguiendo la escuela y aprendí el lenguaje C en el primer semestre y el siguiente semestre. Siento que después de aprender, solo escribiré algunos problemas matemáticos simples o un sistema de gestión simple o algo así. Ni siquiera sé qué es un entorno de configuración. Pero muchos de los estudiantes que me rodean pueden escribir juegos o sitios web con páginas ricas, y algunos incluso trabajan en proyectos. ¿Soy demasiado bueno en eso? Quiero aprender por mi cuenta pero todavía no tengo una dirección. No sé qué es el front-end web o github, ni sé sobre el front-end o el back-end. ¿a través del autoestudio?

Buen chico, no sé cómo responder a esta pregunta. No soy un profesional y no sé cómo mejorar. ¿Cómo puedo recopilar contenido de aprendizaje para ti? , practica más y haz más.

Cuando comenzamos, aprendemos principalmente a desarrollar el pensamiento de programación y habilidades prácticas, y tenemos una comprensión profunda de los métodos de pensamiento orientados a procesos y objetos, esto es muy importante para la futura carrera. de programadores!

Entonces, aprender el lenguaje es más importante:

Ideas de programación orientada a objetos; encapsulación, construcción y destrucción de clases, miembros estáticos, construcción de clases (constructor paramétrico, sin argumentos); construcción, construcción de copias, constructor predeterminado) y destrucción de objetos, funciones amigas, clases amigas, sobrecarga de operadores; análisis del modelo de gestión de objetos del compilador C++ (nuevas/eliminaciones de clases amigas); (operadores unarios, operadores binarios, dificultades en la sobrecarga de operadores, sobrecarga de operadores en el desarrollo de proyectos, herencia múltiple y su ambigüedad, herencia virtual (concepto, significado, análisis de principios, casos polimórficos, funciones virtuales puras); , clases abstractas (casos de ideas de programación de clases abstractas, plantillas de funciones, plantillas de clases, herencia de plantillas);

Conversión de tipo C++; flujo de entrada y salida de C++ (e/s de flujo de caracteres de E/S de archivo estándar, manejo de excepciones de C++ (mecanismo de excepción, tipo de excepción, variable de excepción, jerarquía de excepciones, excepción estándar); Biblioteca); utilice algunas herramientas de desarrollo IDE: como la serie VC en la plataforma Windows: VC++6.0 (relativamente antigua); Visual Studio2013, Visual Studio2015, Visual Studio2017, Visual Studio2019 en la plataforma Mac y CodeBlock, con algunas avanzadas; Configuraciones comunes de los editores Notepad++, EditPlus, UE y otras herramientas de desarrollo y el uso de algunas teclas de acceso directo comunes.

Se recomiendan los dos libros siguientes en esta etapa:

"Essential C++" Este es un libro introductorio pequeño pero muy práctico sobre C++ que enfatiza cómo comenzar rápidamente y comprender la programación en C++. Este libro se centra en una serie de problemas de programación cada vez más complejos y las características del lenguaje utilizado para resolverlos. No sólo aprenderá las funciones y estructuras de C++, sino también su propósito de diseño y principios básicos.

"C++ Primer" Este libro proporciona una explicación completa y autorizada de los conceptos básicos, las técnicas y el estilo de programación C++ moderno de C++. Es la mejor guía para principiantes en C++. Este libro Los libros pueden ayudarle a escribir programas prácticos sin dominar primero todos los detalles del idioma. Para programadores intermedios y avanzados, este libro también es un libro de referencia indispensable.

En la segunda etapa del aprendizaje, es más importante. El camino avanzado del desarrollo de C ++ es una moneda de cambio para encontrar un trabajo con un salario decente.

STL avanzado de C++:

STL = Biblioteca de plantillas estándar, que es la biblioteca de plantillas estándar. Esta es una gran herramienta para mejorar la eficiencia del desarrollo. Al estudiar esta etapa, debe dominar habilidades de programación genéricas, comprender el modo de aplicación de clases contenedoras en lenguaje C++ y dominar el uso de todas las clases STL.

Patrón de diseño avanzado de C++:

El factor más importante que determina el éxito o el fracaso de un proyecto es el diseño general del proyecto. A través de esta etapa de estudio, puedes dominar un. Un aspecto importante de la programación orientada a objetos es la habilidad de modelar antes de codificar. Modo singleton; modo de fábrica; modo de agente; modo de iteración, etc.

Conceptos básicos avanzados de la estructura de datos de C++:

Esta es la parte más importante que se debe aprender en todos los lenguajes de programación y una de las bases de la composición de programas. Almacenamiento secuencial, almacenamiento encadenado, listas circulares enlazadas;

Listas doblemente enlazadas, pilas (secuenciales y encadenadas), colas (secuenciales y encadenadas);

Aplicaciones de pila, conceptos básicos de árboles y recorrido, árbol binario;

Algoritmo de clasificación, algoritmo de unión, selección, inserción, rápido, Hill.

Se recomiendan los siguientes libros en esta etapa:

"Effective C++" y "More Effective C++" están escritos por Scott Meyers. Debe leerlos detenidamente y comprender claramente cada elemento. El libro está organizado en torno a 55 principios, cada uno de los cuales presenta un método que le permite escribir mejor código de programa C++ y se analiza en detalle con ejemplos especialmente diseñados.

"C++ excepcional (Análisis de programación en C++)" y "C++ más excepcional" contienen 40 preguntas de programación en C++ que perfeccionarán sus habilidades y eventualmente se convertirán en un excelente programador de C++. . Herb Sutter selecciona cuidadosamente estas preguntas y son consistentes con el estándar oficial ISO/ANSI C++ para ayudar a los programadores a mantener un buen estilo en el proceso de diseño, arquitectura y codificación, haciendo así que el software C++ escrito sea más robusto y eficiente.

"Dentro del modelo de objetos de C++ (exploración en profundidad del modelo de objetos de C++)" Este libro se centra en el mecanismo subyacente de la programación orientada a objetos de C++, incluida la semántica estructural y la generación de objetos temporales, encapsulación, herencia y virtual: las funciones virtuales y la herencia virtual lo ayudan a comprender la implementación subyacente del programa para que pueda escribir código más eficiente.

"El diseño y evolución de C++ (El diseño y evolución del lenguaje C++)" El autor de este libro es también el diseñador del lenguaje C++, Bjarne Stroustrup. El autor lo presenta exhaustivamente en el libro. Cubre la historia del desarrollo de C++, el significado esencial y los antecedentes de diseño de varios mecanismos importantes en C++, los propósitos básicos y los métodos de uso de estos mecanismos, analiza los campos de aplicación adecuados para C++ y sus perspectivas de desarrollo futuro. , sin descuidar detalles clave, sin empantanarse demasiado en detalles técnicos.

Esta etapa va casi acompañada de toda la carrera posterior en el lugar de trabajo. Solo hay mejores, pero no mejores. El camino para convertirse en un maestro de C++ tiene un largo camino por recorrer. !

Algunas habilidades de C++ que deben dominarse en esta etapa:

Desarrollo avanzado de C++ QT:

Domine la arquitectura de la biblioteca de clases QT y el modelo de desarrollo de interfaz gráfica; dominar las habilidades de desarrollo de QT, mecanismo de mensajes, procesamiento de gráficos; dominar la programación de redes QT, UDP, uso de TCP; dominar los métodos de procesamiento de archivos QT, dominar la tecnología de trasplante de QT en diferentes plataformas de Windows, Linux, iOS y Android; > Servidor de red avanzado C++ Windows/Linux:

Domine los métodos de desarrollo de la plataforma Unix/Linux; sea competente en el uso de llamadas del sistema; sea competente en la gestión de memoria, procesos y programación de subprocesos de MFC; desarrollo, programación de redes; familiarizado con los métodos de desarrollo de servidores de red, competente en la escritura de programas de servicios de red TCP y UCP; dominio del uso de modelos IO síncronos/asincrónicos en la programación de redes;

Desarrollo avanzado de bases de datos C++:

Domina las habilidades prácticas del lenguaje SQL. Cómo utilizar bases de datos Oracle y MySQL.

Si domina las habilidades enumeradas anteriormente, tiene la capacidad de resolver problemas complejos y dificultades técnicas y puede desarrollar de forma independiente algunos módulos funcionales más complejos, entonces C ++ no será nada difícil. ¡cosa!

Hay muchos cursos abiertos excelentes sobre sistemas operativos en el extranjero, como mit6.828 y Haval OS/161. Este tipo de curso le proporcionará un programa shell mini os, que equivale a un componente central, y podrá reproducir el resto libremente. Por ejemplo, puede diseñar gestión de subprocesos, sistema de archivos, etc. En comparación con simplemente leer libros sobre sistemas operativos, ¡este método de aprendizaje es 100 veces más eficiente!

En China, se dice que la base de datos es mysql.

Primero, echemos un vistazo general al sistema de conocimiento de MySQL:

Conceptos básicos:

Ajuste:

Principios básicos:

Arquitectura, operación y mantenimiento:

Dos libros recomendados:

1. "Must Know and Must Know MySQL" Este libro es muy completo, desde conceptos básicos hasta consultas. Para insertar Hay ejemplos específicos de nuevas tablas y administración de usuarios, que son muy adecuados para estudiantes sin ninguna base para aprender Mysql. En resumen, el método de aprendizaje de este libro es: 1. Comprender los conceptos básicos de las bases de datos en diez minutos. Encuentre una base de datos para practicar 3 y escriba de acuerdo con el contenido anterior. También hay mucho contenido sobre SQL en este libro, que se puede leer junto con el tutorial de SQL del W3C.

2. El libro "Conceptos del sistema de base de datos" es una lectura obligada para los administradores de bases de datos.

Después de leerlos y practicar + pensar, puedes empezar.

A continuación, para los niños que quieran aprender más:

Recomiendo varios libros (muchos expertos recomiendan este), "High-Performance MySQL (3rd Edition)", "MySQL Technology" "Insider (4.a edición)", "Motor de almacenamiento InnoDB de MySQL Technology Insider", "Comprensión profunda de MySQL" y el sitio web oficial de MySQL. Después de leer estas cosas y agregar una rica experiencia, en teoría, tendrá el nivel de DBA.

¡El conocimiento de la red es muy, muy importante después del trabajo!

Lo presentaré en tres etapas:

1. Primeros pasos

Para el primer libro, recomiendo leer "Conceptos básicos de las redes informáticas" de Xie Xiren.

2. Avanzado

Luego, el segundo libro es "Explicación detallada de TCP/IP 1: Protocolo. En esta etapa, debe pensar más y más". Para aprender más sobre el papel de la red en el sistema LINUX, es más vívido y vívido, por lo que cuando estudie, es mejor aprender LINUX y usarlo juntos. Recomiendo "La cocina privada de LINUX del hermano Niao: conceptos básicos".

En el proceso de aprendizaje de Internet, debes capturar y analizar paquetes constantemente. Sería perfecto si pudieras escribir algunas aplicaciones simples para enviar paquetes. Herramientas de captura de paquetes recomendadas: utilice TCPDUMP en entorno LINUX y Wirehark en entorno Windows. Después de terminar de escribir y practicar en esta etapa, ya soy un pequeño maestro. .

Las habilidades principales deben ser: Debe estar bastante familiarizado con TCP, IP, DNS, icmp y otros protocolos, y también debe saber algo sobre dhcp/tftp/ftp y otros protocolos. para aprender a analizar un protocolo Las operaciones básicas del sistema LINUX son casi las mismas.

3. Etapa maestra

Esta etapa requiere cierta habilidad de programación, que se refiere a la programación C/C++. La principal dirección de aprendizaje es la implementación de protocolos y los principios arquitectónicos de los protocolos.

En términos de implementación de protocolos, estudia principalmente la implementación de los protocolos subyacentes (refiriéndose a la capa de transporte y a continuación). Implementado a nivel del sistema operativo. El mejor libro de texto es "Explicación detallada de TCP/IP: Implementación". En cuanto a la arquitectura de red, puedes estudiar el libro "Red de computadoras".

Publique los salarios y beneficios de los puestos relevantes en la contratación escolar de 2020 de las principales empresas de Internet: