Red de conocimiento informático - Aprendizaje de código fuente - ¿A qué distancia está el nivel de programación de los empleados comunes de una empresa de Alibaba?

¿A qué distancia está el nivel de programación de los empleados comunes de una empresa de Alibaba?

Como viejo programador que lleva más de diez años programando, aunque nunca me uní a Alibaba, también rechacé ofertas de Baidu y Tencent cuando cambié de trabajo en el medio y elegí una empresa de Internet que es más adecuado para mi nivel de programación El principal factor determinante es el entorno que tiene mucho que ver con mis habilidades básicas Hace unos días respondí una pregunta sobre quién tiene un nivel de codificación más alto y quién tiene un nivel de codificación más bajo. En una empresa grande o pequeña, hay factores externos que influyen, pero el factor principal soy yo, no tengo la determinación de mejorar mi nivel de codificación, no importa cuán bueno sea el entorno externo. .

En grandes empresas como Alibaba, debido a los acuerdos laborales relativamente completos, el envío de códigos normalmente requiere la aprobación del líder, lo que puede mejorar en gran medida la calidad del código hasta cierto punto. ser más estricto y el control de las pruebas también será más estricto. Las pequeñas empresas comunes pueden tener un poco menos de personal y menos control. Un sistema estricto y estandarizado puede promover una comprensión más profunda de los programadores hasta cierto punto. para mejorar y si está dispuesto a mejorar más rápido.

En realidad, cuando se trata de grandes empresas como Alibaba, es principalmente una cuestión de mentalidad de las personas. Sienten que las grandes empresas deben estar más estandarizadas que las pequeñas. Para alguien que ha experimentado una gran empresa. Sigo pensando que son solo un tornillo, también quiero ir a una pequeña empresa para poder desempeñarme más a fondo. Las personas de las pequeñas empresas anhelan el trato y los estándares de las grandes empresas. Al igual que las personas solteras, siempre quieren entrar a una ciudad sitiada, y quienes entran envidian la libertad de no estar casados. De hecho, ir y venir es solo eso.

Una vez dejé el puesto de director técnico de departamento en una empresa mediana para ingresar a una gran empresa. Ahora me imagino que en realidad no vale la pena cuando entro en una gran empresa madura. Mi contribución es solo una gota en el océano. Quiero progresar. Es extremadamente difícil lograrlo y las oportunidades reales todavía están en las empresas emergentes o en las pequeñas y medianas empresas. Por supuesto, estas cosas necesitan experiencia personal para sentirlas. Es difícil apreciar cuando eres joven y vigoroso. Simplemente sientes que la elección que has hecho es la correcta. Practica y discierne el verdadero conocimiento.

Espero que esto ayude.

¡Déjame responderte basándome en mi propia experiencia! Me dedico al desarrollo de Java. Antes de unirme a Alibaba, trabajé en otras empresas durante cuatro años. En los primeros dos años, lo que más se hizo fue traducir directamente el negocio a código, y lo que más se hizo fue cuajada. La ingeniería y el diseño estructurado no existen en absoluto y no se consideran el rendimiento, la escalabilidad, la facilidad de uso y la mantenibilidad. Simplemente implemente la función y utilice el lenguaje orientado a objetos para la programación orientada a procesos. (Porque todo el mundo hace esto) Principalmente porque me acabo de graduar y trabajé en el sistema ERP en esta empresa, así que simplemente ignoré las funciones si podían usarse. En los siguientes dos años, me cambié a una empresa de comercio electrónico. Esto también era un sumidero. El código era casi el mismo que el de una montaña. Cuando entré a hacer un inventario, lo primero que hice fue familiarizarme con él. negocio y luego reestructurarlo. Casi todas las personas que han hecho esto antes se han ido. La abstracción de modelos, las capas de dominio y las capas de módulos me hacen sentir bien después de una operación rápida. Pero después de dos años de superponer el negocio, estaba casi arruinado. Es comprensible sacrificar algo por la rápida iteración del negocio. Luego me fui [cubrirse la cara].

