Comprenda cómo actualizar de programador a arquitecto en 5 minutos.

Para nosotros, los programadores, la forma de desarrollarnos es tomar el puesto de gestión, desde el desarrollo hasta el director del proyecto o incluso el director del departamento; o tomar la ruta de la actualización técnica. Sin embargo, en términos de rutas técnicas, no son pocos los programadores que no pueden actualizarse a un arquitecto. Por un lado, en muchos puestos de alto nivel de desarrollo en empresas, los programadores no pueden practicar o incluso tener acceso a las habilidades de los arquitectos. Por otro lado, muchos programadores ni siquiera conocen las habilidades y los caminos de actualización que los arquitectos necesitan dominar. Entonces, a juzgar por los resultados, al menos el 50% de los programadores se detienen en el nivel de "desarrollo avanzado", lo cual es muy lamentable.

En los últimos años, he estado trabajando duro para pasar de desarrollador senior a arquitecto. Aunque no he alcanzado el puesto en la actualidad, puedo hacer algunos trabajos de arquitecto. En este artículo, combinaré mi propia experiencia con la de algunos otros programadores para analizar las razones comunes por las que muchos programadores no pueden actualizarse a arquitectos, y mostrarles las dificultades de actualizar de desarrollo avanzado a arquitectos, y construir sobre esta base. Dar sugerencias de actualización relevantes.

1 Muchos programadores no pueden acceder a las habilidades de los arquitectos en su trabajo diario.
La mayoría de los programadores pueden acceder a técnicas de desarrollo avanzadas en el trabajo. Por lo tanto, no es difícil actualizar desde el desarrollo primario al desarrollo avanzado, pero los arquitectos son diferentes Arriba.

Por ejemplo, en una empresa de subcontratación, la mayoría de los programadores realizan trabajos repetitivos y el negocio ha cambiado, pero la tecnología utilizada sigue agregando, eliminando, cambiando y verificando. O en algunas empresas relativamente pequeñas, el equipo del proyecto puede no permitir que los programadores se involucren en el trabajo de arquitectura por consideraciones de monitoreo de costos y calidad. Incluso en algunas empresas de Internet con contenido técnico relativamente alto, desde la perspectiva de la encapsulación empresarial, algunas implementaciones de alta concurrencia y alta disponibilidad a menudo se encapsulan en métodos. Los programadores simplemente implementan funciones llamando a métodos, que pueden no ser explícitos a nivel de código. Vea las habilidades en arquitectura.

Sin acceso a las habilidades relevantes, las habilidades acumuladas al ver videos y materiales solos a menudo son vulnerables en el proceso de entrevista, lo que hace que sea imposible postularse para el puesto de arquitecto, lo que a su vez restringe el ritmo de desarrollo del programador al arquitecto.

A veces, cuando entrevisto al desarrollo avanzado, hago algunas preguntas detalladas sobre la arquitectura. Por ejemplo, pregunto qué componentes se utilizan en la comunicación entre módulos en su sistema. Muchos desarrolladores avanzados incluso están confundidos o en sus En mi opinión, es más llamar a métodos para lograr funciones.

2 Muchos programadores tienden a profundizar en las habilidades de la versión independiente. Muchos programadores que han
pasado el trabajo pueden no tener nada que hacer después de que las funciones implementadas pasan la prueba. Hay muchos programadores de este tipo. En pequeñas empresas o empresas de subcontratación, A menudo hay más programadores de este tipo, y en lo que respecta a la implementación, su competitividad no es diferente a la de los programadores que salen de cursos de formación, y tal vez estén más familiarizados con la experiencia empresarial.

O algunos programadores están motivados, pero profundizarán en los detalles técnicos de la versión independiente. Por ejemplo, pregunté cuál es la diferencia entre el método == del objeto String y el método equals, o cuáles son los puntos prácticos de ajustar la máquina virtual JVM. Ellos responderán este tipo de respuesta. Muy en su lugar. Sin duda, esto es mejor que los programadores que pueden escribir código, pero estas habilidades solo pueden considerarse habilidades de desarrollo avanzadas. Si sobrepasas tus habilidades en esta área cuando subes de nivel, es equivalente a buscar peces.

