Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Qué se necesita para ser un "maestro" en programación de software Java?

¿Qué se necesita para ser un "maestro" en programación de software Java?

Me hice esta pregunta cuando aprendí Java por primera vez y seguí respondiéndola yo mismo, pero pronto descubrí que la respuesta era incorrecta, así que traté de encontrar una respuesta correcta por mí mismo, pero cuando Al final, borré esta respuesta después de un tiempo y todavía me hago esta pregunta, una pregunta que no tiene respuesta. La razón por la que no hay respuesta a esta pregunta es porque todos miran el problema desde una perspectiva diferente y dan estándares diferentes, y no existe un estándar oficial. Por supuesto, esto es solo temporal. Quizás la respuesta sea mañana. Yo mismo me he rechazado nuevamente. Espero poder comunicarme más con ustedes y también espero que puedan expresar más sus opiniones. Java "alto", agregué comillas dobles a esta palabra "alto" para enfatizar que esta palabra "alto" no es un principiante de Java o un maestro de Java, sino un maestro. Combinado con su comprensión actual, hablemos de sus propias ideas, que se dividen en los siguientes aspectos: 1. JVM incluye los siguientes aspectos: familiarizado con las especificaciones de jvm, familiarizado con el mecanismo de administración de memoria de jvm, familiarizado con el mecanismo del cargador de clases de jvm, capaz de escribir las siguientes herramientas: Descompilar herramientas de código java ofuscar herramientas de código java herramientas de monitoreo de memoria jvm herramientas de generación de código de bytes 2. Marcos de código abierto Hay muchos marcos de código abierto relacionados con Java, y muchos de ellos se utilizan en el desarrollo de proyectos reales. Pero saber cómo utilizarla no significa nada. Sólo significa que estás familiarizado con esta herramienta y sólo la tratas como una herramienta. Si lo miras como una obra, no lo verás sólo desde fuera. Destripala y mira de qué está hecho su interior. Lo que quiero decir es que deberías leer su código fuente y ver cómo lo diseñó su autor y cómo fue concebido paso a paso. Enumere todos estos pasos y luego vea en qué lugares se encuentran las sutilezas del diseño que merecen una mayor consideración y exploración. Sentirás que te comunicas con un maestro y él te guía, aunque no puedas encontrarte con él. A menudo veo muchos currículums que dicen competente en struts, competente en hibernación, etc. ¿Son realmente competentes? Hágale una pregunta: si le pidiera que diseñara un marco con las mismas funciones que struts e hibernación, ¿qué aspectos consideraría? ¿Cómo lo diseñarías? Algunas personas dicen que dominan Java, por lo que en mi opinión, usted está en un nivel que es más que competente en el uso de su API. Entonces debe poder escribir un compilador de Java, ¿verdad? 3. Capacidades de diseño: este aspecto se refiere a sus capacidades de programación orientada a objetos. Entonces, ¿estás diciendo que debido a que estoy familiarizado con los patrones de diseño, mi nivel de habilidad de diseño es muy alto? no necesariamente. Los patrones de diseño simplemente le brindan una serie de soluciones. Incluso si estos patrones de diseño pueden resolver todos sus problemas, aún debe identificar cuándo usar el patrón, cómo abstraer un problema durante el proceso de uso y con qué granularidad se abstrae. Algunas personas compran un libro sobre patrones de diseño y repasan los ejemplos anteriores, afirmando estar familiarizadas con los patrones de diseño. El ejemplo de código de patrón en el libro de texto también es un ejemplo similar a hola mundo. El patrón de diseño no es una simple llamada a la API, sino su capacidad de diseño, que no se puede lograr utilizando la calabaza. 4 Subprocesos múltiples Debe dominar el uso de subprocesos múltiples. 5. Competente en el uso de tecnologías relacionadas con Java. Esto solo se refiere a la dirección j2ee. jms, jndi, ejb, servicio web, etc. Aquí no discutiremos bases de datos, ingeniería de software, etc. El enfoque se limita a Java. Por supuesto, la premisa es que comprenda la sintaxis de Java y esté familiarizado con la API de JDK. Lo anterior es sólo mi opinión personal. Sus discusiones y correcciones son bienvenidas.