Cuando entré en Alibaba, estaba involucrado en el desarrollo de gama media. Lo que más me gusta hacer aquí es reinventar la rueda, haga lo que haga, tengo que prestar atención a la alta disponibilidad, reutilización, escalabilidad, mantenibilidad y legibilidad... Cuando escribo código, normalmente uso una interfaz de este tipo. Una interfaz, generalmente enciendo el fusible y el interruptor de degradación primero, bloqueos distribuidos y luego almacenamiento en caché, y luego la empresa usa el modelo de dominio para generalizar el modelo abstracto, el patrón de diseño de fábrica y el patrón de estrategia. Para admitir la escalabilidad, el punto de extensión spi debe personalizarse para proporcionar expansión. El código de una función empresarial está completamente separado. Sin embargo, la calidad de los proyectos y el código ha mejorado mucho en comparación con empresas anteriores. Sólo puedo decir que el medio ambiente tiene un gran impacto.

Aunque nunca he estado en una gran fábrica, todavía quiero dar una respuesta contundente, después de todo, muchos amigos que conozco trabajan o con los que he trabajado. MURCIÉLAGO.

Mi opinión es: BAT tiene muchas personas excelentes, así como gente común, aunque no todas pueden alcanzar el nivel técnico admirable, después de todo, la plataforma es alta, por lo que la visión se volverá más amplia; code Los requisitos son más estrictos, por lo que los programadores comunes se verán obligados a mejorar, si hay muchas personas talentosas a su alrededor, los programadores comunes también se verán afectados y mejorarán más rápido.

Hoy leí un artículo sobre mi experiencia de entrevista en Alibaba. Me gustaría compartirlo con ustedes para ver qué tan lejos estoy de ingresar a Alibaba.

Subprocesos múltiples de Java

El principio del grupo de subprocesos, ¿por qué deberíamos crear un grupo de subprocesos?

Ciclo de vida del subproceso, ¿cuándo aparecerá un proceso zombie?

¿Qué es la seguridad del subproceso y cómo lograr la seguridad del subproceso?

¿Cuántos grupos de subprocesos hay? ¿Crear parámetros básicos? ¿Cómo configurar razonablemente el tamaño del grupo de subprocesos?

Diferencias sincronizadas y volátiles, granularidad de bloqueo sincronizado, escenarios de interbloqueo simulados, atomicidad y visibilidad

modelo de memoria JVM relacionado

, mecanismo de GC y principio; Cuáles son los dos tipos de GC? ¿Cuándo se activará el GC completo?

Hay varios tipos de cargadores de clases en la JVM. ¿Por qué hay varios tipos?

¿Qué es el mecanismo de delegación de padres? Introducir algunos procesos operativos y los beneficios del modelo de delegación principal (realmente no lo sé...)

¿En qué circunstancias necesitamos destruir el modelo de delegación principal?

Ajuste común de JVM ¿Cuáles son los mejores métodos? ¿Qué parámetro se puede ajustar específicamente y a qué valor?

División de memoria de la máquina virtual JVM, cargador de clases, algoritmo de recolección de basura, recolector de basura, cómo se analiza la estructura del archivo de clase

Extensión de Java

Implementación roja; Principios y escenarios de aplicación del árbol negro;

¿Qué es NIO? ¿Para qué tipo de escenarios es adecuado?

¿Qué mejoras tiene Java9 sobre Java8?

¿Cuál es la estructura de datos interna de HashMap? ¿Cómo se implementa la capa inferior?

Hablemos sobre el uso y la implementación de la reflexión. ¿Es la reflexión muy lenta? ¿Deberíamos evitar usar la reflexión en nuestros proyectos?

Hablemos sobre los escenarios y la implementación de anotaciones personalizadas. /p>

p>

La diferencia entre List y Map, la diferencia entre Arraylist y LinkedList, la diferencia entre ArrayList y Vector

Spring

Los principios de implementación; y escenarios de Spring AOP (los escenarios de aplicación son muy importantes)

