La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cuál es el plan de carrera para un programador Java?

¿Cuál es el plan de carrera para un programador Java?

Si eres un estudiante de la escuela, debes adquirir conocimientos básicos (como sistemas informáticos, algoritmos, principios de compilación, etc.) antes de considerar los siguientes estudios. Primera parte: para estudiantes que nunca han trabajado en Java, incluidos algunos estudiantes en la escuela y estudiantes que recién se están preparando para cambiar a Java.

Primero, los conceptos básicos de Java. Primero busque un tutorial básico sobre Java. Puede recomendar una dirección aquí, o puede consultar esta dirección para encontrar el video correspondiente. Cuando aprenda los conceptos básicos de Java, haga todo lo que pueda. Muchas veces cuando escribes sobre algo que das por sentado, descubres que no es así. Si no me crees, pruébalo. Después de estudiar lo anterior, debería tener un conocimiento básico de Java. Puede escribir algunos programas sencillos en lenguaje Java y utilizar el editor más sencillo, como el Bloc de notas. No se apresure a pasar a la siguiente parte en este momento. Quédese unos días más para escribir algunos programas y familiarizarse lo más posible con estos contenidos básicos.

En segundo lugar, desarrollo web, etc. Después de escribir un programa durante unos días, a menudo se sentirá confundido porque lo que escribió parece inútil, como implementar una calculadora simple y leer un archivo. En este momento tienes que aprender a escribir algo que te haga parecer interesante, por eso tienes que aprender más conocimientos. Estos contenidos están relacionados principalmente con el desarrollo web, incluidos HTML/CSS/JS (página de inicio), Servlet/JSP (J2EE) y Mysql (base de datos). Su orden de aprendizaje debe ser de adelante hacia atrás, por lo que lo primero que debe aprender debe ser HTML/CSS/JS (página de inicio), que puede encontrar en el sitio web de runoob mencionado anteriormente.

Puedes intentar escribir algunas páginas tú mismo. Por supuesto, puedes hacer todo lo posible para que sea el más hermoso. En teoría, esta parte del contenido no es particularmente importante para Java back-end, pero al menos debería alcanzar el nivel de escribir algunas páginas simples usted mismo. Lo siguiente que debe aprender es la parte Servlet/JSP (J2EE). Esta es la parte del desarrollo back-end de Java en la que debe ser muy competente, por lo que esta parte requiere el mayor esfuerzo entre las tres partes. , debes aprender a usar herramientas de desarrollo. No es un bloc de notas, por lo que puedes elegir eclipse. Al descargar e instalar eclipse, siga los tutoriales del vídeo paso a paso y asegúrese de hacer más. En cuanto a la selección de algunos videos de Servlet/Jsp, los videos de Soldier Ma son reconocidos en la industria, por lo que se los recomiendo a todos.

Por supuesto, yo no he visto sus vídeos, por lo que es difícil decirlo con seguridad. Si tienes una mejor opción, quédate con la tuya y no te dejes molestar por mí. Originalmente planeé hacer un video instructivo, pero decidí desistir por cuestiones de tiempo. Pero si tiene problemas mientras mira el video, puede venir a mi grupo de comunicación para hacer preguntas o ir a Douyu para ver mi transmisión en vivo y hacer sus preguntas. La dirección de la transmisión en vivo y el número del grupo se encuentran en el lado izquierdo de mi blog personal. El último paso es aprender a utilizar una base de datos. mysql es una buena opción de entrada. La base de datos relacional principal en el campo de Java es mysql. Esta parte generalmente se encuentra al aprender Servlet/Jsp. La parte JDBC es la parte relacionada con la base de datos. No solo debe aprender a usar JDBC para operar la base de datos, sino también aprender a usar herramientas de cliente de base de datos, como navicat y sqlyog.

3. Marco de desarrollo Cuando haya aprendido el contenido anterior, aún no está calificado para trabajar y necesita continuar aprendiendo. Para mejorar la eficiencia del desarrollo, las empresas utilizarán algunos marcos web Java, por lo que es necesario aprender algunos marcos de desarrollo. Los principales actualmente son los marcos SSM, a saber, spring, springmvc y mybatis. Debe aprender a construir estos tres marcos y usarlos para crear un proyecto web simple. No es necesario que comprenda qué significan esas configuraciones y por qué desea realizarlas. Esto queda para que lo entiendas más tarde.

