Red de conocimiento informático - Material del sitio web - Cómo desarrollar tus capacidades profesionales básicas (ingeniería de software)

Cómo desarrollar tus capacidades profesionales básicas (ingeniería de software)

① Hay varias direcciones generales y más de una docena de direcciones de rama en el campo profesional de la informática, y cada dirección de rama tiene docenas de pequeñas direcciones que requieren un estudio profundo y dominio. no sucede de la noche a la mañana, y no están completamente desconectadas entre sí, pero ya sea que sea un principiante o un estudiante en una etapa inicial, debe elegir una dirección general y profundizar en una de las direcciones pequeñas (¿por qué debería elegir una específica? ¿Dirección tan temprano? ¿Dirección de sucursal? Hablaré de eso más tarde).

② Aquí hay varias direcciones generales de las computadoras (no hablaré de desarrollo sin programación):

Instrucciones básicas:

1. dirección integrada

2. Programación de red: involucra programas de servidor, desarrollo de clientes, diseño de scripts, etc.

3. Programación del sistema: desarrollo de API básico, desarrollo de escritorio, desarrollo de programas del sistema, programa de servicio

4. Gráficos: 3D, 2D, reconocimiento de imágenes, reconocimiento facial.

5. Audio: reconocimiento de voz, decodificación de audio, software de audio

6. Principio de compilación: diseño de compilador, intérprete de guiones, máquina virtual, sistema de traducción de lenguaje no natural

7. Desarrollo de la capa de aplicaciones: utilice lenguajes de alto nivel para desarrollar aplicaciones a nivel de superficie

8 Seguridad: antiingeniería, virus, antivirus, troyanos, antitroyanos, craqueo de software, empaquetado de software<. /p>

Instrucciones adicionales:

9. Inteligencia artificial: algoritmo genético, red neuronal, sistema gris, etc.

10. Diseño de juegos: varios diseños y negocios de motores de juegos. diseño lógico, etc.

p>

③. La dirección básica debe ser elegida por los alumnos. Las instrucciones adicionales son solo una guinda del pastel basada en la dirección básica. elige, algo debe ser profundo al principio en lugar de simplemente entenderlo (por supuesto, los estudiantes no deben tener requisitos bajos para sí mismos), enumeraré esto:

