Red de conocimiento informático - Conocimiento informático - Cómo aprender de forma sistemática y científica conocimientos de programación

Cómo aprender de forma sistemática y científica conocimientos de programación

De hecho, probablemente esté mucho más allá de mi capacidad para responder a tu pregunta. Porque es casi una pregunta al estilo Hamlet sobre qué tipo de aprendizaje se considera un “sistema”; es difícil ponerse de acuerdo en eso.

Así que descartar respuestas casi simplemente crea más controversia. Entonces, al discutir este tema, debo admitir que la siguiente descripción es solo mi pequeña experiencia. Solo espero que pueda serle útil. Estas opiniones no son "autorizadas" ni completamente "correctas".

En términos generales, para los estudiantes de informática, los siguientes cursos son muy críticos:

Recordatorio: preste atención a una profundidad razonable al estudiar y no sea demasiado superficial. Estancarse demasiado en algunos detalles. Para los principiantes, concéntrese en dominar el contenido básico y establecer una comprensión conceptual razonable. El verdadero aprendizaje llega más adelante en su carrera.

1. Conceptos básicos (teoría y hardware)

Esta parte se centra en la teoría básica y la implementación básica de las computadoras. Incluyendo la teoría de la estructura del hardware, así como la interacción entre software y hardware. Comienza con la teoría, profundiza en la parte del lenguaje de máquina y finalmente llega a su clímax en la parte del sistema operativo.

1. El principio de implementación informática del cálculo. Esto incluye cómo los circuitos de puerta implementan los cálculos, cómo los circuitos secuenciales implementan el almacenamiento, cómo la arquitectura de von Neumann combina los dos para lograr una computadora real en el mundo real y cómo refleja la teoría de las máquinas de Turing. Durante este período, aprenderá lógica booleana.

2. Cómo controlar el hardware del ordenador. Las "herramientas" utilizadas en esta parte son el lenguaje de máquina y el lenguaje ensamblador. Necesitamos comprender la naturaleza del lenguaje de máquina y cómo brinda a los programadores la oportunidad de controlar dispositivos de hardware en una forma más comprensible llamada "lenguaje ensamblador". Puedes aprender mucho contenido de muy bajo nivel pero esencial en esta parte.

3. Cómo funciona el sistema operativo. Si comprende los problemas relacionados con el hardware de la computadora en la sección anterior, entonces comprender cómo funciona el sistema operativo no será tan difícil. Además, comprenderá cómo el sistema operativo, como capa intermedia entre el hardware y el software de nivel superior, simplifica enormemente el funcionamiento del hardware por parte de las personas.

2. Avanzado (Sistema de Software)

1. Esto incluye lenguajes de programación estructurados y lenguajes de programación orientados a objetos. Debido a que hay muchas opciones, en realidad puede comenzar con un idioma. Si antes comprende correctamente el hardware y el lenguaje de la máquina, entonces es muy fácil comenzar con el lenguaje C. Si no tiene suerte y encuentra que C es muy difícil, entonces incluso Es. No hay problema para empezar a aprender de Python y Javascript. La atención se centra en comprender los conceptos básicos relacionados con la programación y la sintaxis, y en comprender algunos conocimientos de algoritmos simples.

2. Estructura de datos y algoritmo. Para decirlo sin rodeos, se trata de cómo organizar los datos de manera razonable y simplificar la programación o mejorar la eficiencia del cálculo a través de sus características estructurales. El contenido aquí tiene un patrón y todos necesitan aprender estructuras desordenadas, estructuras lineales ordenadas, estructuras de árbol, estructuras de gráficos, etc. Además, se deben aprender bien los algoritmos de clasificación y los algoritmos de búsqueda, especialmente también se deben practicar y comprender estrategias algorítmicas como recursividad, recursividad, fuerza bruta (exhaustiva), divide y vencerás, programación dinámica, etc. Recuerde, no profundice demasiado en ellos. Es un gran agujero y realmente no puede “dominarlos”.