Pero debes poder crear rápidamente un marco web utilizando estos tres. Puedes grabar tu primera construcción. Créeme, definitivamente lo usarás. Además, en el proceso de creación de SSM, es posible que a menudo entre en contacto con una herramienta llamada maven.

Esta herramienta es casi esencial para su trabajo futuro, por lo que también puede aprender algo sobre maven en el proceso de construcción de SSM. En esta etapa, solo necesita conocer el uso básico de Maven en línea. Algunos usos avanzados entrarán en contacto con usted a medida que aumente su experiencia laboral.

Recomiendo una dirección para conocer el marco SSM. Hay vídeos allí que puedes ver. 4. Encuentre un trabajo Una vez que haya terminado de estudiar el marco de desarrollo, necesita encontrar un trabajo, una pasantía escolar o un graduado a tiempo completo. Al mismo tiempo, no debes dejar de aprender mientras buscas trabajo. Para ser precisos, no puedes dejar de aprender en el futuro. Acabas de aprender a usar lo anterior de una sola vez. Puedes intentar aprender más gradualmente. Internet es tu maestro más importante.

Parte 2: Para estudiantes que hayan trabajado menos de un año. Felicitaciones, a estas alturas ya tienes un trabajo en Java. En esta etapa es cuando creces muy rápidamente y, a menudo, es posible que trabajes horas extras. Pero trabajar horas extras no significa que puedas relajarte. Recuerda siempre lo que digo. Desde el momento en que ingresas a la industria, debes continuar aprendiendo. Este año, al menos debes leer el libro "Pensamientos sobre programación Java". El contenido de este libro tiene como objetivo ayudarle a comprender Java más profundamente y es una versión mejorada de los conceptos básicos de Java. Este libro es muy grueso. Me llevó tres meses leerlo. A velocidad normal, debería poder terminarlo en aproximadamente medio año. Mis requisitos aquí no son altos, siempre y cuando termines de leer este libro dentro de un año. Por supuesto, cuando digo leer, me refiero a absorberlo por completo, no solo leerlo una vez, por lo que es posible que leas algún contenido más de una vez. En resumen, la idea central de aprendizaje en esta etapa es practicar en el trabajo y tener una comprensión más profunda de los conceptos básicos de Java.

Parte 2: Para estudiantes que han trabajado de 1 a 2 años. Durante esta parte del año, los estudiantes obtienen una comprensión más profunda de Java. Sin embargo, es posible que la experiencia orientada a objetos no sea lo suficientemente profunda. La programación todavía está en el nivel de completar funciones y rara vez se consideran los problemas de diseño. Entonces, esta vez, llega el patrón de diseño. Estoy leyendo el libro "Dahua Design Patterns" y escribí una versión completa del blog de patrones de diseño. Así que te pido que empieces a escribir blogs después de trabajar como máximo un año. El patrón de diseño es el comienzo de tu blog.

Por favor, recuerda que lo que dije son básicamente los requisitos mínimos. No te relajes, de lo contrario no envidiarás a otros que tendrán un salario mayor que tú dentro de cinco años, ni envidiarás a otros que se han incorporado. una empresa. Este año, debes conocer bien los patrones de diseño y "Big Talk Design Patterns" puede ser tu comienzo. Además, los patrones de diseño no son su única tarea este año. También necesita leer algunos libros sobre optimización de la escritura de código. Por ejemplo, la refactorización mejora el código existente y el diseño de Java eficiente. En resumen, en esta etapa, su tarea principal es mejorar sus habilidades de codificación y escribir código elegante.

Parte 3: Para los estudiantes que han estado trabajando durante 2 o 3 años, algunos estudiantes sienten que ya son muy buenos en este momento, por lo que no pueden evitar comenzar a relajarse lentamente. Recuerda, todavía eres joven. En esta etapa, hay un libro que debes leer. Se llama "Comprensión profunda de la máquina virtual Java". Este libro es definitivamente el libro más importante para los desarrolladores de Java, sin excepción. En mi opinión, este libro es más importante que las ideas de programación Java. El contenido de este libro tiene como objetivo ayudarlo a comprender completamente la máquina virtual Java. En esta etapa, ya debes saber que Java se ejecuta en la JVM. Por lo tanto, no hay ninguna razón para que usted no comprenda la JVM.