El alcance y ciclo de vida de Spring beans;

¿Qué mejoras ha realizado Spring Boot con respecto a Spring? ¿Qué mejoras ha realizado Spring 5 en comparación con Spring 4 (avergonzado, todavía usamos Spring 4 y no nos importan las versiones superiores)

¿Qué es Spring IOC? ¿Cuáles son las ventajas?

SpringMVC, proxy dinámico, reflexión, principio de AOP, nivel de aislamiento de transacciones

Middleware

Introducción completa del enlace de una sola llamada de Dubbo;

¿Cuántas estrategias de equilibrio de carga admite Dubbo?

El proveedor de servicios Dubbo Provider quiere controlar el límite superior de solicitudes concurrentes.

¿Cuántos métodos de configuración admite Dubbo al iniciar?

¿Cuántos productos de middleware de mensajes conoces? Una introducción a las ventajas y desventajas de cada producto;

¿Cómo garantiza el middleware de mensajes la coherencia de los mensajes y cómo implementar un mecanismo de reintento de mensajes?

Introducción al mecanismo de disyuntor de Spring Cloud;

Comparando Spring Cloud con Dubbo, ¿en qué escenarios se debe utilizar Spring Cloud?

Base de datos

Introducción al mecanismo de bloqueo: bloqueo de fila, bloqueo de tabla, bloqueo exclusivo, bloqueo compartido

Escenarios comerciales y métodos de implementación de bloqueo optimista;

p>

Introducción a las transacciones, comprensión de las cosas distribuidas, cuáles son las soluciones comunes, qué son el envío en dos fases y el envío en tres fases;

MySQL tiene tres formas principales de registrar el modelo binlog ? ¿Cuáles son los pros y los contras de cada modo?

Bloqueo MySQL, bloqueo pesimista, bloqueo optimista, bloqueo exclusivo, **

* Bloqueos compartidos, bloqueos a nivel de tabla, bloqueos a nivel de fila

El principio de las transacciones distribuidas es el envío en dos fases, sincrónico, asincrónico, con bloqueo y sin bloqueo.

Base de datos; nivel de aislamiento de transacciones, nivel de aislamiento predeterminado de MySQL, cómo Spring implementa las transacciones,

Cómo JDBC implementa las transacciones, implementación de transacciones anidadas, implementación de transacciones distribuidas

Todo el principio del proceso de análisis y ejecución de SQL; , Conversión de filas SQL;

Redis

¿Por qué Redis es tan rápido? ¿Cuáles son los problemas con el uso de subprocesos múltiples en redis?

¿Qué estructuras de datos admite Redis?

Problemas con las tablas de salto de Redis

¿Cómo puede Redis con un solo proceso y un solo subproceso lograr una alta concurrencia? p >

¿Cómo utiliza Redis Redis para implementar bloqueos distribuidos?

¿Cómo se implementa internamente la atomicidad de las operaciones de bloqueo distribuido de Redis en Redis?

¿Qué opinas después de leerlo? ¿Existe alguna diferencia entre tus requisitos y los de BAT?

De todos modos, creo que es un poco difícil pasar la entrevista. No he entendido muchas características de la nueva versión del framework. Parece que tendré que tomarme un tiempo para aprender algunas antes de este año. .

La mayoría de los programadores comunes en grandes empresas como BAT están demasiado especializados y básicamente hacen un buen trabajo en un determinado aspecto. Su capacidad general está muy por detrás, pero creen que pueden hacer cualquier cosa.

Digámoslo de esta manera, si comparamos a los programadores con los chefs.

Los programadores de empresas comunes son básicamente chefs en varios restaurantes y pueden cocinar todo tipo de platos.

BAT es el comedor real. Los programadores han visto todo tipo de platos, pero básicamente no saben cocinar ni uno solo. Muchas personas son el equipo de picado de cebollas verdes del Departamento de Logística de Yushanfang.