3. Cómo se implementan los lenguajes de programación. Esto implica principalmente principios de compilación. Cuando se comprende el lenguaje de programación en sí desde la perspectiva de un implementador de lenguajes de programación de alto nivel, de repente muchas cuestiones quedan claras. Esto cambiará profundamente su perspectiva sobre la programación. Desafortunadamente, incluso los buenos estudiantes encontrarán aquí una gran resistencia. El verdadero problema no es lo teórico que es este aspecto, sino que los materiales didácticos son muy pobres, incluidos los libros de texto extranjeros (el Libro del Dragón, el Libro del Tigre y el Libro de la Ballena no están preparados para principiantes), y el lenguaje no es claro. Esto hace que la mayoría de la gente se sienta inexplicable e incomprensible. Si no está interesado en subir a la cima del diseño de software, puede tomar un desvío. De lo contrario, comience con el análisis de operaciones de expresión, introduzca gradualmente variables, tipos, estructuras de control, funciones y luego objetos, cree un analizador paso a paso y luego combínelo con el conocimiento de la interfaz de hardware aprendido anteriormente para convertirlo en una representación de bajo nivel. Finalmente, encontrarás No tan aterrador.

3. Campos Básicos (Conocimientos de Campo Esenciales)

1.

Esta parte incluye el conocimiento básico de la red, los principios de comunicación entre hosts, la implementación de equipos de reenvío y la composición de Internet. Este es el conocimiento básico requerido para la programación de redes. Además de comprender los protocolos de bajo nivel, también debe dedicar algo de tiempo a comprender los protocolos de la capa de aplicación, especialmente SMTP, POP3, FTP, HTTP, etc. La atención se centra en comprender sus principios básicos, no todos los detalles. Debido a que cada protocolo tiene sus propios estándares, el protocolo HTTP por sí solo es suficiente para que puedas estudiar durante más de 6 meses. El énfasis aquí está en los principios.

2. Cómo gestionar grandes cantidades de datos y construir sistemas de información sobre ellos. Las bases de datos son un buen ejemplo. Incluyendo la teoría básica, los principios de implementación y los principios de diseño de sistemas de bases de datos. De manera similar, no se trata realmente de enseñarle cómo construir un sistema de base de datos, sino de aprender sus principios básicos. La atención se centra en aprender cómo diseñar estructuras de tablas de manera razonable e implementar declaraciones de consulta SQL eficientes.

4. Ampliación del campo (conocimientos en campos específicos)

1. Desarrollo de software basado en plataformas específicas. ¿Cómo completar el desarrollo en plataforma Windows, plataforma Linux, plataforma Mac OS o teléfono móvil, tableta, TV o horno microondas? Esto requiere aprender qué interfaces de programación proporciona una plataforma de software específica, cómo compilar e implementar, cómo depurar y probar, etc. Esta parte es la que consume más tiempo en la carrera de un ingeniero de software.

2. Cómo lograr una investigación y desarrollo de software eficaz. Esto incluye conocimientos de diseño de estructuras de software, conocimientos de gestión de procesos de implementación de software, así como algunos contenidos sutiles y complicados. La gente suele utilizar el término ingeniería de software para resumirlo. Pero, de hecho, la estación de ingeniería de software tiene una perspectiva más elevada y solo cubre una pequeña parte de la ingeniería de software.

5. Campos de ciencia y tecnología (conocimientos de investigación)

Si está interesado en la inteligencia artificial, la informática científica y el procesamiento de imágenes, todavía hay grandes áreas esperando que explore.

De hecho, la descripción anterior da algo de miedo. Cada área puede llevar mucho tiempo. Pero la buena noticia es que la mayor parte del conocimiento sólo requiere comprensión teórica. La parte que realmente consume tiempo es programar, programar, programar. No todo el mundo puede utilizar un sistema de base de datos y no todo el mundo necesita saber lenguaje ensamblador. Pero este conocimiento previo le ayudará. Haz que ya no tengas miedo y tengas más confianza en ti mismo.

Si quieres convertirte en un gran desarrollador, los conocimientos anteriores son necesarios. Pero todavía está lejos de ser suficiente.

El aprendizaje no tiene fin, especialmente en informática.