Estructura de datos: la base de otras teorías abajo. (Debe leer: "Introducción a los algoritmos"

Principios de los sistemas operativos: solo comprendiendo la arquitectura y los detalles del sistema operativo los estudiantes pueden tener una comprensión correcta de subprocesos múltiples, administración de archivos, administración de memoria e instrucciones. prioridad, etc. y aplicación (debe leer: "Sistema operativo: principios de esencia y diseño"

Principio de compilación: puede sublimar la comprensión de los estudiantes de los lenguajes de programación de computadoras y prepararlos para diversas compilaciones, interpretaciones, compatibilidad y trasplante que aparecerán en el futuro, optimización, concurrencia y algoritmos paralelos, etc. (debe leer: Tres Biblias y "PT", que son tres principios específicos del sistema de base de datos de Baidu: esto es algo. Todo el mundo debe saberlo al ingresar a una empresa. También es la base para el desarrollo de software a gran escala (hay muchos clásicos aquí, pero no son lecturas obligatorias. Específicamente douban

Ingeniería de software: esta es una. Teoría que permite a los estudiantes garantizar la finalización normal de proyectos grandes a pesar de la falta de experiencia. (Los patrones de diseño pueden ayudar con el diseño arquitectónico de la ingeniería de software, asegúrese de leer

Tecnología de red: esto es imprescindible. -aprende, porque actualmente casi no existe software o plataforma con alta probabilidad de ser instalado. No tiene nada que ver (Hay muchos libros excelentes, específicamente doubanMatemáticas, principalmente: matemáticas discretas. , álgebra lineal, matemáticas avanzadas, gráficos por computadora, teoría de la probabilidad (cada uno tiene excelentes libros y ejercicios, douban específico

Los conceptos básicos anteriores son los que los estudiantes deben aprender para convertirse en un maestro que integra varias ramas principales (por supuesto, no se refiere a teoría, sino a teoría + capacidad práctica de codificación)

④Los anteriores son todos los fundamentos principales, debemos analizarlos uno por uno y estudiarlos en profundidad, aunque la experiencia en informática se ha disparado en Internet. Era, una vez que domine los conceptos básicos anteriores, encontrará que todas las nuevas teorías y tecnologías en el futuro se basan en estos. Con una base sólida, será fácil de entender para los estudiantes (o si está más interesado en la metodología, consulte). la catálisis de la metodología + la base sólida anterior, sentirá que se ha abierto tanto a Ren como a Du)

⑤¿Por qué no hablé sobre lo que los estudiantes necesitan aprender específicamente y cómo aprenderlo? ¿En secuencia? Porque si esos estudiantes técnicos quieren dominarlo, básicamente pueden resolverlo por sí mismos (ciclo repetido de lectura de libros + práctica), pero si nadie está interesado en sí mismo ahora, si trabaja duro y tiene una comprensión básica de. la capacidad y la acumulación de nivel que desarrollarás en el futuro, podrás encontrar un buen trabajo después de graduarte, y el salario puede ser alto, pero no serás un pez gordo (aunque de hecho existe una relación transformacional entre esto , es sólo una opinión personal) ).

Ahora hablemos de la secuencia de aprendizaje (una secuencia posible, y la mayor parte de ella ha sido verificada o predicha por mí).

El lenguaje C puede escribir muchas cosas básicas y avanzadas, no solo cosas pequeñas. Hay mucho margen de mejora en las habilidades de codificación.

La secuencia de aprendizaje del alumno debe ser:

C: Se recomienda que, si tienes tiempo, puedas aprender este nivel: crear un Super Mario y poder leer guiones de texto para niveles de actualización.

C++: escribe un motor de gráficos 2D, encapsula los detalles y logra un diseño orientado a objetos y un diseño reutilizable (pero el motor de gráficos 2D se centra en la eficiencia y, obviamente, no necesita preocuparse demasiado por lo reutilizable). concepto de diseño, por lo que lo último que hace que la reutilización sea un desafío es que la apariencia es simple, el diseño interno es complejo y altamente flexible (como la GUI de WPF) y algunos patrones de diseño mencionados en "Patrones de diseño" solo se pueden usar de esta manera. Tienes un buen conocimiento de C++.

MFC: aunque se dice que la tecnología MFC se ha enfriado en los primeros días (ha ganado nueva popularidad recientemente y parece haber incorporado sangre nueva), solo cuando los estudiantes puedan dominarla de manera competente podrán demostrar su habilidad. a corto plazo, la tecnología C ++ OO es lo suficientemente competente. Es muy sencillo demostrar estrictamente que los estudiantes dominan MFC. Los estudiantes solo necesitan usar MFC para crear una versión simplificada del motor antivirus que no es del núcleo. Los libros recomendados incluyen "Comprensión de MFC en un lenguaje simple y profundo".

"Programación de Windows": a diferencia de MFC, utiliza el SDK principal de Windows, que es la API de Windows. Después de terminar este libro, los estudiantes pueden dominar win32 desde el nivel del sistema operativo (. de hecho, la mayoría de los mecanismos API de win64 y win32 son similares).

C#: C# integra algunas de las sintaxis más avanzadas de la informática contemporánea y de vanguardia (aunque la eficiencia de ejecución siempre ha sido cuestionada), pero una vez que los estudiantes aprenden C# y lo profundizan, al menos pueden ser considerados lenguajes informáticos. Hay una comprensión más profunda. ¿Cómo demostrar que los alumnos han aprendido bien C#? También es muy simple, una vez más escribe un juego aleatorio. ¿Qué pasa si te demuestras aún más? Úselo para escribir un juego de batalla P2P en línea.

⑥Como requisito adicional para el aprendizaje avanzado de lenguajes de programación, se recomienda que también aprendas otros lenguajes. Antes de aprender, puedes leer "Colon Classroom" (te indica la relación entre varios lenguajes paradigmáticos). y te da una comprensión de la programación. Hay una visión completamente nueva del dominio del lenguaje).

(Si los estudiantes prestan atención, encontrarán que la secuencia de aprendizaje que mencioné está en la línea del lenguaje y ciertas tecnologías. ¿Por qué? Porque estos lenguajes y tecnologías involucran tecnologías de campo específicas y teoría informática. ideas, por ejemplo, si realmente terminas de aprender C++ o C#, no solo significa que has terminado de aprender C++ o C#, sino que has aprendido múltiples paradigmas de lenguaje, así como el pensamiento moderno de desarrollo de programas (porque utiliza una gran cantidad de tecnologías que permiten a los estudiantes aprender de una vez por todas) )

Los 5 pasos anteriores son todos pasos básicos y tomará de 1 a 2 años resolverlos.

Al mismo tiempo, debe elegir la dirección que interese a los estudiantes lo antes posible como la dirección a largo plazo durante 3 a 5 años, no se preocupe por las pérdidas de elegir una dirección sucursal. demasiado pronto, debido a que muchas ramas de la informática están conectadas, solo cuando los estudiantes profundicen en las direcciones de las ramas podrán comprender verdaderamente el significado práctico de muchas teorías. Y una vez que un alumno desarrolla una gran ventaja en una determinada rama del campo (por ejemplo, solo el alumno es el más fuerte en esta área en la empresa), entonces el alumno se convertirá en un talento escaso.

Los pasos de subdivisión de la dirección general se discutirán aquí por el momento. Lo principal para los estudiantes interesados ​​es resolver los pasos básicos que mencioné primero y, al mismo tiempo, deben prestar atención. la integración de la teoría de la dirección general para codificar y desarrollar realmente.

⑦ Finalmente, desde la perspectiva del capitalismo, midamos por qué es necesario profundizar en al menos 1 o 2 tecnologías, en lugar de simplemente aprender todo en general.

1. Una empresa no necesita todos los tipos de tecnología opcionales correspondientes a una función, generalmente solo 1 o 2 de ellos (como el lenguaje de programación del servidor, para facilitar el desarrollo, el mantenimiento y el reemplazo de personal). también se concentran en 1-2 tipos

2 Incluso si conoce N tipos de tecnologías, solo puede realizar un tipo de trabajo a la vez

.