¿Qué tan lejos está el nivel de programación de los empleados comunes de la empresa de Alibaba? No tiene sentido decir que todos los programadores de Alibaba son increíbles. Las empresas comunes también tienen muchos programadores increíbles. Esto en sí mismo no es concluyente.

Los programadores de empresas como Alibaba deberían tener la suerte de encontrar el desarrollo de software de Internet a gran escala, como diseño de arquitectura, diseño de escenas, etc. Esto debería ser posible para muchos programadores. tus ojos y también puedes ejercitarte participando en él. De manera similar, aunque muchas grandes empresas de software no tienen escenarios como Alibaba, también tienen sus propios diseños y escenarios de aplicaciones especiales que no se pueden ver en Alibaba.

En cuanto al nivel de codificación de un solo programador, puede que no haya diferencia entre los programadores de empresas normales y Alibaba. En las empresas comunes, el software se fabrica estrictamente de acuerdo con especificaciones, procesos y pruebas. Cuando ingresa, también puede conocer a expertos que lideran proyectos y reciben tutoría de expertos. Después de escuchar lo que ha oído y ver, y trabajar duro para practicar, estos programadores. voluntad No se puede decir que el nivel sea peor que el de los programadores de Alibaba. Por supuesto, la reputación de Alibaba no es más que la estricta selección al ingresar. La base de estos programadores es buena, pero para ser verdaderamente competente, debes confiar en tus propios esfuerzos además del medio ambiente.

Pero todavía existen algunas diferencias entre los programadores de grandes empresas y los programadores de pequeñas empresas. Es posible que las personas de las pequeñas empresas solo estén expuestas a una pequeña cantidad de proyectos, mientras que, al igual que Tiger Balm, están expuestas a todo y pueden hacer algunos, pero la profundidad no es suficiente. Por ejemplo, si un programador de una pequeña empresa se dedica a la codificación Java hoy, es posible que se dedique a PHP para el siguiente proyecto y luego a Python para el siguiente proyecto. Hoy es un programa y cada dos meses puede ser el programa. diseñador o líder del próximo proyecto Esperar hasta que sea posible. Pero precisamente en cierto aspecto de la codificación no son tan expertos y hábiles como los programadores de algunas grandes empresas.

Además, los procesos de desarrollo y las especificaciones de las pequeñas empresas no son suficientes, algunas incluso necesitan ser construidas y ejecutadas, por lo que las reglas y regulaciones no están tan estandarizadas como las de las grandes empresas. Algunos incluso acceden a los clientes en línea sin realizar pruebas rigurosas, lo que permite a los clientes ser conejillos de indias y fracasar.

Entonces, como programador, lo mejor es empezar a ir a una gran empresa para aprender y practicar el desarrollo de software estandarizado, lo cual es muy beneficioso. En cuanto a si eres Alibaba, no es necesariamente cierto. Definitivamente es bueno estar en Alibaba.

En lo que respecta al nivel de codificación, la mayor parte todavía depende de sus propios esfuerzos. En particular, cultivar la capacidad de pensamiento, los conocimientos básicos, estar bien informado y practicar más y comunicarse son esenciales para mejorar su capacidad de codificación. De hecho, hay programadores talentosos, pero la gran mayoría de los programadores ni siquiera son talentosos. La mayoría de ellos simplemente dedican más tiempo a los elementos anteriores.

En términos de capacidad, los programadores de BAT son muy superiores a los programadores de pequeñas empresas; no creen que los programadores de pequeñas empresas tengan que hacerlo todo, por lo que las grandes empresas son sólo pequeños tornillos que se engañan a sí mismos y a los demás. Eso es todo: los programadores de las grandes empresas tienen más talento que los de las pequeñas. La tecnología depende del talento y el trabajo duro.

Un anciano que lleva tres años trabajando en Alibaba Dígalo. Lo principal es poder adquirir y ver experiencias, escenarios y desafíos que las pequeñas empresas no pueden brindarte.