Además, en los últimos dos años de trabajo, debes haber estado más o menos expuesto a la concurrencia. En este momento, debería aprender más sobre la concurrencia. Recomiendo el libro "Programación concurrente de Java en la práctica". Mientras lea este libro, básicamente comprenderá la parte de concurrencia. Al mismo tiempo, en esta etapa hay que hacer mucho más que eso. En este punto, debería tener una comprensión más profunda de los marcos y las bibliotecas de Java que utiliza.

Por lo tanto, debes mirar el código fuente de algunas clases en el JDK, incluido el código fuente del framework que utilizas. El requisito previo para comprender estos códigos fuente es tener un buen conocimiento de los patrones de diseño. De lo contrario, cuando mires el código fuente, siempre tendrás este tipo de preguntas. ¿Por qué este código está escrito así? ¿Por qué definir esta interfaz? Parece redundante. También se puede ver que estos procesos de aprendizaje están entrelazados.

Si fallas en cualquier etapa, entonces realmente no podrás seguir el ritmo o serás más lento paso a paso. Y soy muy responsable al decirles que en esta etapa he aprendido mucho más de lo que se enumera aquí.

Así que no creas que has aprendido mucho. De lo que estoy hablando son sólo de los requisitos mínimos. No sólo yo, muchas personas aprendieron algo que está mucho más allá del alcance de este artículo. Si no puede mantenerse al día, unos años más tarde, si el mercado no es bueno, su salario puede ser más bajo que el de otros, su empresa puede no ser tan buena como otras y es posible que no pueda encontrar ningún trabajo. . En resumen, en esta etapa, lo que debe hacer es tener una comprensión profunda de las bibliotecas de clases Java y Java subyacentes (por ejemplo, el libro concurrente es Java y subcontrata el contenido de java.concurrent), es decir , El contenido relacionado de JVM y JDK. Además, debe tener una comprensión más profunda del marco que está utilizando. Se recomienda leer el código fuente o la documentación oficial. Hay otro método de aprendizaje que se debería poner en práctica en esta etapa de dos años y es hacer ruedas. No se deje engañar por el argumento de las empresas de “dejar de ser la rueda” para ahorrar tiempo y dinero. Es posible que volver a hacer la rueda no sea de valor para otros porque es posible que la rueda que usted hace ya exista y, en general, la rueda que hace no es tan buena como la rueda existente.

Pero no tener valor para los demás no significa que no tengas valor para ti mismo. El proceso de fabricación de ruedas es un proceso desde cero. Este proceso puede entrenarte sistemáticamente. No solo pone a prueba su capacidad de codificación, sino que también pone a prueba su capacidad de diseño de marcos. Necesita hacer que sus ruedas sean muy escalables y robustas. Y en el proceso de fabricación de ruedas, encontrará varios problemas, que a menudo son oportunidades para aprender. Cuando construyas una rueda, descubrirás que en realidad ganas mucho. Por lo tanto, en esta etapa, además de la comprensión mencionada anteriormente de JVM, JDK y el código fuente del marco, también cree cualquier rueda que pueda imaginar basándose en el excelente código fuente de otras personas.

Parte 4: Estudiantes que han trabajado de 3 a 4 años. Ya es difícil mejorar en esta etapa y el aprendizaje en esta etapa suele ser más variado. Porque en los primeros tres años, debe haber estado expuesto a otras tecnologías, como big data, almacenamiento en caché distribuido, servicios de mensajería distribuida, informática distribuida, equilibrio de carga suave, etc. Si puedes dominar alguna de estas tecnologías, será una gran ventaja para ti en futuras entrevistas, por lo que si estás interesado en una determinada tecnología,

En este momento, podemos estudiarla en profundidad. No es necesario que la tecnología se utilice en su trabajo, pero debe ser relevante. Y cuando aprenda una nueva tecnología, no se apresure. Algunos estudiantes fueron a estudiar big data hoy y trabajaron en cosas como Hadoop y hbase. Después de un tiempo, me aburrí y comencé a estudiar cachés distribuidos, como Redis. Luego, después de un tiempo, estudiaré informática distribuida, como Mapreduce o Storm. Al final, sentí que lo sabía todo. Big data, almacenamiento en caché distribuido y computación distribuida estaban en mi currículum. De hecho, cualquiera de ellos es sólo superficial. El entrevistador se dará cuenta de ti con una pregunta informal.

