Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo puede un programador desarrollador Java novato obtener un salario mensual de 20.000?

¿Cómo puede un programador desarrollador Java novato obtener un salario mensual de 20.000?

El primero son los conceptos básicos, como tener un conocimiento profundo de las clases de colección, paquetes concurrentes, IO/NIO, JVM, modelos de memoria, genéricos, excepciones, reflexión, etc. Lea el código fuente para comprender el diseño de la capa subyacente. Por ejemplo, las entrevistas generales preguntarán sobre ConcurrentHashMap, CopyOnWrite, grupo de subprocesos, CAS, AQS, optimización de máquinas virtuales y otros puntos de conocimiento, porque son absolutamente importantes para las empresas de Internet. Y la mayoría de las personas no pueden pasar esta prueba y todavía hacen ruidos y dicen que son inútiles y que por qué necesitan ser entrevistados. Por ejemplo, cuando se utiliza el grupo de subprocesos, debido al uso de colas ilimitadas, la capa interna aumenta cuando el servicio remoto es anormal. Si ni siquiera conoces el grupo de subprocesos, ¿cómo puedes jugarlo? Para dar otro ejemplo, debido a una mala comprensión de ThreadLocal, su uso para el control de seguridad de subprocesos no logró lograr una verdadera seguridad de subprocesos. Entonces, como programador JAVA que gana 20.000 yuanes, esta base es necesaria.

En segundo lugar, es necesario tener un conocimiento amplio de la tecnología de Internet. A partir del nivel inferior, debe tener al menos un conocimiento profundo de mysql, redis, mongodb, nginx, tomcat, rpc, jms, etc. Si me preguntas cuánto necesitas saber, puedo darte una idea aproximada. En primer lugar, para MySQL, necesita conocer la configuración de parámetros comunes y cómo elegir un motor de almacenamiento. También necesita comprender los motores de índice comunes y saber cómo elegirlos. Sepa cómo diseñar tablas, cómo optimizar SQL y cómo ajustar según el plan de ejecución. Para usuarios avanzados, es necesario diseñar y optimizar subbases de datos y tablas. Generalmente, las bases de datos de las empresas de Internet están separadas de la lectura y la escritura, y también están divididas vertical y horizontalmente, por lo que también hay un elemento de experiencia. Entonces redis y mongodb necesitan comprender los principios y ajustar los parámetros, mientras que nginx y tomcat son casi necesarios para JAVA Internet. De hecho, tiene algo que ver con la selección de la pila de tecnología de Alibaba. En cuanto a las cosas relacionadas con rpc, hay muchas, incluidos varios protocolos de red, tecnología de serialización, SOA, etc. Es necesario tener un conocimiento profundo. El marco RPC más utilizado en China es dubbo, que puede buscar usted mismo. En cuanto a las cosas relacionadas con jms, al menos debe comprender los principios. En términos generales, aquellos que no se especializan en el desarrollo de sistemas middleware y sistemas de soporte no necesitan conocer demasiados detalles. Los principales comúnmente utilizados por las empresas nacionales son activeMQ y kafka. Puede investigar todo lo que dije en profundidad. Creo que Alibaba p6 no es un problema. Por supuesto, esto también depende del desempeño de su entrevista en términos de capacidades arquitectónicas.

El tercero es la consideración de las capacidades de programación, las ideas de programación, las capacidades de los algoritmos y las capacidades arquitectónicas. En primer lugar, creo que los requisitos de algoritmos para los programadores de 2W siguen siendo relativamente bajos, no importa cuán avanzados sean, solo pueden ser árboles rojo-negro, pero deben conocer los algoritmos básicos de clasificación y consulta. El pensamiento de programación es imprescindible. Si me pregunta sobre AOP y IOC, al menos debe tenerlo claro. No necesito decir que ha utilizado todos los patrones de diseño, pero también puede tener una comprensión profunda de ellos. catorce o cinco tipos. No creo que sea fácil evaluar la capacidad de programación, pero si respondes una pregunta como clasificar 20 millones de usuarios según sus nombres y edades, puedes hacerlo fácilmente. Finalmente, está la capacidad arquitectónica. Esto no significa que deba diseñar un sistema que sea asombroso y altamente concurrente. Al menos le permite crear un sistema de venta flash, y el diseño para evitar solicitudes duplicadas se puede completar rápidamente. cualquier problema