3 Enumere las tareas que los arquitectos normalmente deben realizar. De hecho, existe una brecha entre ellas y el desarrollo avanzado. Lo
anterior es un aspecto objetivo y subjetivo de las dificultades de las actualizaciones de arquitectos. Antes de explicar el método de actualización, echemos un vistazo a lo que realmente quieren los arquitectos. Qué hacer para aclarar la dirección de los esfuerzos.

Es necesario crear un marco de trabajo de alta disponibilidad. Por ejemplo, la forma más sencilla de crear un servicio de base de datos es considerar cómo asegurarse de que la empresa cambie a otra máquina si un servidor MySQL falla.

Es necesario considerar factores de alta concurrencia, a partir de este punto, los arquitectos al menos necesitan usar herramientas como nginx, mycat, netty, redis y considerar la construcción de clústeres que logren el equilibrio de carga.

La arquitectura diseñada debe implementarse en línea, o incluso si la acción en línea se realiza mediante operación y mantenimiento, pero el arquitecto debe al menos saber cómo implementar el clúster nginx y otros componentes en línea, por lo que el arquitecto debe comprender los comandos y scripts de Linux necesarios. Y aprenda sobre herramientas de implementación como jenkins.

Las habilidades anteriores no son fáciles de usar, si hay problemas en el proceso de desarrollo, implementación y operación, el arquitecto es responsable de resolverlos. Esto requiere que el arquitecto no solo sepa cómo construir el sistema viendo el video, sino que también tenga la capacidad de depurar netty y otros componentes, sino también que conozca el funcionamiento del clúster mirando el registro. Si el clúster tiene un problema, también debe saber cómo hacerlo rápidamente. resolver.

No solo debemos centrarnos en la tecnología, sino también combinar los negocios y cumplir con los requisitos, como agarrar sobres rojos a través de la arquitectura. Esto requiere que los arquitectos conozcan los pros y los contras de varios componentes para que puedan seleccionar y diseñar soluciones.

A juzgar por los requisitos anteriores para los arquitectos, es difícil pasar de un desarrollo avanzado a un arquitecto, y tiene sentido.

Inserte la descripción de la imagen aquí
Puede agregar el grupo 960994558 si necesita organizar alguna información

4 A partir de la operación y el mantenimiento, familiarizado con las habilidades de introducción del
arquitecto. Es difícil actualizar al arquitecto, pero no es imposible. Para el desarrollo avanzado, a partir de la operación y el mantenimiento, es posible que esté familiarizado con las habilidades del arquitecto.

1 Por ejemplo, comience con los scripts ant, los scripts jenkins y los scripts de shell de Linux. Puede conocer el método de implementación del sistema y estar familiarizado con las habilidades necesarias de depuración de Linux.

2 Al observar los archivos de configuración de nginx, dubbo o zookeeper, comprenda el modo de funcionamiento de cada componente y utilícelos para comprender los métodos de configuración de equilibrio de carga y conmutación por error en el sistema de alta concurrencia y alta disponibilidad.

3 Puede observar registros relacionados en línea, comprender el estado de la implementación del sistema y comprender la relación entre muchos componentes desde el nivel de la arquitectura.

Los scripts y registros mencionados en los pasos anteriores deben estar visibles en el trabajo normal siempre que se actualicen, o podemos comunicarnos con el personal de operación y mantenimiento para obtener más información, y el conocimiento de la implementación y configuración de los componentes mencionados anteriormente no es difícil de conocer. En este proceso, habilidades como "modificar la configuración" y "construir componentes" no están involucradas, después de todo, esta es una etapa familiar.

5 Resuelva problemas más prácticos, comprenda la configuración clave del componente y comprenda el código subyacente del componente Una vez que el
programador esté familiarizado con las habilidades básicas de implementación y arquitectura, puede participar en la resolución de algunos problemas prácticos. En la empresa, los problemas en las fases de prueba y en línea no pueden contarse como pequeños, y también contendrán muchos problemas relacionados con la arquitectura, como que Kafka no está configurado correctamente, lo que genera una acumulación de mensajes, o la configuración del tiempo de espera de dubbo es demasiado larga, lo que hace que falle el tiempo de espera del enlace de llamada. , O si el tiempo de espera de redis es demasiado largo, resultando en una excepción OOM. Hay muchos tipos de problemas similares, solo los inesperados, y no hay ningún imposible.

