Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo interpretar el código fuente de Dubbo

Cómo interpretar el código fuente de Dubbo

Tuve la suerte de unirme a Alibaba justo después de graduarme. Los colegas que me rodean son realmente amables.

No soy un ingeniero Java profesional, pero me especializo en telecomunicaciones. Más tarde, aprobé el examen de ingeniería de software 985, aprendí Java por mi cuenta durante dos años y encontré dos pasantías, una en NetEase y otra en Baidu. Después de revisar durante medio año antes de la contratación de otoño, finalmente recibí una oferta de BAT y otras empresas. Teniendo en cuenta la pila de tecnología y la velocidad de crecimiento, finalmente elegí ir a Alibaba. Me gustaría compartir mi experiencia de autoestudio y mi experiencia de contratación de otoño y, por cierto, brindarles información útil. Acumulación y precipitación antes de la suplementación de otoño

Una cosa en la que he insistido durante mis estudios de posgrado es en tomar notas y escribir blogs.

Tomar notas es registrar todas las cosas grandes y pequeñas durante el estudio. Puede ser una pregunta de una entrevista, puede ser el plan de estudio de una semana o puede ser un punto de conocimiento. Siempre hay algo que vale la pena documentar. Para mí es una especie de acumulación. En cuanto al blog, al principio solo lo usé para registrar proyectos, luego los volví a publicar, luego escribí artículos originales y compilé una serie de artículos, que fue más como una especie de precipitación.

Sin embargo, durante el período inmediatamente posterior al reclutamiento de primavera, descubrí un problema. He olvidado muchas cosas que aprendí antes, especialmente aquellos puntos de conocimiento que no entendí lo suficientemente profundo. Siempre es fácil de olvidar. Además, descubrí que, aunque registré muchos puntos de conocimiento y preguntas de la entrevista en mis notas, a menudo solo los leí una vez y nunca los volví a leer.

Esto también significa que, aunque hay mucho contenido grabado, en realidad se digiere y absorbe muy poco contenido. Mi mente está llena de puntos de conocimiento fragmentados y preguntas de entrevistas, y sé muy poco sobre el sistema de conocimiento completo. Estos problemas quedaron expuestos constantemente durante el reclutamiento de primavera y me hicieron pensar en ellos durante mucho tiempo.

Ante este dilema, quiero hacer un cambio. Ahora que tengo mucho tiempo, quiero restar estos contenidos y aprovechar esta oportunidad para derrocar mi sistema de conocimiento original y reconstruir un nuevo marco de conocimiento. En pocas palabras, voy a empezar a aprender el backend de Java nuevamente. Esta vez utilizaré una forma más eficiente para evitar los desvíos que tomé antes y revisaré de la manera más eficiente y razonable. Debido a que ya tenía la base antes, tenía confianza para lograr este objetivo y, en consecuencia, elaboré un plan de estudio claro y detallado para ello.

Voy a utilizar algunas palabras clave para describir la revisión de otoño de tres meses.

"Plan de aprendizaje específico y confiable"

En tres meses, primero organicé un plan de revisión basado en la hoja de ruta del backend de Java, y cada punto de conocimiento se organizará por un período de tiempo. . Por ejemplo, podría pasar un día revisando "Java Reflection", dos días revisando "Patrones de diseño" y una semana revisando "JVM Virtual Machine". Por lo general, hago un plan de mes completo a principios de mes y luego hago algunos ajustes de acuerdo con el progreso, pero básicamente puedo mantenerme al día con el progreso, y esto es bajo la premisa de que la revisión esté implementada.

Entonces, para la dura batalla del reclutamiento de otoño, creo que el plan designado es particularmente importante. Una vez que se establezca el plan, los objetivos estratégicos serán claros, las tácticas correspondientes se formularán claramente y la ejecución será más sólida.

"Escribir blogs e integrar puntos de conocimiento"

En cuanto a los métodos de revisión, consolido estos puntos de conocimiento principalmente leyendo blogs de alta calidad y combinándolos con la práctica de código. Por ejemplo, cuando estudie "concurrenthashmap" hoy, encontraré dos o tres blogs mejores, principalmente sobre interpretación del código fuente, y luego los integraré. Si faltan puntos de conocimiento, los agregaré. A veces miro yo mismo el código fuente del JDK para comprender mejor el contenido del blog. Después de completar la integración de conocimientos,

Además, después de revisar un tema completo, organizaré estos artículos en un tema, como el "concurrenthashmap" mencionado anteriormente, que en realidad pertenece a Java. Así que haré una columna de blog para completar el título de la serie de artículos sobre concurrencia de Java. Para el título de cada artículo, primero clasificaré el contenido del tema y luego comenzaré a clasificarlo.

