¿Cómo podemos tener una ruta de aprendizaje clara durante el proceso de autoaprendizaje de Java?
Puedes ver nodos dinámicos en la hoja de ruta de aprendizaje, que es clara y profesional. Hablemos de cómo aprender Java.
1.1 Cultivar el interés
El interés es la motivación que te mantiene adelante. Si simplemente consideras la escritura de programas como un medio para ganarte la vida, vivirás una vida muy cansada y sentirás lástima de ti mismo. Preste más atención a algunas cosas interesantes de la industria y piense más en Gates. No estoy recomendando soñar despierto todos los días, pero ¿crees que es interesante que la gente no tenga sueños? Quizás, como muchos agricultores locales, juegan mahjong, beben té de Kung Fu y adoran al Dios de la Riqueza. Hay decenas de miles o más de cuentas cada mes, lo que crea de la nada una "clase que busca ganancias". ¿Crees que huele así? Si tiene tiempo para visitar los foros de algunos programadores, encontrará que en realidad son muy optimistas y divertidos, y de vez en cuando tienen chispas de sabiduría.
1.2 Elija los lenguajes de programación con cuidado
Los hombres tienen miedo de ingresar a la profesión equivocada y las mujeres tienen miedo de casarse con la persona equivocada. Los principiantes deben tener cuidado al elegir un lenguaje de programación. El desarrollo de software no consiste sólo en dominar un lenguaje de programación, sino que también requiere muchos otros conocimientos previos. El desarrollo de software ya no se limita a unos pocos campos, sino que ha penetrado en casi todos los rincones de todos los ámbitos de la vida.
Si está interesado en el hardware, puede aprender lenguaje C/lenguaje ensamblador e ingresar al campo del desarrollo de hardware. Si está familiarizado con el conocimiento y las redes de la industria de las telecomunicaciones, puede dedicar más tiempo a C/C++ e ingresar al campo del desarrollo de software de telecomunicaciones. Si está familiarizado con los sistemas operativos, puede aprender C/Linux, etc., para sentar las bases para el desarrollo del kernel/desarrollo de controladores/desarrollo integrado de Linux.
Si desea involucrarse en el desarrollo del software de aplicación más utilizado (incluidos los sistemas de comercio electrónico y gobierno electrónico), puede elegir J2EE o . Una combinación de redes e incluso luces. Cada área requiere conocimientos previos diferentes. Para crear software de aplicación, es necesario estar familiarizado con las bases de datos, etc. En resumen, debes elegir el lenguaje de programación adecuado según tus propias características.
1.3 Tener los pies en la tierra y aprender a comer comida rápida no es aconsejable.
La prisa conduce al desperdicio. La impetuosidad es la mentalidad más común entre la gente moderna. ¿A quién puedes culpar? Quizás sea por la pobreza y por el retraso de tantos años. Las empresas de software, los clientes, los gobiernos, las escuelas, las instituciones de formación, etc. de hoy están llenos de impetuosidad. Tomemos como ejemplo la formación profesional en TI de la Universidad Tecnológica de Dalian que conozco. En realidad, anuncia "más de 20 años de educación vocacional en informática, una de las diez mejores escuelas de la provincia de Liaoning", pero no saben que China solo ha desarrollado computadoras y software durante unos pocos años, y todavía hay muchos estudiantes firmando. arriba Es simplemente desprecio por los programadores de todo el mundo. La mayoría de los "programadores" capacitados no tienen idea de qué son OO y OP. Si el entorno social es así, no podemos cambiarlo, sólo podemos cambiarnos a nosotros mismos. La tranquilidad del centro de la ciudad es preciosa. Muchos principiantes de C++/Java utilizan inmediatamente VC/JBuilder para desarrollar un programa Hello World sin empezar a aprender. Se apresuran a anunciar al mundo "Puedo desarrollar software" y escribir "Competente en VC/Java" en sus currículums. Como resultado, cuando fui a una empresa de software para una entrevista, me despidieron tres o dos veces o me refutaron por completo. No lo supe hasta que choqué contra una pared en todas partes. Aprendí "Pensamientos de programación C ++" y "Pensamientos de programación Java" y los estudié seriamente. Si sé esto, ¿por qué debería saberlo?
“Si prestas atención a la simplicidad y la conveniencia ahora, el camino por recorrer será largo”. Esto parece ser una advertencia en las escrituras budistas.
1.4 Practica más y practica más rápido.
"El estudio de su sobrino" de Peng Duanshu cuenta la historia de un monje pobre y un monje rico.
Érase una vez dos monjes en la frontera de Sichuan. Uno es pobre y el otro es rico. Un día, el monje pobre le dijo al monje rico: "Quiero ir en peregrinación al Mar de China Meridional. ¿Qué te parece?" El monje rico dijo: "Esto está a miles de kilómetros de distancia del Mar de China Meridional". ¿Cómo se llega allí?" El pobre monje dijo: "Sólo quiero un trozo de agua y un cuenco de arroz". El monje rico dijo torpemente: "Planeaba comprar un barco para ir al Mar de China Meridional. Hace unos años, pero aún no se ha hecho. ¡Será mejor que no vayas!" Un año después, el monje rico todavía estaba recaudando dinero para alquilarlo. Un barco, pero el pobre monje había regresado de una peregrinación al Mar de China Meridional.
Esta historia se puede interpretar como: Una vez que hayas considerado algo, debes comenzar de inmediato y no esperar hasta estar listo para hacer algo. Si prepara lo que necesita considerar antes de salir a la carretera, es posible que otros lleguen primero. El desarrollo de software es una disciplina de ingeniería que se centra en la práctica. Es fundamentalmente incorrecto que los desarrolladores de software digan que "un caballero habla con palabras pero nunca con las manos". Abogan por "atacar primero para tomar ventaja", pero no tener miedo. La mayoría de ellos tienen una personalidad amable y no son violentos, aunque a veces parecen "Bill Gates". Algunos expertos de alto nivel creen que el secreto para aprender a programar es: programar, programar y programar nuevamente. Estoy totalmente de acuerdo. No sólo necesitas practicar más, sino que también necesitas practicar rápido. Cuando lea un libro, no espere hasta comprenderlo completamente antes de escribir el código. En cambio, deberíamos leer y codificar al mismo tiempo. Varias situaciones en las que se ejecuta el programa pueden permitirle captar puntos de conocimiento de forma más rápida y firme.
1.5 Código de programa de referencia múltiple
El código de programa es uno de los logros más importantes del desarrollo de software. Impregna la mente y el alma de los programadores. Mucha gente se conmovió con la trágica historia de amor de "Legend of Sword and Fairy", y el trágico final fue aún más hermoso. ¿Por qué terminó en tragedia? Se dice que el programador que escribió Legend of Sword and Fairy estaba desconsolado y organizó este final. Integró sus sentimientos en el juego, lo que hizo suspirar a muchos fanáticos de la espada.
Hace referencia a muchos ejemplos de código. Para Java, existe la referencia [4.3], el código fuente de la clase API (archivo src.zip en el directorio de instalación de JDK), y también puede estudiar algunos marcos o software de código abierto.
1.6 Fortalecer las habilidades de lectura en inglés
Para aprender programación no es necesario el inglés, pero tampoco es necesario entenderlo en absoluto. Al menos algo como la documentación de la API de Java (Referencia [4.4]) debería ser comprensible, incluso conjeturado y confuso, abra un "Kingsoft PowerWord" al lado; Cuanto más lo veas, más hábil te volverás. Aprende Java y aprende inglés al mismo tiempo, matando dos pájaros de un tiro. Además, es necesario descargar muchos programas de sitios web en inglés. Deberías poder encontrarlos. Estos son los requisitos más básicos. Un buen inglés será de gran ayuda para tu estudio. Si habla bien inglés, tendrá más posibilidades de llegar a un puesto directivo y entonces podrá convertirse en el "carterista de la semana" que explota a los programadores.
17.000, hay que preguntar a otros.
Al resolver los problemas de los estudiantes en el sistema de tutoría en línea de Martix y Java Forum, el autor descubrió que la mayoría de los problemas pueden ser resueltos por los estudiantes con un poco de pensamiento. Antes de consultar a otros, debe responder las siguientes preguntas.
¿Has buscado en Google una solución a tu problema?
¿Has consultado la documentación de la API de Java?
¿Has consultado los libros relevantes?
¿Alguna vez has escrito pruebas de código?
Si la respuesta es "sí" y aún no has encontrado una solución, no es demasiado tarde para preguntarle a alguien más. Ya sabes, la capacidad de pensar de forma independiente es muy importante para ti. Ya sabes, el tiempo de los programadores es precioso.
1.8 Leer más buenos libros
Yan Ruyu está en el libro. Bill Gates es un hombre culto. Aunque no terminó la universidad, Bill Gates había leído todas las enciclopedias cuando tenía nueve años, por lo que dominaba la astronomía, la historia, la geografía, etc. Franz no sólo es hoy el hombre más rico del mundo en términos de dinero, sino también el hombre más rico en conocimientos.
A menudo recomiendo libros a los estudiantes cuando les enseño. Más tarde, algunos estudiantes no pudieron soportar quejarse: "Dios mío, ¿cuándo terminaré de leer tantos libros?" y "Aprender a desarrollar software me hace sentir como un ladrón". En este momento, mi respuesta suele ser "No". "No te preocupes, ¿cuándo te lo daré?" Mira mi sala de estudio. Hasta ahora, la cantidad de dinero que gasto en libros técnicos es sólo de 400 yuanes, que es sólo el promedio entre los desarrolladores de software. El estudiante se desmayó en el. lugar. (Nota: estos estudiantes son nuevos en el desarrollo de software)
Utilice las herramientas adecuadas
Si quiere hacer bien su trabajo, primero debe afinar sus herramientas. El desarrollo de software incluye la recopilación y análisis de requisitos, el establecimiento de modelos de casos de uso, el establecimiento de modelos de análisis y diseño, la implementación de programación, la depuración de programas, las pruebas automáticas, la integración continua y otras actividades. Sin la ayuda de herramientas, se puede decir que es imposible avanzar. Las herramientas pueden mejorar la eficiencia del desarrollo, crear software de mayor calidad y tener menos errores. Un arma a dos manos. Volar flores y recoger hojas puede dañar a las personas a un nivel muy alto. Es casi imposible ganar sin usar un movimiento. Si tienes una espada en la mano, tendrás una espada en el corazón.
2. Ruta de aprendizaje del desarrollo de software
Durante más de dos mil años, el confucianismo, Confucio y Mencio y la doctrina de la media han estado profundamente arraigados en los huesos. No es ni radical ni conservador ni moderado. Se trata de encontrar la ruta y las reglas correctas para aprender a desarrollar software.
En lo que respecta a la planificación profesional de los desarrolladores de software, podemos dividirla a grandes rasgos en tres etapas: ingeniero de software → diseñador de software → arquitecto o director de proyecto. Un soldado que no quiere ser mariscal no es un buen soldado y un programador que no quiere ser arquitecto o director de proyectos no es un buen programador. Deberíamos intentar subir. Primero, clasifiquemos las principales tecnologías que es necesario aprender para desarrollar software de aplicaciones.
A. Conocimientos teóricos básicos, como sistemas operativos, principios de compilación, estructuras y algoritmos de datos, principios informáticos, etc. , no carecen de importancia. Si no quiere ser informático, puede adoptar el principio de "aprender cuando sea necesario".
B. Un lenguaje de programación, ahora básicamente un lenguaje orientado a objetos, Java/C++/C#, etc. Si desea desarrollar WEB, debe aprender HTML/JavaScript y similares.
C. Una metodología o idea ahora es básicamente una idea orientada a objetos (OOA/OOD/patrón de diseño). El desarrollo resultante basado en componentes CBD/AOP, etc.
D.Base de datos relacional, como ORACLE/SqlServer/DB2/MySQL, etc.
Entorno de desarrollo integrado IDE para mejorar la productividad JBuilder/Eclipse/VS.NET, etc.
F. Una herramienta de modelado UML, modelada con ROSE/VISIO/pen.
G.Proceso de software, RUP/XP/CMM, etc. , organiza muchas actividades de desarrollo de software a través del proceso de software, haciendo que el proceso de desarrollo sea profesional y estandarizado.
Por supuesto, existen otros conocimientos de ingeniería de software.
H. Comprender la gestión de proyectos, la arquitectura y los frameworks.
La ruta correcta debe ser: B → C → E → F → G → H.
Es necesario agregar algunos puntos más:
1). Lo que A y C deben agregar es que deben comprender gradualmente la teoría y el pensamiento de la programación en la práctica. Aunque constantemente surgen nuevas tecnologías, la velocidad de actualización es vertiginosa, pero los cambios en la teoría y el pensamiento de la programación son muy lentos; Dominar la teoría y el pensamiento de la programación le dará una sensación de claridad. En la actualidad, el pensamiento orientado a objetos es muy crítico y una de las tecnologías más poderosas. Necesitas invertir más tiempo en ello y las recompensas te sorprenderán.
2) Para las bases de datos, es un aprendizaje independiente, por lo que el momento depende de usted.
3) El lenguaje de programación es la línea principal del aprendizaje del desarrollo de software, y el resto son líneas auxiliares.
4). Los ingenieros de software se centran en B, C, E y D; los diseñadores de software se centran en B, C, E, D y F;
3. ¿Cómo aprender Java?
3.1 Ruta de aprendizaje de Java
3.1.1 Sintaxis básica y principios de Java
La sintaxis básica y los principios de Java son la base, y la base es inestable, al igual que en la arena Construir rascacielos es bastante peligroso. Lo mismo ocurre con el aprendizaje de Java. Debe tener una base sólida para poder dominar J2EE y J2ME. Realizar el examen SCJP (Programador Java certificado por Sun) es una excelente manera de hacerlo. Una razón es que para pagar la tasa de examen de 1.200 yuanes, tendrás que estudiar más. Otra razón es que el examen SCJP le permite sentar una base sólida, lo que requiere que esté tan familiarizado con los conceptos básicos de Java como JDK. Pero no debes pensar que aprobar el examen SCJP significa que eres excelente y que puedes ganarte el favor de las empresas de software y obtener salarios altos. Esta idea también es peligrosa. Obtener un SCJP "real" sólo puede demostrar que su base es transitable, pero aún queda un largo camino por recorrer hasta el desarrollo real.
Comprensión de las ideas 3.1.2 OO
Después de dominar la sintaxis básica y los principios operativos de los programas Java, podrá realizar las ideas orientadas a objetos en el lenguaje Java. La orientación a objetos es una metodología; es una idea de programación independiente del lenguaje; es la base del desarrollo basado en componentes de CBD. Cuando necesites cambiar a otros lenguajes orientados a objetos para trabajar en el futuro, te sentirás particularmente familiar y amigable, y aprender es tan fácil como beber agua fría.
El proceso básico de desarrollo utilizando el pensamiento orientado a objetos es:
●Investigar y recopilar requisitos.
●Establecer un modelo de casos de uso.
●Identificar clases de análisis y relaciones estáticas y dinámicas entre clases del modelo de casos de uso para construir un modelo de análisis.
●Refinar el modelo de análisis en un modelo de diseño.
●Utilizando tecnología específica para lograrlo.
●Pruebas, despliegue y resumen.
3.1.3 Aprendizaje de API básica
Al desarrollar software, no es necesario implementar todas las funciones. Este es el dicho clásico "no es necesario hacer más". Podemos utilizar clases, componentes y marcos ya preparados para crear nuestras aplicaciones. Por ejemplo, SUN ha escrito muchas clases que implementan algunas funciones subyacentes, así como clases incluidas en los archivos JAR que descargamos. Podemos llamar a métodos en la clase para completar algunas funciones o heredarlas. Entonces, ¿qué métodos se proporcionan en estas clases para que los utilicemos? ¿Cuáles son el número y los tipos de parámetros para este método? ¿El constructor de clases requiere parámetros? Es imposible que un ingeniero de Sun Microsystems haga una llamada telefónica internacional o incluso cruce el océano para decirte cómo utilizar la clase que escribió. Sólo pueden proporcionarnos documentos para que los veamos. El documento Java DOC (Referencia 4.4) es un documento de este tipo, que se puede decir que es un documento de comunicación entre programadores.
La API básica se refiere a clases que implementan algunas funciones subyacentes, como procesamiento/entrada/salida de cadenas, etc. También lo llamamos biblioteca de clases. La primera forma de familiarizarse con la API es consultar el documento Java DOC (Referencia 4.4), y la segunda forma es utilizar la función de solicitud de código de IDE como JBuilder/Eclipse.
3.1.4 Aprendizaje de API específicas
Java cubre una amplia gama de campos y diferentes campos tienen diferentes API. Nadie está familiarizado con todas las API, pero la gente común solo está familiarizada con las API que utiliza en su trabajo. Si desarrolla interfaces, entonces necesita aprender API como Swing/AWT/SWT; si desarrolla juegos en línea, necesita tener un conocimiento profundo de API de red/API multimedia/2D3D, etc. Si realiza desarrollo WEB, debe estar familiarizado con API como Servlets. En resumen, debe elegir aprender una API específica según sus necesidades laborales o la dirección de desarrollo de sus intereses.
3.1.5 Uso de herramientas de desarrollo
Al aprender sintaxis básica y conceptos básicos orientados a objetos, desde la perspectiva de entrenar la capacidad del lenguaje, recomendamos usar Editplus/JCreator+JDK. En este momento, no se apresure a utilizar entornos de desarrollo integrados como JBuilder/Eclipse, para no centrarse demasiado en las potentes funciones del IDE y distraerse de la tecnología Java en sí.
Después de esta etapa, podrá familiarizarse con el IDE.
El trabajo diario de los programadores incluye muchas actividades, como edición, compilación y construcción, depuración, pruebas unitarias, control de versiones, mantenimiento de sincronización de modelos y códigos, actualización de documentación, etc. Existen herramientas dedicadas para casi todas las actividades. Si utiliza estas herramientas de forma independiente, se sentirá miserable. Necesita activar constantemente una barra de tareas llena de herramientas, lo cual es ineficiente y propenso a errores. En IDE como JBuilder y Eclipse, se han integrado automáticamente editores, compiladores, depuradores, herramientas de prueba unitaria JUnit, herramientas de compilación automática ANT, herramientas de control de versiones CVS y generación y actualización de documentos DOC, e incluso se pueden integrar herramientas de modelado UML. También proporciona asistentes enriquecidos para ayudar a generar código marco, lo que facilita nuestro desarrollo. Cabe decir que la tendencia de desarrollo de IDE es integrar casi todas las herramientas utilizadas en el desarrollo de software.
Desde la perspectiva de la eficiencia del desarrollo, usar IDE es el único camino a seguir y también es un hito en la transición de un estudiante a un programador profesional.
Los IDE utilizados en el desarrollo de Java incluyen principalmente Eclipse, JBuilder, JDeveloper, NetBeans, etc. Eclipse y JBuilder tienen la mayor cuota de mercado. JBuilder es el entorno de desarrollo integrado Java dominante en los últimos años. Fue desarrollado por Borland, una empresa muy respetada por los programadores. En la guerra de IDE de Java llena de humo, JBuilder confió en actualizaciones rápidas de versiones para derrotar a Java Visual Era de IBM e hizo grandes contribuciones. IBM ya no era rentable en la era visual de Java, por lo que simplemente lo contribuyó a la comunidad de código abierto y se convirtió en el predecesor de Eclipse. En realidad se llama "otro pueblo con un futuro brillante". El Eclipse renacido se ha ganado el favor de los programadores (incluidos casi todos los programadores incondicionales) con su mecanismo de extensión de complemento abierto y código abierto gratuito, y tiene un enorme potencial de desarrollo.
3.1.6 Aprender Ingeniería de Software
Para proyectos pequeños, puedes pensar que la ingeniería de software no es necesaria. A medida que los proyectos se vuelven más complejos, se hace evidente la necesidad de la ingeniería de software. Consulte la sección "Rutas de aprendizaje para el desarrollo de software".
3.2 Puntos de aprendizaje
Después de la ruta de aprendizaje establecida, también debemos resumir los puntos de aprendizaje de Java. Estos se han mencionado más o menos en artículos anteriores, pero el autor cree que. Se debe prestar especial atención al resumen en estos lugares.