Al principio, los programadores pueden seguir al personal superior para verificar el problema, o después de encontrar el problema, revisarlo manualmente, aprender el punto de partida del arquitecto para analizar y resolver el problema, ir y venir, estar familiarizado con la configuración del componente y comprender la capa inferior del componente. Code, familiarícese con el esquema de implementación de la configuración de varios componentes del marco.

Esta etapa sigue siendo un "aprendiz", pero al menos desde un punto de vista práctico, dominar las habilidades requeridas por el arquitecto. En comparación con ver videos y acumular las habilidades de los arquitectos a puerta cerrada, la experiencia relevante obtenida a través de los pasos anteriores proviene de la realidad y es, sin duda, más valiosa.

6 Si es necesario, hay que saltar para obtener las oportunidades prácticas de los arquitectos.De
hecho, en las pequeñas empresas e incluso en las empresas de subcontratación, hay oportunidades para comprender e incluso practicar las habilidades relacionadas de los arquitectos mencionadas anteriormente. Una vez que el programador ha dominado las habilidades relevantes del arquitecto a través de los pasos anteriores, si tiene la oportunidad de practicar, puede convertirse rápidamente en un verdadero arquitecto.

Este tipo de oportunidad práctica no es difícil de encontrar en las grandes empresas, pero puede que no haya muchas en las pequeñas, pero no importa, en este momento, si sales a una entrevista para el puesto de arquitecto, básicamente no es difícil. Veamos las preguntas de la entrevista para arquitectos.

1 ¿Cómo implementar nginx (u otros componentes) para lograr una alta disponibilidad?

2 En el clúster de Redis, ¿cómo se realiza generalmente la recuperación ante desastres?

3 ¿Cómo lograr la duplicación de mensajes en la cola de mensajes de Kafka? ¿Cómo garantizar que los mensajes no se consuman repetidamente?

4 O haga preguntas de bajo nivel, como cómo funciona el índice de lectura y escritura en netty.

O en esta etapa, es posible que no pueda responder bien a las preguntas anteriores, pero una vez que haya entendido la forma en que se construyen los componentes a nivel de operación y mantenimiento, o haya entendido los métodos de operación e interacción de los componentes mediante la resolución de problemas reales, podrá estudiar el código subyacente relevante, incluso si no lo sabe Demasiada experiencia práctica de los arquitectos, tales preguntas no son difíciles de responder.

Quizás un arquitecto que no tiene mucha experiencia práctica lo pasará mal en la empresa.Los líderes y miembros del equipo pueden sentir que carecen de experiencia práctica, pero la mayoría de los arquitectos también acumulan un poco de experiencia relevante a través de la práctica. En esta etapa, si está dispuesto a escuchar más y ver más preguntas y actualizar a una estructura superior, estará a la vuelta de la esquina.

7 Resumen, después de actualizar a un arquitecto, habrá más oportunidades.
De hecho, para aquellos de nosotros que hacemos TI, actualizar a un arquitecto puede no ser la única ruta de desarrollo, pero no todos son adecuados para la administración. Si está tomando la ruta de bonificación técnica, puede ser una ruta de desarrollo más apropiada desde el arquitecto hasta el experto técnico.

Para el desarrollo avanzado, puede haber un fenómeno de 30 o 35 años. Después de todo, los graduados o aprendices dominan fácilmente las habilidades necesarias para el desarrollo avanzado. No hay ventaja competitiva a una edad avanzada, pero se debe precisamente a la actualización a arquitecto No es tan fácil: a los 35 años, es posible que aún puedas competir.

Además, una vez que se actualice a arquitecto, puede encontrar una pequeña empresa para que sea el técnico a cargo cuando se retire, para que los ricos estén seguros, para que no lo eliminen como los viejos agricultores de código; si ingresa, puede ir a una gran fábrica a practicar. Fan, y luego expanda la influencia a través de varios canales, entonces realmente se puede decir que se convierte en un maestro técnico. Por el contrario, si se detiene en el desarrollo de alto nivel, aunque también puede aumentar su salario mediante cambios de trabajo, el patrón no ha sido tan amplio como el de un arquitecto.

Supongo que te gusta

Origin blog.csdn.net/weixin_52622200/article/details/110670131
Recomendado
Clasificación