Por ejemplo, para la contratación paralela de Java, primero escribiré sobre subprocesos múltiples de Java, luego escribiré sobre el modelo de memoria JMM y luego escribiré sobre grupos de subprocesos de Java, colas de bloques, clases de herramientas, clases atómicas, etc. etc. paso a paso.

Eso es todo, esta parte de la revisión ha terminado. La ventaja de escribir una serie de artículos es que puedo aclarar el contexto de principio a fin y resumir bien los puntos de conocimiento de cada parte.

A la hora de elegir un blog, he aprendido de experiencias pasadas y prefiero pasar media hora leyendo un artículo de alta calidad que leer cinco artículos malos en 10 minutos. La ventaja de la lectura en profundidad es que esta parte del contenido se puede integrar mejor en el sistema de conocimiento de su cerebro, en lugar de ser fugaz como otros artículos de comida rápida.

"Hacer proyectos para consolidar habilidades prácticas"

Debido a que los proyectos en los que participé durante la pasantía eran relativamente grandes y los módulos a los que estuve expuesto eran relativamente simples, no tenía una Tiene una buena comprensión del proyecto general, así que decidí utilizarlo. Durante este período, puede consolidar sus capacidades de práctica de proyectos. Las capacidades aquí se refieren principalmente a la capacidad de comprender la arquitectura del proyecto, la competencia en el desarrollo empresarial y, por supuesto, la familiaridad con varias tecnologías de back-end comunes.

Me llevó alrededor de un mes completar el desarrollo de ambos proyectos. Por supuesto, imita principalmente dos proyectos de código abierto. Ambos proyectos se desarrollaron rápidamente utilizando SpringBoot, utilizando algunas tecnologías de back-end comunes como redis y almacenamiento en la nube, así como algunos marcos web comunes. Además, también intervienen tecnologías como solr y rastreadores.

Aunque el proyecto no fue difícil, durante este período me familiaricé rápidamente con todo el proceso de desarrollo del proyecto. Seguí la versión a través de Git todos los días y escribí claramente lo que había hecho en cada versión. Esto también me familiarizó mucho con la estructura del proyecto.

Después del proyecto, también encontré algunos componentes de back-end de uso común para ejecutar demostraciones, lo que me dio una comprensión intuitiva de estas tecnologías, como dubbo, zookeeper, cola de mensajes, etc., que a menudo se solicitan. en las entrevistas. Estos intentos también me hicieron sentir más cómodo al comprender sus principios.

“Insista en responder preguntas y preste atención a los métodos”

Las preguntas sobre algoritmos son lo más destacado de la entrevista del examen escrito de reclutamiento de otoño. Cada estudiante de RD inevitablemente experimentará la devastación de las preguntas sobre algoritmos. lo cual es importante para Es aún más desalentador para un estudiante no especializado como yo. Debido a esto, abandoné muchos métodos para resolver preguntas de LeetCode y elegí una forma más efectiva de resolver preguntas.

En primer lugar, revisé la oferta de Jianzhi nuevamente y resumí cada pregunta, tratando de asegurarme de que cada pregunta pudiera recordarse en mi mente. Como todos sabemos, las preguntas de la oferta de apuntar con la espada son muy populares en las entrevistas, por lo que es muy importante responderlas primero.

Después de recibir la oferta de Jianzhi, por supuesto, debes cepillar LeetCode. Hay demasiados temas sobre LeetCode. ¿Cómo elegir? No me cepillé según las etiquetas ni el orden, sino que consulté una gran guía de cepillado de LeetCode en ese momento. Resumió cada tipo de preguntas y solo puso algunas preguntas clásicas en cada parte.

Así que probablemente revisé más de 100 preguntas de LeetCode una tras otra, y también hice un resumen de estas preguntas durante la segunda revisión.

Además de los dos bancos de preguntas clásicos anteriores, también me centré en artículos anteriores de los principales fabricantes. Esta parte se completa principalmente a través del banco de preguntas real de Niu Ke. com. Para ser honesto, las preguntas reales son muy importantes, porque las preguntas de la empresa no son como las preguntas de algoritmos habituales y pueden ser emocionantes, por lo que si no se adapta de antemano, sufrirá aún más. Después de terminar esta parte de las preguntas, mi revisión de los problemas algorítmicos básicamente ha llegado a su fin.

Cuando terminé de revisar todo el contenido, ya había comenzado la aprobación temprana. Finalmente es hora de ir al campo de batalla. Debido a que estamos completamente preparados antes de la guerra, todavía somos optimistas sobre el movimiento de otoño. Pero, de hecho, esta no es solo una batalla dura, sino también una batalla prolongada. Es fácil reírse el último.