¿Cuál es el plan de carrera para un programador Java?
Si eres un estudiante de escuela, primero debes aprender los conceptos básicos (como sistemas informáticos, algoritmos, principios de compilación, etc.) antes de considerar los siguientes estudios. Primera parte: para estudiantes que aún no han trabajado en Java, incluidos algunos estudiantes actuales y estudiantes que recién se están preparando para cambiar a Java.
1. Conceptos básicos de Java Primero busque un tutorial básico de Java para aprender. Aquí puede recomendar una dirección o puede consultar esta dirección para encontrar el video correspondiente. Al aprender los conceptos básicos de Java, debe intentar hacer todo lo posible. Muchas veces, cuando escribe y ejecuta cosas que da por sentado, encontrará que no es así. solo inténtalo. Después de aprender el contenido anterior, debe tener un conocimiento básico de Java. Puede escribir algunos programas simples en lenguaje Java y utilizar el editor más simple, como el Bloc de notas. En este momento, no se apresure a pasar a la siguiente parte. Deje unos días para escribir algunos programas y familiarizarse lo más posible con estos contenidos básicos.
2. Después de escribir programas durante unos días en desarrollo web, a menudo se sentirá confundido porque lo que escribe parece inútil, como implementar una calculadora simple y esperar a leer un archivo. En este momento debes aprender a escribir algo que te parezca interesante, por lo que debes adquirir más conocimientos. Estos contenidos están relacionados principalmente con el desarrollo web, incluidos conocimientos relacionados con HTML/CSS/JS (páginas frontales), Servlet/JSP (J2EE) y Mysql (base de datos). El orden para aprenderlos debe ser de adelante hacia atrás, por lo que lo primero que debe aprender debe ser HTML/CSS/JS (página de inicio). Puede encontrar esta parte en el sitio web de runoob arriba.
Puedes intentar escribir algunas páginas tú mismo, por supuesto, puedes hacer todo lo posible para que quede lo más hermoso posible. Esta parte del contenido no es particularmente importante en teoría para Java back-end, pero al menos debe alcanzar un nivel en el que puedas escribir algunas páginas simples tú mismo. A continuación, lo que necesita aprender es la parte Servlet/JSP (J2EE). Esta parte es una parte del desarrollo back-end de Java en la que debe ser muy competente. Por lo tanto, esta parte requiere la mayor cantidad de energía entre las tres partes. En este momento, debes aprender a usar herramientas de desarrollo en lugar del Bloc de notas. Puedes elegir eclipse. Después de descargar e instalar eclipse, siga el tutorial del vídeo paso a paso y asegúrese de hacerlo más. En cuanto a la selección de vídeos Servlet/Jsp, la industria reconoce los vídeos de Ma Soldier, por lo que se los recomendamos a todo el mundo.
Por supuesto, yo no he visto sus videos, así que no puedo decir nada demasiado absoluto. Si tienes una mejor opción, puedes limitarte a la tuya y no dejarme interferir. Originalmente planeé publicar un video didáctico, pero por cuestiones de tiempo decidí desistir. 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 transmisión en vivo y el número de grupo se encuentran en el lado izquierdo. mi blog personal. El último paso es aprender a usar una base de datos. MySQL es una buena opción de entrada, y la base de datos relacional principal en el campo de Java es MySQL. Esta parte generalmente se expone cuando aprende 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. Después de aprender el contenido anterior, aún no es suficiente para participar en el trabajo. Para mejorar la eficiencia del desarrollo, las empresas utilizarán algunos marcos web Java, por lo que también es necesario aprender algunos marcos de desarrollo. Actualmente, los más comunes son los marcos SSM, a saber, spring, springmvc y mybatis. Debe aprender a crear estos tres marcos y utilizarlos para realizar un proyecto web sencillo para agregar, eliminar, modificar y consultar. No es necesario que comprenda qué significan esas configuraciones y por qué debe realizarlas. Podrá aprenderlas más adelante.
Pero debes poder usar estos tres rápidamente para construir un marco web. Puedes registrar el proceso de tu primera construcción. Créeme, definitivamente lo usarás.
Otra cosa que hay que mencionar es que en el proceso de creación de SSM, es posible que a menudo entre en contacto con una herramienta llamada maven. Esta herramienta también es una herramienta que casi tendrá que usar en su trabajo futuro, por lo que también puede aprender sobre maven mientras construye SSM. En su etapa actual, solo necesita aprender sobre el uso básico de maven en Internet. A medida que aumente su experiencia laboral, gradualmente entrará en contacto con algunos usos de alto nivel.
Me gustaría recomendar una dirección para aprender el marco SSM. Hay un video allí, puedes verlo. 4. Encuentre un trabajo. Después de terminar de estudiar el marco de desarrollo, los que estén en la escuela encontrarán pasantías y los que se hayan graduado encontrarán trabajos de tiempo completo. Al mismo tiempo, no debes dejar de estudiar mientras buscas trabajo. En concreto, no debes dejar de estudiar en el futuro. Acaba de aprender a utilizar el contenido anterior rápidamente. Puede intentar aprender más gradualmente. Internet es su maestro más importante.
Parte 2: Para estudiantes que llevan menos de un año trabajando. Felicitaciones, en este momento ya tienes un trabajo en Java. En esta etapa es cuando creces extremadamente rápido y, a menudo, es posible que trabajes horas extras. Pero trabajar horas extras no significa que puedas relajarte. Recuerda siempre lo que dije, desde el momento en que ingresas a la industria debes seguir aprendiendo. Durante este año, debes leer al menos el libro "Pensamientos sobre programación Java". El contenido de este libro tiene como objetivo ayudarle a tener una comprensión más profunda de Java. Es una versión mejorada de los conceptos básicos de Java. Este libro es muy grueso. Me tomó tres meses leerlo. A velocidad normal, debería poder terminarlo en aproximadamente medio año. No estoy pidiendo demasiado, siempre y cuando termines de leer este libro dentro de un año. Por supuesto, lo que quiero decir con leerlo es absorberlo por completo, en lugar de leerlo una vez, por lo que es posible que leas algún contenido más de una vez. Con todo, 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 llevan 1 a 2 años trabajando. Durante este período, los estudiantes ya han adquirido una comprensión más profunda de Java. Sin embargo, la experiencia orientada a objetos puede no ser lo suficientemente profunda. Al programar, aún se mantiene en el nivel de completar funciones y rara vez considera problemas de diseño. Entonces, en este momento, llegaron los patrones de diseño. Estaba leyendo el libro "Dahua Design Patterns" y escribí una versión completa del blog de patrones de diseño. Por lo tanto, les pido a todos que comiencen a escribir blogs cuando hayan estado trabajando durante un año como máximo y el patrón de diseño sea el comienzo de su blog.
Por favor, recuerda que lo que te he mencionado son básicamente los requisitos mínimos, así que no tengas holgura, de lo contrario, después de cinco años, no deberías envidiar a otros cuyo salario es superior al tuyo, ni tampoco deberías envidiar. otros. Entraron en una determinada empresa. Este año, debes conocer bien los patrones de diseño y "Dahua Design Patterns" puede ser tu punto de partida. 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, "Refactorización para mejorar el diseño del código existente" y "Java eficaz". Con todo, en esta etapa, su tarea principal es mejorar sus capacidades de codificación y poder escribir código elegante.
Tercera parte: Para 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. Recuerda, todavía eres mucho más 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 "Pensamientos sobre programación Java". El contenido de este libro tiene como objetivo ayudarlo a comprender completamente la máquina virtual Java. En esta etapa, ya debe saber que Java se ejecuta en la JVM. Entonces, cuando se trata de JVM, no tienes ningún motivo para no saberlo.
Además, en los últimos dos años de trabajo, debe haber estado expuesto a la concurrencia hasta cierto punto. En este momento, debe tener una comprensión más profunda de los conocimientos relacionados con la concurrencia. Para esta parte, 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, hay mucho más por hacer en esta etapa. En este momento, debe tener una comprensión más profunda del marco que está utilizando y una comprensión más profunda de la biblioteca de clases Java.
Por lo tanto, debes mirar el código fuente de algunas clases en el JDK, incluido el código fuente del framework que estás utilizando. 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 preguntas como, ¿por qué este código está escrito así? ¿Por qué definir esta interfaz, parece redundante? De esto 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 irás desacelerando paso a paso. Y soy muy responsable al decirles que cuando estaba en esta etapa, aprendí mucho más de lo que se enumera aquí.
Así que no creas que has aprendido mucho. Lo que he dicho es solo el requisito mínimo. No soy solo yo, sino que muchas personas han aprendido mucho más que el alcance de este artículo. período. Si no puede seguir el ritmo, después de unos años, si el mercado de programadores no es bueno, probablemente no solo tendrá un salario más bajo que otros y la empresa no será tan buena como otras, sino que también usted no podrá encontrar ningún trabajo. Con todo, 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 sobre concurrencia es el contenido del paquete de concurrencia de Java java.concurrent). es decir, el contenido relacionado de JVM y JDK. Y necesita tener una comprensión más profunda del marco que está utilizando. Se recomienda leer el código fuente o leer la documentación oficial. Además, hay otra forma de aprendizaje que también se debe utilizar en la etapa de 2 años, y es hacer ruedas. No se deje engañar por el argumento de “no reinventar la rueda”, lo inventan las empresas para ahorrar tiempo y dinero. Reinventar la rueda puede no ser de valor para otros, porque es posible que la rueda que usted crea ya exista y, en general, la rueda que crea no es tan buena como la existente.
Pero no tener valor para los demás no significa que no lo sea para ti mismo. El proceso de hacer una rueda es un proceso de hacer algo desde cero. Este proceso puede brindarle un ejercicio sistemático. No solo prueba su capacidad de codificación, sino también su capacidad de diseño de marco. Debe hacer que su rueda sea lo suficientemente escalable y robusta. Y en el proceso de hacer ruedas, encontrará varios problemas, y estos problemas a menudo son oportunidades para que aprenda. Cuando construyas la rueda, definitivamente descubrirás que has ganado mucho. Por lo tanto, en esta etapa, además de comprender el código fuente JVM, JDK y el marco mencionado anteriormente, también se le pide que construya cualquier rueda que pueda imaginar basándose en el excelente código fuente de otras personas.
Parte 4: Estudiantes que han estado trabajando durante 3 a 4 años. Ya es difícil para los estudiantes en esta etapa mejorar y el aprendizaje en esta etapa suele ser más diversificado. Porque en los últimos tres años, debe haber estado más o menos 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 domina alguna de estas tecnologías, será una gran ventaja para usted en futuras entrevistas, por lo que si está interesado en una determinada tecnología, puede estudiarla en profundidad en este momento. La tecnología no tiene por qué ser la que utilizas en tu trabajo, pero debe ser relevante. Y cuando investigue una nueva tecnología, tenga cuidado de no actuar al azar. Algunos estudiantes se pusieron a trabajar en big data hoy, trabajando en cosas como Hadoop y hbase. Después de un tiempo, sentí que era aburrido y comencé a estudiar el caché distribuido, como Redis. Luego, después de un tiempo, comencé a estudiar computación distribuida nuevamente, como MapReduce o Storm. Como resultado, al final siento que lo sé todo y escribo con valentía en mi currículum que entiendo big data, almacenamiento en caché distribuido y computación distribuida. De hecho, cualquiera de ellos es simplemente superficial. Cuando llegue el momento, el entrevistador lo resolverá con sólo una pregunta casual.
Asegúrese de recordar que, como programador, puede estar expuesto a muchas tecnologías a diario, pero si desea aprovechar una tecnología, debe tener un conocimiento sólido de esta tecnología. Sólo la gran mayoría de la gente puede hacerlo. Por lo tanto, en esta etapa, ya no puede simplemente estudiar el contenido de los tres años anteriores. Aunque el estudio anterior aún debe continuar si no es lo suficientemente profundo, en este momento debe considerar más cómo desarrollar sus ventajas. También se puede llamar por diferencia. Creo que la diferencia no es difícil de entender, es hacerte único. Tus estudios en los primeros tres años son suficientes para convertirte en un desarrollador de Java básicamente calificado, pero aún estás lejos de convertirte en un excelente desarrollador de Java.
La llamada excelencia significa ser capaz de hacer lo que otros no pueden. Lo que ha aprendido en los primeros tres años puede ser dominado por muchos que han estado desarrollando Java durante varios años. Entonces, para diferenciarte, necesitas encontrar otra manera y encontrar una dirección para estudiar en profundidad, con la esperanza de que en el futuro puedas convertirte en un experto en este campo, como un experto en el campo de la computación distribuida, un experto. en el campo de big data y experto en el campo de la concurrencia, etc. Además, además de establecer tu diferenciación, también necesitas compensar las deficiencias en tus conceptos básicos. Hasta ahora no he mencionado los conceptos básicos. La razón es que los conceptos básicos son muy aburridos. Aprenderlos demasiado pronto no solo es fácil de confundir, sino que también puede causar sombra psicológica cuando estás confundido, por lo que no querrás estudiar estos conceptos básicos en el futuro. Pero los conceptos básicos son los que debes dominar cuando profundizas en algunos campos. Por ejemplo, si quieres estudiar computación distribuida, si no entiendes los algoritmos, ¿por qué no simplemente juegas con ellos? Por ejemplo, si desea realizar un almacenamiento en caché distribuido, pero no comprende la memoria del sistema informático, ¿cómo puede hacerlo?
Si tu base ya es muy sólida, felicidades, creo que te has dado cuenta plenamente de la ayuda de estas bases en tu trabajo anterior. Pero creo que la base de la mayoría de las personas es muy débil. Incluso aquellos que se han graduado en carreras especializadas, muchas personas 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, se necesita un año y medio para leer cada uno de estos libros básicos y realmente no puedes terminarlos, por lo que aún tienes que tomar una decisión. Aunque hacer más arte no es una carga, el problema es que hacer más arte tiene un precio, que requiere tu tiempo y energía. Personalmente, prefiero obtener el máximo beneficio al mismo precio.
En primer lugar, hay tres libros básicos que recomiendo encarecidamente: "Comprensión profunda de los sistemas informáticos", "Explicación detallada de TCP/IP, volúmenes 1, 2 y 3" y "Datos". Estructuras y Algoritmos". Entre ellos, hay tres libros sobre TCP/IP, pero aquí consideramos estos tres libros como un gran libro. Estos tres libros son adecuados para tres tipos de personas, respectivamente. "Comprensión profunda de los sistemas informáticos" es más adecuado para personas que han participado en el desarrollo web Java y el desarrollo back-end de aplicaciones. "Explicación detallada de TCP/IP Volumen 1, 2 y 3" es más adecuado para personas que hacen 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 la idoneidad mencionada aquí no significa que los otros dos libros sean inútiles para usted. Por ejemplo, si está desarrollando Java Web y aplicaciones back-end, el libro "Explicación detallada de Tcp/IP Volumen 1, 2 y 3" también le resultará de gran utilidad. Esto es sólo una clasificación de prioridades. Si tiene suficiente tiempo, lo mejor sería leer los tres libros de forma intensiva.
Pero si el tiempo es limitado, entonces elige el libro que te resulte más útil y léelo primero. En teoría, si puedes leer intensamente uno de estos tres libros este año, serás muy poderoso. Con la base y la experiencia laboral previa, podrás explorar tu propio campo. Durante este año deberás planificar tu propio campo, establecer tus propias ventajas y crear diferencias. Si no tiene lo suficientemente claro acerca de su campo, a medida que trabaje cada vez más, estará expuesto a más y más tecnologías. En este momento, fácilmente puede ahogarse en el océano de la tecnología. Cuanto más expuesto esté, cuanto más la use, más la usará, pero no tendrá ninguna ventaja. Algunos estudiantes pueden preguntar: "Yo, no sé cuál es mi campo. ¿Qué debo hacer?". A esas personas sólo quiero decirles: "Maldita sea, ¿me preguntas a mí? ¿Por qué no lo hago?". "Puedes aprender, ¿de acuerdo?"
Parte 5: Estudiantes que han estado trabajando durante 4 a 5 años, después de la experiencia del año anterior, creo que ya tienes ciertos conocimientos sobre En el campo que estás estudiando, en este momento deberías haber encontrado un cuello de botella técnico. No se apresure a mejorar sus habilidades en este momento. Es hora de mejorar su influencia. Puede intentar acudir a algunas empresas conocidas para mejorar su experiencia. Puede 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 para construir tus propios productos.
Este proyecto de código abierto es diferente de la creación de ruedas anterior. En este momento, realmente debes hacer todo lo posible para crear 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, el efecto de una mayor profundización es realmente mínimo, a menos que esté especializado en investigación académica. Desafortunadamente, la mayoría de los programadores no pueden hacer esto. 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. Los programadores son similares a las celebridades hasta cierto punto. Una buena serie de televisión o una película puede crear un grupo de estrellas. Los programadores a veces hacen lo mismo. Por ejemplo, existen varios proyectos populares en China, como Taobao, Alipay, QQ, Baidu, WeChat, etc. Cada uno de estos proyectos ha creado un grupo de programadores. Me atrevo a decir que si eres el desarrollador principal de cualquier proyecto aquí, el simple hecho de tener ese título ya es una gran ventaja para ti. Es más, no es solo eso. Después de todo, el título es solo un título. Más importante aún, al realizar este tipo de proyecto, debe ser muy poderoso para su experiencia.
Si quieres participar en un proyecto de este tipo, además de confiar en la suerte, la influencia también es un medio muy importante. Por ejemplo, si tiene cierta influencia en el campo de la informática distribuida y hay buenos proyectos relacionados con la informática distribuida, es probable que la otra parte lo invite. Incluso si alguien no lo invita y usted toma la iniciativa de ir a una entrevista, 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, en esta etapa, tu mayor tarea es mejorar tu influencia y prepararte para ese día en tu carrera laboral durante los próximos diez años. Si puede confiar en su influencia y en las habilidades que ha acumulado en el pasado para participar en un gran proyecto, tendrá éxito en los próximos cinco años. Por supuesto, ahora estoy completamente preparado y solo llevo menos de 4 años y medio como programador. Por lo tanto, en cuanto a la parte de 4 a 5 años, mi opinión puede no ser correcta, y aunque sea correcta, puede que no. ser adecuado 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í. Todo el artículo es muy largo, pero de hecho habla principalmente de dos partes, una es la preparación para la entrevista de reclutamiento social y la otra es el aprendizaje de la carrera en Java. Ya he dado mis propias opiniones sobre estas dos partes, pero nuevamente, cuando todos absorben conocimiento, deben tener la capacidad de extraer la esencia y eliminar la escoria. Parte de lo que dije puede ser correcto, otra puede ser incorrecta, otra puede ser adecuada para usted y otra puede no ser adecuada para usted. Debe poder juzgar por sí mismo. De hecho, ocurre lo mismo en tu vida y en tu trabajo. Hay todo tipo de personas a tu alrededor, algunas te agradan y otras te odian. 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 las buenas cualidades de las personas que odias y nunca matarlas a golpes con un palo, ya que esto sólo te costará muchas oportunidades de aprender y crecer. Bien, habiendo dicho tanto, paremos aquí