Asegúrate de recordar que, como programador, puedes estar expuesto a muchas tecnologías a diario, pero si quieres aprovechar una tecnología, debes comprenderla mejor que la mayoría de las personas. Por lo tanto, en esta etapa no se puede simplemente aprender el contenido de los primeros tres años. Aunque el estudio anterior continuará si no es lo suficientemente profundo, en este momento hay que considerar más cómo establecer sus propias ventajas, que también se pueden llamar diferencias. Creo que la diferencia no es difícil de entender, simplemente distíngase. Tus estudios en los primeros tres años son suficientes para convertirte en un desarrollador Java básicamente calificado, pero estás lejos de convertirte en un excelente desarrollador Java.

La llamada excelencia significa ser capaz de hacer cosas que otros no pueden hacer. Y lo que se aprende en los primeros tres años es algo que mucha gente puede dominar después de varios años de desarrollo de Java. Luego, para diferenciarse, necesita encontrar un nuevo camino y encontrar una dirección para seguir aprendiendo, de modo que en el futuro pueda convertirse en un experto en esta área, como un experto en computación distribuida, un experto en grandes data, experto en concurrencia, etc. Además, además de establecer sus diferencias, también debe abordar sus deficiencias. Hasta ahora no he mencionado lo básico.

La razón es que lo básico es aburrido. Aprender demasiado pronto no solo es fácil de forzar, sino que también es fácil crear sombras psicológicas, por lo que no querrás aprender estos conceptos básicos en el futuro. Pero los conceptos básicos son los que debes dominar a la hora de estudiar en profundidad algunos campos. Por ejemplo, si estudias computación distribuida, no conoces algoritmos. ¿Juegas a Maomao? Por ejemplo, si realiza almacenamiento en caché distribuido, no conocerá la memoria del sistema informático. ¿Cómo lo hiciste?

Si su base ya es sólida, felicidades, creo que ha experimentado plenamente la ayuda de estas bases en su trabajo anterior. Pero creo que la base de la mayoría de la gente es muy débil. Incluso aquellos que se han graduado en carreras especializadas no se atreven a decir qué tan sólidos son sus conocimientos básicos originales, como algoritmos, principios de sistemas informáticos y principios de compilación. Pero el tiempo de todos es limitado. He estado leyendo cada uno de estos libros básicos durante aproximadamente un año, pero realmente no puedo publicarlos, así que todavía tengo que tomar una decisión. Si bien el arte no es abrumador, el problema es que tiene un costo y requiere tiempo y energía. Personalmente prefiero sacarle el máximo partido a mi inversión.

En primer lugar, hay tres libros básicos que recomiendo encarecidamente: "Comprensión profunda de los sistemas informáticos", "Volumenes detallados de TCP/IP 1, 2 y 3" y "Estructuras de datos". y Algoritmos". Hay tres libros sobre TCP/IP, pero aquí los trataremos como un gran libro. Estos tres libros son adecuados para tres tipos de personas. Aquellos que tienen un conocimiento profundo de los sistemas informáticos son más adecuados para personas que se han involucrado en el desarrollo web Java y el desarrollo back-end de aplicaciones. Las explicaciones detalladas de los volúmenes 1, 2 y 3 de tcp/ip son más adecuadas para personas que realizan programación de redes. Por ejemplo, si usa netty para desarrollar, necesita tener una comprensión más profunda de TCP/IP. El libro "Estructuras de datos y algoritmos" es más adecuado para personas que realizan investigaciones informáticas, como la informática distribuida que se acaba de mencionar. Además, quiero enfatizar que el término "adecuado" aquí no significa que los otros dos libros no le sean útiles. Por ejemplo, si se dedica al desarrollo back-end de aplicaciones y web Java, el libro "Explicación detallada de TCP/IP, volúmenes 1, 2 y 3" también será de gran importancia para usted. Es sólo una cuestión de prioridades. Si tienes suficiente tiempo, por supuesto lo mejor es leer los tres libros.

Pero si el tiempo es limitado, elija primero el libro que le resulte más útil. En teoría, si puedes leer intensamente uno de estos tres libros este año, ya será muy impresionante. Con una base y experiencia laboral previa, puedes explorar tu campo. Este año debes planificar tus propios campos, establecer tus propias ventajas y crear diferencias. Si no conoce su campo, a medida que trabaje cada vez más tiempo, estará expuesto a más y más tecnologías. En este momento, les resulta fácil ahogarse en el océano de la tecnología. Parece que estás expuesto y utilizando cada vez más tecnologías, pero no tienes ninguna ventaja. Algunos estudiantes pueden preguntar: "Yo, no sé cuál es mi campo. ¿Qué debo hacer?". A esas personas sólo les quiero decir: "¿Qué diablos? ¿Por qué me lo preguntas? ¿Por qué no lo hago?". ¿Estudiar para usted?" ¿Está bien?"

