¿Cómo podemos tener una ruta de aprendizaje clara durante el proceso de autoaprendizaje de Java?
Java es una plataforma y un lenguaje de programación. Cómo aprender bien a programar no sólo es aplicable a Java, sino también a otros lenguajes de programación como C++. Algunos expertos en programación creen que no hay diferencia entre Java y C, simplemente utilícelos. ¿Por qué pueden llegar a tal estado? Creo que es porque los lenguajes de programación tienen muchos puntos en común. Una vez que comprendas la esencia de la programación, naturalmente podrás entenderlo todo. Por supuesto, hay muchas cosas sencillas que aprender sobre programación.
Puedes consultar los nodos de motivación de la hoja de ruta de aprendizaje, que es relativamente clara y profesional. Hablemos sobre cómo aprender Java específicamente.
1.1 Cultivar el interés
El interés es la motivación que te mantiene adelante. Si sólo utilizas programas de escritura como medio para ganarte la vida, vivirás una vida muy cansada y te arrepentirás mucho de ti mismo. Preste más atención a historias interesantes de la industria y piense más en Gates. No estoy recomendando soñar despierto todos los días, pero si la gente no tiene sueños, ¿crees que está bien? Tal vez, como muchos agricultores locales en Shenzhen, juegan mahjong, beben té de Kung Fu y adoran al Dios de la Riqueza; ganan decenas de miles o incluso más cada mes, creando una "clase rentista" de la nada; ¿Crees que esto sabe bien? Si tiene tiempo, vaya a algunos foros de programadores y descubrirá que en realidad son muy optimistas y divertidos, y de vez en cuando aparecerán 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 el hombre equivocado. Los principiantes deben tener cuidado al elegir un lenguaje de programación. El desarrollo de software no se trata sólo de dominar un lenguaje de programación, sino que también requiere conocimientos previos en muchos otros aspectos. El desarrollo de software 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 los conocimientos y las redes de la industria de las telecomunicaciones, puede dedicar más tiempo a C/C++, etc., con miras a 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 de software de aplicación con la más amplia gama de aplicaciones (incluidos sistemas de comercio electrónico y gobierno electrónico), puede elegir J2EE o .NET, o incluso una combinación LAMP. . Cada campo requiere conocimientos previos diferentes. Crear software de aplicación requiere estar familiarizado con bases de datos, etc. En resumen, debes elegir el lenguaje de programación que más te convenga en función de tus propias características.
1.3 Tenga los pies en la tierra, el aprendizaje al estilo de la comida rápida no es aconsejable
Las prisas generan desperdicio, la impetuosidad es la mentalidad más común de la gente moderna, ¿quién puede culparlo? Quizás sea por la pobreza y el atraso 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 Dalian Dagong, con la que estoy familiarizado. En realidad, se anuncia como "más de 20 años de educación vocacional en informática, las diez mejores escuelas de la provincia de Liaoning". Hace unos pocos años, y el desarrollo de software solo lleva unos pocos años. Hay muchos estudiantes que se inscribieron y simplemente desprecian a los programadores del mundo. ¿La mayoría de los "programadores" capacitados no saben qué son OO y OP? El entorno social es así, no podemos cambiarlo, sólo podemos cambiarnos a nosotros mismos. La paz en la ciudad ocupada es extremadamente preciosa. Muchos principiantes no han comenzado a aprender C ++/Java e inmediatamente usan VC/JBuilder. Si pueden usar VC/JBuilder para desarrollar un programa Hello World, se apresuran a declarar al mundo: "Sé cómo desarrollar software" y también escriben. "Sé cómo desarrollar software" con audacia en sus currículums. Competente en VC/Java. Como resultado, cuando fui a la empresa de software para una entrevista, me despidieron en unos segundos o me refutaron tan duramente que me sentí avergonzado. Después de chocar contra una pared en todas partes, aprendí a recoger "Pensamientos de programación en C++" y "Pensamientos de programación en Java" y estudiarlos detenidamente. Si hubiera sabido esto, ¿para qué molestarme?
"Si prestas atención a la simplicidad y la conveniencia ahora, tu camino será largo en el futuro." Esto parece ser una advertencia en las escrituras budistas.
1.4 Practica más, practica rápido
Hay una historia sobre un monje pobre y un monje rico en "Una poesía para aprender" de Peng Duanshu.
Érase una vez dos monjes en la frontera de Sichuan, uno era pobre y el otro rico.
Un día, el monje pobre le dijo al monje rico: "Planeo hacer una peregrinación al Mar de China Meridional. ¿Qué te parece?" El monje rico dijo: "Este lugar está a miles de kilómetros de distancia del Mar de China Meridional". ¿Cómo puedes llegar allí?" El pobre monje dijo: "Sólo quiero ir allí". Un cuenco de agua y un cuenco de arroz son suficientes. "El monje rico dijo avergonzado: "Planeaba comprar un barco para ir". Mar de China Meridional hace unos años, pero aún no lo he logrado, así que será mejor que no vayas ". Un año después, el monje rico todavía dijo. Mientras recaudaba dinero para alquilar el barco, el monje pobre ya había regresado de su peregrinación al Mar de China Meridional.
Esta historia se puede interpretar como: Una vez que hayas considerado algo, debes ponerte en camino inmediatamente. No esperes hasta estar completamente preparado para hacer las cosas. Si se piensa todo cuidadosamente antes de emprender el camino, es posible que otros sean los primeros en llegar. El desarrollo de software es una disciplina de ingeniería que se centra en la práctica. "Un caballero habla pero no usa las manos" es simplemente incorrecto para los desarrolladores de software. Abogan por "las manos", pero no tengas miedo. sin tendencias violentas, aunque a veces parece descuidado y se parece a "Bill Gates". Algunos expertos de alto nivel creen que el secreto para aprender a programar es: programar, programar y reprogramar. El autor está totalmente de acuerdo. No sólo necesitas practicar más, sino que también necesitas practicar rápidamente. Cuando leemos un libro, no debemos esperar hasta que lo comprenda completamente antes de escribir el código. En lugar de eso, debe escribir el código mientras lee el libro. Las diversas situaciones en las que se ejecuta el programa pueden ayudarlo a comprender los puntos de conocimiento más rápido. más firmemente.
1.5 Código de programa de referencia múltiple
El código de programa es uno de los resultados más importantes del desarrollo de software, que impregna la mente y el alma de los programadores. Mucha gente se sintió conmovida por la conmovedora historia de amor de "Legend of Sword and Fairy", y el trágico final tiene una especie de belleza imperfecta. ¿Por qué termina en tragedia? Se dice que el programador que escribió "Legend of Sword and Fairy" arregló ese final porque tenía el corazón roto. Incorporó sus propios sentimientos al juego, pero muchos fanáticos de Sword and Fairy suspiraron.
Hay muchos ejemplos de código de referencia para Java, está la referencia [4.3], está el código fuente de la clase API (archivo src.zip en el directorio de instalación de JDK), también puedes estudiar algunos. Software o frameworks de código abierto.
1.6 Fortalecer las habilidades de lectura en inglés
Para aprender programación, no se requiere inglés, pero no es necesario dominar el inglés. Como mínimo, cosas como la documentación de la API de Java (referencia [4.4]) deben ser comprensibles, e incluso puedes adivinar y confundirte al abrir un "Kingsoft PowerWord" al lado; Cuanto más mires, más hábil te volverás. Aprender inglés mientras aprendes Java es una excelente manera de matar dos pájaros de un tiro. Además, muchos programas deben descargarse de sitios web en inglés. Estos son los requisitos más básicos. Ser bueno en inglés será de gran ayuda para tus estudios. Si hablas bien, tendrás más posibilidades de ingresar a la gerencia y luego podrás convertirte en un "Zhou Papi" que explota a los programadores.
1.7 Pida consejo a otros únicamente como último recurso
Al resolver los problemas de los estudiantes en el sistema de tutoría en línea de los foros Martix y Java, el autor descubrió que la mayoría de los problemas se pueden resolver. por estudiantes con un poco de reflexión. Antes de pedir consejo a otros, debes responder las siguientes preguntas.
¿Has buscado una solución al problema en Google?
¿Has consultado la documentación de la API de Java?
¿Has buscado libros relacionados?
¿Alguna vez has escrito código y lo has probado?
Si la respuesta es "sí" y aún no has encontrado una solución, no es demasiado tarde para preguntar a otros. Sepa que la capacidad de pensar de forma independiente es importante para usted. Debes saber que el tiempo de un programador es precioso.
1.8 Leer más buenos libros
Hay caras bonitas en los libros. Bill Gates es un hombre culto. Aunque no terminó la universidad, Bill Gates ya había leído todas las enciclopedias cuando tenía nueve años, por lo que domina la astronomía, la historia, la geografía y otras materias. Se puede decir que Bill Gates no es solo el hombre más rico del mundo. el mundo de hoy, y también puede considerarse una riqueza de conocimientos.
Cuando enseño a los estudiantes, a menudo les recomiendo libros. Más tarde, los estudiantes no pueden soportarlo más y comienzan a quejarse: "Dios mío, ¿cuándo terminaré de leer todos estos libros?" Aprender a desarrollar software es como si estuvieras en un barco pirata". En este momento, mi respuesta suele ser: "No te preocupes, te llevaré a ver mi estudio en algún momento. Hasta ahora, gasto 400 yuanes al mes en libros técnicos, lo que sólo puede considerarse un promedio entre los desarrolladores de software". ." ", el estudiante se desmayó en el acto.
(Nota: este grupo de estudiantes es nuevo en el desarrollo de software)
1.9 Utilice herramientas adecuadas
Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas. El desarrollo de software incluye una variedad de actividades, que incluyen recopilación y análisis de requisitos, creación de modelos de casos de uso, establecimiento de modelos de análisis y diseño, implementación de programación, depuración de programas, pruebas automatizadas, integración continua, etc. Se puede decir que es difícil prescindir de él. la ayuda de herramientas. Las herramientas pueden mejorar la eficiencia del desarrollo y crear software de mayor calidad con menos errores. Una combinación de armas. Es un nivel muy alto en el que volar flores y recoger hojas puede dañar a la gente. Hay una manera de ganar sin mover. No hay espada en la mano sino una espada en el corazón. Este estado es casi inalcanzable.
2. Ruta de aprendizaje del desarrollo de software
Dos mil años de confucianismo y el camino de Confucio y Mencio, la idea del medio dorado ha penetrado hasta la médula ósea. Ni ser agresivo ni conservador no es lo dorado. Es decir, encontrar la ruta y las reglas correctas para aprender a desarrollar software.
Desde la perspectiva de la planificación profesional de los desarrolladores de software, podemos dividirla aproximadamente en tres etapas: ingeniero de software → diseñador de software → diseñador de arquitectura o gerente de proyectos. 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 ascender. Primero, clasifiquemos las principales tecnologías que necesita aprender para desarrollar software de aplicaciones.
A. Los 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 desea convertirse en informático, puede adoptar el principio de "aprenderlo cuando lo necesite".
B. Un lenguaje de programación ahora es básicamente un lenguaje orientado a objetos, como Java/C++/C#, etc. Si realiza desarrollo WEB, también necesita aprender HTML/JavaScript, etc.
C. Una metodología o idea es ahora básicamente pensamiento orientado a objetos (OOA/OOD/patrón de diseño). De esto se derivan el CDB de desarrollo basado en componentes/la programación orientada a aspectos AOP, etc.
D. Una base de datos relacional, ORACLE/SqlServer/DB2/MySQL, etc.
E. Un entorno de desarrollo integrado IDE que mejora la productividad JBuilder/Eclipse/VS.NET, etc.
F. Una herramienta de modelado UML para modelar con ROSE/VISIO/Pen.
G. Un proceso de software, RUP/XP/CMM, etc., organiza muchas actividades de desarrollo de software a través del proceso de software para profesionalizar y estandarizar el proceso de desarrollo. Por supuesto, existen otros conocimientos de ingeniería de software.
H. Gestión de proyectos, arquitectura, conocimiento del framework.
La ruta correcta debe ser: B→C→E→F→G→H.
Hay que añadir algunos puntos más:
1). Lo que se debe agregar a A y C es que debemos comprender gradualmente la teoría de la programación y las ideas de programación en la práctica. Aunque continúan surgiendo nuevas tecnologías y la velocidad de actualización es vertiginosa, todo sigue igual y la teoría de la programación y las ideas de programación cambian muy lentamente. Una vez que domines la teoría y las ideas de programación, sentirás que puedes ver el sol a través de las nubes. El pensamiento orientado a objetos es muy crítico en la actualidad. Es una de las tecnologías sólidas. Necesitas invertir más tiempo en ella y las recompensas te sorprenderán.
2). Para las bases de datos, el aprendizaje es independiente y el momento depende de usted.
3). El lenguaje de programación sirve como línea principal de desarrollo de software de aprendizaje, mientras que el resto sirven como 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; los arquitectos se centran en C, F y H.
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 No es sólido, al igual que construir rascacielos sobre arena es bastante peligroso. Lo mismo ocurre con el aprendizaje de Java. Debe tener una base sólida antes de poder operar con facilidad en los campos J2EE y J2ME.
Tomar el examen SCJP (Programador Java Certificado por SUN) es una buena manera. Una razón es que para ser digno de la tarifa del examen oceánico de 1200 que paga, estudiará más. La segunda razón es que el examen SCJP le permite realizar la prueba. la base es muy confiable y requiere que estés tan familiarizado con los conocimientos básicos de Java como JDK, pero no debes pensar que solo porque hayas aprobado el examen SCJP serás excelente y serás favorecido; por empresas de software y podrá obtener salarios altos. Esta idea también es muy 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.
3.1.2 Comprensión de ideas OO
Después de dominar la sintaxis básica y los principios operativos del programa Java, podemos utilizar el lenguaje Java para implementar ideas orientadas a objetos. 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; es una de las tecnologías fuertes; Cuando necesites cambiar a otro lenguaje orientado a objetos para trabajar en el futuro, te sentirás particularmente familiar y amigable, y aprenderlo 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.
●Construir 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 establecer un modelo de análisis.
●Refinar el modelo de análisis al modelo de diseño.
●Utilizar tecnologías específicas para lograrlo.
●Pruebas, implementación y resumen.
3.1.3 Aprendizaje de APIs básicas
A la hora de desarrollar software no es necesario implementar todas las funciones, que es lo que dice el clásico refrán: “No es necesario reinventar la rueda. " ". Podemos usar clases, componentes y marcos ya preparados para crear nuestras aplicaciones. Por ejemplo, SUN ha escrito muchas clases para implementar algunas funciones subyacentes y, para las clases contenidas en los archivos JAR que descargamos, podemos llamar a métodos en las clases. para completar alguna funcionalidad o heredarla. Entonces, ¿qué métodos se proporcionan en estas clases para que los utilicemos? ¿Cuáles son el número y tipos de parámetros del método? ¿El constructor de clases requiere parámetros? Es imposible que un ingeniero de SUN haga una llamada de larga distancia internacional o incluso cruce el océano para decirte cómo utilizar la clase que escribió. Solo pueden proporcionarnos documentos para que los veamos. El documento Java DOC (Referencia 4.4) es un documento de este tipo. Se puede decir que es un documento para que los programadores se comuniquen con los programadores.
API básica se refiere a clases que implementan algunas funciones de bajo nivel y API altamente versátiles, como procesamiento/entrada y salida de cadenas, etc. Lo llamamos biblioteca de clases nuevamente. La primera forma de familiarizarse con la API es consultar más documentos 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 está involucrado en una amplia gama de campos. Diferentes campos tienen diferentes API. Nadie está familiarizado con todas las API. simplemente están familiarizados con el trabajo API que se utilizará. Si desarrolla interfaces, entonces necesita aprender API como Swing/AWT/SWT; si desarrolla juegos en línea, debe tener un conocimiento profundo de las API de red/API multimedia/2D3D, etc.; Para el desarrollo WEB, es necesario estar familiarizado con API como Servlet La. En resumen, debe elegir aprender una API específica según sus necesidades laborales o la dirección de su interés.
3.1.5 Uso de herramientas de desarrollo
Al aprender gramática básica y conceptos básicos orientados a objetos, desde la perspectiva de entrenar el dominio del lenguaje, la herramienta que recomendamos es Editplus/JCreator+JDK. , No se apresure a comenzar con entornos de desarrollo integrados como JBuilder/Eclipse en este momento, 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ás empezar a familiarizarte con el IDE.
El trabajo diario de un programador incluye muchas actividades, incluyendo edición, compilación y construcción, depuración, pruebas unitarias, control de versiones, mantenimiento de sincronización de modelos y códigos, actualizaciones de documentos, etc. Casi todas las actividades tienen herramientas dedicadas, si Si utiliza estas herramientas de forma independiente, será muy doloroso tener que activar constantemente la barra de tareas llena de herramientas, lo cual es muy ineficiente y propenso a errores.
Los IDE como JBuilder y Eclipse tienen editores, compiladores, depuradores, herramientas de prueba unitaria JUnit, herramientas de compilación automática ANT, herramientas de control de versiones CVS, generación y actualización de documentos DOC, etc., e incluso se pueden integrar herramientas de modelado UML. proporciona una gran cantidad de asistentes 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 principales IDE utilizados en el desarrollo de Java incluyen Eclipse, JBuilder, JDeveloper, NetBeans, etc., y Eclipse y JBuilder tienen las mayores cuotas de mercado. JBuilder ha sido el actor dominante en el entorno de desarrollo integrado de Java en los últimos años. Fue desarrollado por Borland, una compañía respetada por los programadores. En la guerra de los IDE de Java, derrotó a Visual Age para Java de IBM con sus rápidas actualizaciones de versiones. Espera y logra grandes cosas. Como IBM ya no era rentable con Visual Age para Java, simplemente lo aportó a la comunidad de código abierto y se convirtió en el predecesor de Eclipse. El Eclipse renacido se ha ganado el favor de la mayoría 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 gran 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 "Ruta de aprendizaje sobre desarrollo de software".
3.2 Puntos de aprendizaje
Después de establecer la ruta de aprendizaje, también necesitamos resumir los puntos de aprendizaje de Java. Estos puntos se han mencionado más o menos en el artículo anterior, pero el autor. Siento que estos lugares son especiales. Presta atención antes de resumirlos.