Quiero aprender C por mi cuenta
Varios malentendidos
Los principiantes que se lanzan a la tendencia de C# son en realidad solo uno de varios malentendidos que se encuentran a menudo en el proceso de aprendizaje. Ilustraré estos fenómenos con algunos ejemplos prácticos. Podrás ver paso a paso si perteneces a uno o varios de ellos:
Piensa que la tecnología informática es igual a la tecnología de programación
Algunas personas tienen este impulso de forma subconsciente aunque lo tengan; No tengo esta idea. Lo que me sorprendió fue que muchos estudiantes de la Escuela de Información también tuvieron esta idea. Él cree que las especialidades en informática son especialidades en programación y no le importan los cursos que no tengan nada que ver con programación o que no sean muy relevantes. Los estudiantes extremos no leen libros mientras no contengan la palabra "programación".
De hecho, la programación es sólo la forma de trabajo menos compleja en la aplicación de la tecnología informática. Es por eso que las personas que se encuentran en la base de la industria de TI son codificadores. La tecnología informática incluye multimedia, redes informáticas, inteligencia artificial, reconocimiento de patrones, sistemas de información de gestión, etc. El trabajo de programación es solo el proceso de expresar algoritmos en el estudio teórico o la práctica de ingeniería de estas tecnologías específicas. Los programadores no necesariamente tienen un alto conocimiento técnico de las computadoras. Un fenómeno interesante es que muchos investigadores científicos que dominan la tecnología informática no entienden de programación. El trabajo de programación se confunde con el revuelo en línea y las buenas condiciones laborales en la realidad. De hecho, todo programador sabe que estas cosas no son más difíciles de aprender que otras especialidades, por lo que, naturalmente, no son de alta gama.
Ten tu propio estilo de masticar palabras:
He leído un libro de texto "Principios de redes informáticas" escrito por una niña. Esta niña, como una estudiante de primaria, ha dibujado líneas horizontales y escrito notas por todo el libro. La versión impresa definitivamente será más gruesa que el libro de texto. Lo que no entiendo es si es necesario tomar notas para un curso como Principios de redes informáticas. Nuestra educación orientada a los exámenes realmente ha perjudicado a muchos estudiantes. Cuando muchos estudiantes estudian cursos como los principios, los recitan y memorizan palabra por palabra, tal como aprenden los principios del marxismo-leninismo. Este es el comportamiento más estúpido que he visto jamás. El llamado "principio" significa que es necesario comprender por qué hace lo que hace y aprender por qué, no cómo. Los estudiantes extremadamente serios memorizaron la longitud máxima del cable Ethernet, la longitud de la trama de datos, el significado de cada campo, el formato del encabezado IP, etc., pero olvidaron los principios de enrutamiento y el propósito del protocolo TCP/IP. diseño. En resumen, muchas personas dedican mucho tiempo a memorizar pero no aprenden nada.
Lo mismo ocurre con estos estudiantes que aprenden programación. Recuerdan exactamente cada detalle de la sintaxis de C. Leí tutoriales de C y "Pensar en C" (realmente un buen libro), en los que C, C hace referencia, este C, ese C... Luego descubrí que había olvidado algo de sintaxis de C, y finalmente volví a compensarlo. Un hermano menor me dijo: "C es demasiado difícil. Lo aprendes aquí y lo olvidas allí. Una vez que aprendes la herencia, te olvidas de las plantillas". Mi respuesta es: "Es fácil si no lo aprendes". No le enseñé cosas malas. Sólo le dije que ceñirse a la sintaxis de C era tan inútil como que Kong ya mostrara varias formas de escribir la palabra hinojo para frijoles de hinojo. No necesita preocuparse demasiado por la sintaxis de C, simplemente comience a programar.
Si no recuerda nada, consulte MSDN y hágalo inmediatamente. He llegado a la conclusión de que la comprensión de la sintaxis del programa es el conocimiento más insignificante en el proceso de desarrollo real. Es por eso que cuando escribí un pequeño programa en Básico para mis compañeros de clase (nunca lo había aprendido antes), solo pasé media hora mirando la sintaxis y luego terminé de escribir el programa en media hora. Escribí los puntos clave en Básico. Olvidé todas las palabras.
Ignora lo básico y persigue ciegamente la tecnología de moda;
Al final, la atención se centra en el tema. La mayoría de la gente quiere que sus cosas funcionen inmediatamente y se conviertan en dinero. Esta idea tiene sentido para un programador o director de proyectos que ingresa al campo profesional. La tecnología de TI avanza demasiado rápido y, si no hace un seguimiento, perderá su trabajo. Pero para los principiantes (especialmente los estudiantes universitarios con mucho tiempo), esta idea resulta confusa. La mayor ventaja para un principiante que no ha entrado en la competencia de la industria es tener tiempo suficiente para calmarse y aprender los conceptos básicos, y aprender por qué en lugar de cómo. Las tecnologías de moda suelen ser fáciles de dominar, y cada vez es más fácil hacerlo por intereses comerciales y para minimizar el coste del desarrollo de software. Pero esta es la realidad en TI. Cuanto más fácil sea dominarlo, más personas lo aprenderán y más rápido serán eliminados. Cada vez que aparece una nueva tecnología, muchos novatos la siguen. Debido a que estos principiantes carecen de la base necesaria, dedican mucho tiempo al proceso de seguimiento. Una vez que la aprenden, esta tecnología pronto será eliminada. Cursos básicos, como estructura de datos, principios de sistemas operativos, etc. , no pueden hacerte comprender Linux inmediatamente (por eso mucha gente se ríe de la inutilidad de los cursos teóricos), pero pueden reducir significativamente la pendiente de tu curva de aprendizaje a la hora de aprender nuevas tecnologías. Incluso es indispensable para muchas tecnologías clave (como la programación Win32 SDK y la programación DDK).
Un ejemplo vivo somos yo y uno de mis compañeros de clase. Cuando era estudiante de primer año, no podía encontrar el botón de inicio y él ya podía escribir algunos ensambladores simples. Cuando era estudiante de segundo año en la escuela secundaria, dediqué todo mi tiempo a aprender ensamblaje, arquitectura de computadoras, estructuras de datos, principios de sistemas operativos, etc., mientras él comenzaba a aprender HTML, VB y se ponía al día con la tendencia ASP. En mi tercer año, comencé a aprender los principios del sistema operativo Windows y la programación SDK. Me llevó mucho tiempo y luego pude desarrollar una aplicación decente usando VC. Me molesté porque el programa de mi compañero de clase se estaba ejecutando y todavía estaba aprendiendo a crear un cuadro de diálogo. No fue hasta que me gradué que me di cuenta de lo correcta que era mi elección. La empresa con la que estaba negociando me ofreció más del doble de su salario. Aquí hay un ejemplo inapropiado: supongamos que se necesitan 4 meses para aprender programación VB y 1 año para aprender cursos básicos y programación VC. Entonces, si aprendes VB primero y luego este último, el tiempo no se reducirá, seguirá siendo 1 año. Por otro lado, si aprendes esto último primero y luego VB, puedes volverte muy competente en solo 1 semana.
Varios cursos básicos importantes
Si eres estudiante, o tienes tiempo suficiente. Se recomienda que domine cuidadosamente los siguientes conocimientos. Mi consejo es para principiantes que quieran tener éxito en la tecnología de TI. Al mismo tiempo, también enumeré algunos libros que deberían tener las librerías. Para ser honesto, cuando leo los artículos de otras personas, mi mayor deseo es que el autor haga una lista de libros.
Inglés universitario-Deja de ser gracioso. Recomiendo encarecidamente este curso, ya que es inimaginable sin la lectura de literatura profesional. Las traducciones al chino se publican a menudo en el Año del Mono y ahora muchas editoriales simplemente imprimen textos electrónicos directamente. La forma de aprender es obligarse a leer los libros de texto originales. No lo entenderás al principio, pero te acostumbrarás cuanto más lo uses. Ser capaz de soportar las dificultades y trabajar duro son definitivamente cualidades necesarias en cualquier industria.
Arquitectura informática y lenguaje ensamblador: hay libros sobre arquitectura en todas partes y todos son más o menos iguales. Pero hay un libro muy bueno, Tutorial de programación en lenguaje ensamblador 80x86 (Tsinghua University Press, cubierta negra, escrito por Yang Jiwen). Debe concentrarse en la programación del modo protegido posterior a 386. De lo contrario, cuando aprenda los aspectos básicos de los sistemas operativos modernos, sentirá que está leyendo desde el cielo.
Principios de los sistemas operativos informáticos - Nuestro desarrollo siempre se realiza sobre un sistema operativo concreto. Si no, sólo existe una posibilidad: que usted mismo esté implementando un sistema operativo. De todos modos, Principios del sistema operativo es una lectura obligada.
Esto es como cuando fabricamos periféricos para un chip, debemos comprender la secuencia de funcionamiento básica del chip. Hay muchos libros en esta categoría y todavía tengo que encontrar uno que se destaque. Simplemente creo que si tienes tiempo después de leer estos libros, deberías leer "Windows 2000 Insider" (Microsoft Press, leí la versión E, el título chino debe ser "Windows 2000 Technical Insider"). Otro artículo sobre ZDNET ha discutido la necesidad de aprenderlo.
Estructura de datos y algoritmo: este curso puede determinar el nivel de programación de una persona y es un curso básico. Mi primera opción es la versión Tsinghua (Zhu, Liu). A mucha gente le gusta comprar la versión C, pero no creo que sea necesario. La sintaxis de C hace que el proceso de implementación del algoritmo sea mucho más complicado. A muchos profesores les gusta utilizar módulos para hacer el algoritmo más complejo. Después de estudiar la versión C, es mejor buscar el libro de la versión C.
Ingeniería de Software - Este curso se vuelve cada vez más importante a medida que avanza el curso, aunque es tan incomprensible como estudiar filosofía al principio. Mi sugerencia es estudiar Ingeniería Práctica de Software (Huang, Universidad de Tsinghua). No pierda demasiado tiempo memorizando reglas y regulaciones. Si no los entiendes, simplemente omítelos. Cada vez que completo una tarea de diseño de software (ya sea una pasantía o un trabajo), miraré hacia atrás y ganaré algo cada vez.
Programación de Windows - "Peking University Press, Petzold" Sugiero que cualquiera que intente diseñar un programa de Windows debe completarlo cuidadosamente antes de aprender VC. Además, el libro anterior sobre Windows 2000 también es mejor al final de este libro. En este libro, no hay C, ni GUI, ni controles. Algunos explican cómo utilizar el lenguaje C sin formato para realizar la programación de Windows. Después de aprenderlo, descubrirá que VC es realmente fácil de aprender. No aprenda VC antes de leer este libro. Será mejor que no lo toques. Muchas escuelas famosas que conozco incluso lo utilizan como material didáctico. Es obviamente importante.
Creo que los cursos anteriores son necesarios (si quieres convertirte en programador de Windows).
Otros cursos tienen una opción tan simple: si eres un estudiante de informática, aprende todos los cursos básicos de tu especialización. De lo contrario, consulte el plan de estudios del Departamento de Informática. Si descubre que no puede leer un libro, vaya al final del libro, mire sus referencias, búsquelas, estúdielas y luego regrese al libro. Si la palabra "principio" aparece en el título del libro, asegúrese de no memorizar los detalles. Deberías dominarlo a un ritmo de al menos 50 páginas al día. Siempre que sea posible, practique una teoría o algoritmo en la computadora.
También puedes leer muchas reseñas de libros sobre CSDN. Estas reseñas de libros pueden ayudarle a decidir qué tipo de libros leer.
Cuídate tres veces al día
Leer demasiados libros cada día hace que sea fácil perderse. Cada noche debes pensar en lo que has aprendido, qué otras cosas relacionadas necesitas dominar, qué es lo que más te interesa, si has dedicado demasiado tiempo a un libro, etc. Al mismo tiempo, también debería pensar más en las aplicaciones más probables en el futuro, para poder liderar la tendencia tecnológica en lugar de perseguirla. Al mismo tiempo, intenta utilizar las técnicas y teorías que ahora dominas para hacer algo nuevo. Hacer esto de manera constante le permitirá convertirse verdaderamente en un "desarrollador" de software en lugar de simplemente en un codificador.
Dedica la mayor parte de tu tiempo a estudiar.
Este es un último consejo para principiantes. Intenta jugar CS o CS el menor tiempo posible cada semana, y es mejor no jugar nada. Al mismo tiempo, si su tecnología ASP ya puede generar dinero y algunas empresas incluso lo invitan a trabajar a tiempo parcial, demostrar su talento puede garantizar que pueda obtener mejores ingresos después de estudiar mucho y debería hacer cosas más complicadas. Pensar a largo plazo y aplicar a todos.
Girar