Parte 5: Para aquellos que han estado trabajando durante 4 o 5 años, creo que han adquirido algunos conocimientos en su campo después de la experiencia del año anterior. En este momento debería haber encontrado un cuello de botella técnico. No se apresure a mejorar sus habilidades en este momento. Es hora de aumentar tu influencia. Puede intentar mejorar su experiencia acudiendo a algunas empresas conocidas. Puedes publicar algunos artículos para influir en más personas. Por supuesto, también puedes ir a Github para crear tu propio proyecto de código abierto y crear tus propios productos.

Este proyecto de código abierto es diferente de la producción de ruedas anterior. En este momento realmente hay que trabajar duro para ser una rueda que sea realmente valiosa para los demás. En esta etapa del aprendizaje técnico, es fácil encontrar obstáculos y, a menudo, después de alcanzar un cierto nivel, los resultados de su aprendizaje posterior son realmente mínimos, a menos que se especialice en investigación académica. Desafortunadamente, sin embargo, la mayoría de los procesos no pueden hacer esto, así que eso es lo que hacen los científicos. Mejorar la influencia en este momento no se debe solo a que es fácil encontrar cuellos de botella técnicos, sino también a que la influencia puede crear más oportunidades para usted. Cheng es como una estrella en cierto modo. Una buena serie de televisión y una buena película pueden crear un grupo de estrellas, y lo mismo ocurre con Cheng Can y Xu Yuan. Un buen proyecto puede beneficiar mucho a un grupo de personas. Por ejemplo, varios proyectos populares en China, Taobao, Alipay, QQ, Baidu, WeChat, etc.

Cada uno de estos proyectos ha logrado algo brillante. Me atrevo a decir que si eres el desarrollador principal de cualquier proyecto de TI, ese título ya es una gran ventaja para ti. Es más, más que eso, el título también es un nombre después de todo. Lo que es más importante es que la experiencia que se obtiene al realizar este tipo de proyecto debe ser muy poderosa.

Para participar en un proyecto de este tipo, además de depender de la suerte, la influencia también es un medio importante. Por ejemplo, si tiene alguna influencia en el campo de la informática distribuida y tiene algún buen proyecto relacionado con la informática distribuida, la otra parte probablemente lo invitará. Incluso si alguien no lo invita, cuando toma la iniciativa de entrevistarse, si la otra parte conoce su influencia en este campo, definitivamente jugará un papel importante, y este papel puede incluso exceder su capacidad técnica actual. Por lo tanto, tu mayor tarea en esta etapa es mejorar tu influencia y prepararte para ese día de tus diez años de vida laboral. Si puedes confiar en tu influencia y habilidades acumuladas para participar en un gran proyecto, te quedarás atrás en los próximos cinco años. Por supuesto, ahora estoy completamente preparado y no he considerado que sean cuatro años y medio, por lo que mi visión de cuatro o cinco años puede no ser correcta, e incluso si es correcta, puede que no sea adecuada para todos.

Así que espero que todos puedan usar su propio criterio para decidir cómo gastar este año. Conclusión Este artículo básicamente termina aquí. El artículo completo es muy largo, pero en realidad cubre principalmente dos partes: una es la preparación para las entrevistas de reclutamiento social y la otra es el aprendizaje de la carrera en Java. He dado mis propias opiniones sobre ambas partes, pero nuevamente, cada uno debe tener la capacidad de tomar la esencia y descartar la escoria al absorber el conocimiento. Algunas de las cosas que digo pueden ser correctas, otras pueden no serlo, algunas pueden ser adecuadas para usted y otras pueden no serlo. Deberías poder juzgar por ti mismo. De hecho, ocurre lo mismo en tu vida y en tu trabajo. Hay todo tipo de personas a tu alrededor, algunas te gustan y otras las odias. Pero, de hecho, las personas que te agradan también tienen defectos y las personas que odias también tienen ventajas. Tienes que aprender a aprender de las personas que odias y nunca matarlas a golpes. Eso sólo te costará muchas oportunidades de aprender y crecer. Está bien, eso es suficiente. Eso es todo por hoy.