Hablando de programación informática, es realmente un dolor de cabeza para las personas que aprenden informática todos los días. Nos enfrentamos a todo tipo de letras y todo tipo de símbolos especiales. La mayoría de las personas sólo pueden confundirse cuando los ven. Todo programador tiene buenas y bajas habilidades, y los programadores también enfrentan grandes dificultades a la hora de elegir una empresa.

Existe un fenómeno común entre las personas que buscan trabajo en la sociedad actual. Las personas que trabajan en pequeñas empresas quieren trabajar en grandes empresas, y las personas que trabajan en grandes empresas quieren trabajar en pequeñas y medianas empresas. empresas. Todo programador quiere tener la oportunidad de expresarse y poner en práctica los conocimientos que ha aprendido. Los programadores con mayores capacidades van a las grandes empresas y los que tienen capacidades ligeramente diferentes van a las pequeñas y medianas empresas. Sin embargo, el desarrollo de los dos en sus respectivas empresas es diferente.

Los programadores que trabajan en pequeñas y medianas empresas pueden tener un mayor margen de desarrollo en la empresa. Hay muchos programadores excelentes en las grandes empresas, al igual que Alibaba. Es posible que en este equipo, su propia capacidad. no se puede utilizar bien. Una cosa debe quedar clara: las personas con altas habilidades mejorarán cada vez más. Cada una tendrá sus propias características, aprenderán unas de otras y mejorarán entre sí, y estarán más motivadas para seguir adelante. Los programadores de empresas comunes tienen menos espacio para la superación personal y no tienen un nivel tan alto como los programadores de empresas como Alibaba.

Las grandes empresas también tienen altos requisitos para los programadores. Las dificultades que estos programadores tienen que enfrentar también son muy grandes, lo que los obliga a mejorar sus propias habilidades. Si uno va a una gran empresa como Alibaba, después de trabajar durante un período de tiempo, la cantidad de programadores que trabajan en Alibaba superará con creces la de los programadores de empresas comunes. Aunque los programadores de las grandes empresas quieren ir a las pequeñas y medianas empresas, es una pérdida mayor para ellas.

Para obtener más contenido de alta calidad, continúe prestando atención a Meike.com~~

Los programadores de grandes empresas superan a los programadores de pequeñas empresas en términos de experiencia y precisión en el código. A menudo profundizan en un determinado aspecto de la tecnología y son meticulosos e impecables en la práctica del código. Los programadores de pequeñas empresas no son tan buenos como los programadores de murciélagos en términos de profesionalismo y precisión. Debido al entorno general, es imposible que un programador sea responsable del código de un determinado módulo. A menudo trabajan como dos o tres personas. Una persona. Los negocios complejos que a menudo encuentran necesitan marcos y tecnologías existentes que no pueden resolverlo. Es necesario combinar múltiples marcos técnicos y puntos de conocimiento para resolver negocios complejos.

Entonces todos son programadores. El entorno y la plataforma han creado diferentes estilos de codificación y enfoques entre los programadores. Sin embargo, en términos de actitud laboral y concentración en la tecnología, los programadores de las grandes empresas sin duda tienen mejores condiciones para desarrollarse. estos buenos hábitos. Como programador, aún debes ir a grandes fábricas para experimentar diferentes culturas corporativas y empleados de mayor calidad a lo largo de tu vida. Tu propia experiencia y profundidad también serán diferentes.

Desde un punto de vista puramente técnico, las grandes empresas son incomparables con las pequeñas

Los sistemas de las grandes empresas son más complejos y la investigación es más profunda.

Por ejemplo, alta concurrencia, big data,

Las pequeñas empresas no tienen tanto tráfico ni volumen de datos, por lo que no hay forma de estudiarlo.

> Una gran empresa tiene N máquinas en un sistema.

Para ahorrar recursos, debemos estudiar cómo maximizar las capacidades de la máquina, optimizar el código y optimizar la lógica.

Una pequeña empresa puede tener una o dos máquinas para soportar un sistema, y ​​este puede funcionar normalmente siempre que no haya errores.

El aspecto no técnico depende de las capacidades comerciales de la empresa.

Opinión personal,