Después de tres años de desarrollo de Android, no tuve más remedio que cerrar y perder mi posición. ¡Es muy importante comenzar de nuevo y encontrar la "estrategia de ataque a la gran fábrica" correcta!

imagen

fondo

En los últimos días, he visto a algunos internautas publicar su experiencia de entrevistas. Algunos de ellos obtuvieron la oferta con éxito y otros no la entrevistaron. A continuación, veamos algunos contratiempos y confusiones encontrados durante las entrevistas de trabajo después del desarrollo de Android durante unos 3 años.

1. Desarrollo de Android, la pequeña empresa emergente para la que he estado trabajando durante 3 años desapareció repentinamente. ¿Dónde puedo encontrar mi "posición de boxes"?

Permítanme presentarme primero. Actualmente estoy trabajando en una pequeña empresa de nueva creación, y he estado allí durante más de 3 años, y el salario es promedio. Porque la empresa también se está transformando en los últimos años. La experiencia laboral se puede dividir aproximadamente en 3 etapas.

La primera etapa es iniciar el desarrollo de aplicaciones para Android desde que ingresa a la empresa, ya sea que se trate de una subcontratación o del producto principal de la empresa.

La segunda etapa es el desarrollo de ROM. Debido a la pequeña escala de la empresa, además del hardware y las cosas subyacentes, básicamente una persona es responsable de la modificación, compilación y lanzamiento de toda la ROM (una determinada ROM basada en MTK, y luego realiza algunas personalizaciones "extrañas" a nivel de marco de Android).

La tercera etapa es el presente. Las ventas de móviles adaptados a la ROM anterior no cumplieron con las expectativas, y la compañía ya no piensa invertir más, básicamente haciendo mantenimiento simple. Y la nueva tarea que me asignaron fue hacer algunas cosas en aprendizaje automático, como Tensorflow, OpenCV para procesamiento de imágenes , capacitación, etc.

Mi evaluación de mí mismo:

La capacidad de desarrollo de aplicaciones de Android es promedio, pero es lo suficientemente buena para las tareas generales de desarrollo de aplicaciones (porque es cierto que no he hecho el desarrollo de aplicaciones del proyecto oficial de la empresa durante un tiempo, pero eso no significa que las habilidades se hayan abandonado);

Conozca más sobre los marcos de trabajo de Android que los desarrolladores comunes;

La capacidad para resolver problemas y aprender y practicar nuevas tecnologías es buena (ya sea desde la compilación de AOSP por primera vez hasta el desarrollo y lanzamiento de la ROM completa más adelante. O desde no estar completamente familiarizado con el aprendizaje automático hasta poder describir algoritmos comunes de aprendizaje automático y usar Tensorflow para lograr algunos de estos requisitos).

Hablando de la entrevista de ayer, el entrevistador hizo preguntas casi una por una de acuerdo con las preguntas de la entrevista de Android que había preparado. Tales como: personalización de la vista, mecanismo del controlador, fugas de memoria, etc. Mi desempeño me dejó muy insatisfecho, pude responder la mayoría de las preguntas que me hizo, pero el lenguaje que organicé y los resultados de la descripción no fueron satisfactorios. La mayor parte se debe a mi propia capacidad para expresarme.Creo que puedo responder a estas preguntas con más calma si son preguntas de prueba escritas. Lo que espero más es la descripción de mi propia experiencia en proyectos. Porque aquí es donde soy diferente de otros candidatos. El entrevistador no me preguntó sobre la experiencia del proyecto en mi currículum. Aunque al final insistí en hablarlo yo mismo, al entrevistador no le interesó, y lo que dije fue muy seco. Eso es todo para la entrevista final.

Mis propios pensamientos: no estaba lo suficientemente preparado para responder estas "Preguntas de la entrevista estándar de Android" limpiamente . Al menos estas preguntas básicas deberían poder explicarse claramente en una oración o dos. No reflejaba la diferencia entre yo y otros solicitantes en absoluto. Creo que puedo hacer un buen trabajo de desarrollo de manera más rápida y estable, puedo estudiar el marco y el código fuente en profundidad y resolver algunos problemas difíciles, pero ¿cómo puedo hacer que el entrevistador piense lo mismo?

2. He estado trabajando en Android durante tres años y la empresa ya no puede pagar los salarios, ¿qué debo hacer?

Las coordenadas están en Chongqing y llevo más de tres años trabajando en Android. La empresa a la que llegué después de graduarme, porque los salarios no se podían pagar (recientemente, los salarios de hace tres meses se han pagado a plazos), así que comencé a buscar una salida.

Pero descubrí que realmente no hay nada que escribir en el currículum. Antes, un anciano del grupo decía todos los días que quería reclutar personas. Luego pedí un llamado material de referencia.

Vi que la otra parte escribió que había contribuido con código a aosp... liderando el grupo o algo así...

Como transportador de ladrillos, ¿de dónde vino esta experiencia?

Entonces, déjenme preguntarles, ¿cómo escriben su currículum?

imagen

A continuación, permítanme hablar sobre mi opinión personal.

Con respecto a la última oración del primer internauta, "Creo que puedo hacer un buen trabajo de desarrollo de manera más rápida y estable, puedo estudiar profundamente el marco, el código fuente y resolver algunos problemas difíciles, y ¿cómo puedo hacer que el entrevistador piense eso?"

Su confusión radica en cómo mostrar sus aspectos más destacados para suplir sus deficiencias (preparación insuficiente para las preguntas de la entrevista). Esto es conocimiento, y creo que va mucho más allá del significado de sus preguntas de memorización:

1. Independientemente de si estamos haciendo front-end/back-end/framework/hardware subyacente/algoritmos, lo que servimos es, en última instancia, una aplicación móvil. Por lo tanto, debemos tener una aplicación terminada como una pantalla (no una demostración). Esto lo impresiona más que una tontería que confunde al entrevistador (cuanto más bajo es el nivel del oponente, más efectivo es). Es mejor tener un producto de la competencia para comparar al mismo tiempo, destacando las ventajas (por supuesto, usted mismo elige el producto de la competencia). Si la otra parte empieza a preguntar cómo lo logramos. Este es nuestro campo de casa.

2. Debemos tener experiencia además del desarrollo de aplicaciones. El internauta mencionado anteriormente mencionó TF, que se puede usar

3. También necesitamos un ensayo para la entrevista. Si no hay nadie para preguntar y responder, es mejor que alguien coopere con nuestras palabras. El propósito es hablar claro. Es fácil de decir, pero muchos entrevistadores primerizos ni siquiera pueden hablar bien. Esto afecta directamente la primera impresión de las personas. Para entrevistas técnicas, se debe prestar más atención al uso de palabras. Es mejor usar con 1

¿Quieres cepillar las preguntas/memorizar las preguntas de la entrevista?Creo que es necesario. (Lo anterior es un caso de preparación insuficiente)

1. La entrevista es más práctica, y también se puede utilizar como reserva de respuesta temporal 2. Muestra tu actitud. "Pase mucho tiempo memorizando las preguntas" en sí mismo es el énfasis en la entrevista, en cuanto al efecto, es otra cuestión. 3. Comprueba y completa los vacíos en el conocimiento que tienes, consolidándolo y profundizándolo. No importa cómo lo mires, es algo bueno. Si el entrevistador ve que usted está cepillando las preguntas y piensa que cepillar las preguntas es un punto malo, significa que su ámbito es demasiado estrecho.

Desarrollo de tecnología Android. Desde la perspectiva del mercado de talentos, es muy pesado (front-end) y ligero (back-end), y es normal tener este tipo de vergüenza. Y los tres años de experiencia técnica de los internautas mencionados anteriormente, creo que el campo de visión no debe limitarse solo a Android.

Acerca de currículum

Parte de información básica:

1. Puede escribir su nombre, número de contacto y dirección de correo electrónico en el encabezado de su currículum. (llamativo, deja que otros vean de un vistazo cuando quieren contactar contigo). 2. Puesto objetivo: claro, no sea vago, lo mejor es llenar el puesto de contratación emitido por la empresa (el efecto general de Haitou no es bueno) 3. Intención de carrera: como: desarrollo de módulos de funciones comerciales o diseño de arquitectura. 4. Salario objetivo: puede escribir una discusión cara a cara o puede escribir un salario mensual objetivo (preferiblemente basado en el alcance).

Experiencia laboral, experiencia educativa:

Si se trata de instituciones 985 y 211, se puede escribir después de la introducción básica y antes de la experiencia laboral. Si se trata de una licenciatura general o una universidad junior, puede pasarla más tarde.

Experiencia laboral: escribe en base a la experiencia laboral, con el mayor contenido posible. Escriba de qué es específicamente responsable o en lo que está involucrado. Por lo general, un proyecto contiene los siguientes módulos:

1. Participar en el análisis y diseño del sistema 2. Desarrollo de módulos funcionales (qué funciones se pueden especificar aquí) 3. Modificación de defectos funcionales 4. Mantenimiento del sistema (manejo de problemas del sistema, actualización del sistema) (se utilizarán todos los proyectos)

habilidad profesional:

Si tiene uno o dos años de experiencia laboral (o uno o dos años de experiencia en escritura), probablemente pueda introducir las habilidades básicas.

Es mejor enfatizar las habilidades sobresalientes de manera específica de acuerdo con los requisitos de los puestos contratados por la empresa, y también puede enfatizar las tecnologías en las que es bueno. Evite escribir muchos nombres técnicos, para que otros puedan ver que salieron de la clase de capacitación.

Sección del proyecto:

1. Primero presente el entorno: como usar Jetpack + glide + OKHTTP, etc.) 2. La parte de descripción del proyecto: manténgalo simple y manténgalo en dos o tres líneas. El entrevistador básicamente sabe cuál es el nombre del proyecto y, por lo general, no lo mira con atención. 3. Enfoque: Cuanto más detallada sea la descripción de la responsabilidad, mejor.

Descripción técnica:

Indica los aspectos técnicos destacados utilizados. Úselo con precaución si no confía en sus habilidades. Generalmente, el entrevistador hará preguntas directamente sobre esta parte. Pero si tiene experiencia laboral, puede resumir algunas tecnologías nuevas y difíciles utilizadas en su trabajo. Esta es una pregunta adicional.

imagen

Dirección de desarrollo de Android

Mucha gente piensa que la profundidad de la tecnología de Android no es profunda, que la pila de tecnología no es enorme y que el desarrollo profesional de Android es limitado. Esto es realmente un gran malentendido.

Permítanme hablar primero de la tecnología. La pila de tecnología de Android se ha vuelto más y más grande con el paso del tiempo, y hay más y más subdivisiones, principalmente incluyendo desarrollo de aplicaciones de Android, seguridad inversa, audio y video, Internet de los vehículos, Internet de las cosas, desarrollo de teléfonos móviles y desarrollo de SDK.

Además, en términos de carrera, es cierto que el desarrollo de aplicaciones de Android es difícil de promocionar a CTO. El CTO general es principalmente el back end. Esto se debe principalmente a dos razones:

1. La pila de tecnología de back-end ha madurado muy temprano. Cuando cambié al desarrollo de Android hace 8 años, los desarrolladores de Java de 30 años ya eran muy buenos. Con el paso del tiempo, la cantidad de expertos en tecnología de back-end es mucho mayor que la de los expertos de Android. También son más poderosos. Cuando eran gerentes técnicos, todavía estábamos moviendo ladrillos. 2. El back-end de hecho puede coordinar la situación general, que es una posición importante en el negocio de la empresa.

Pero pasamos por alto el punto más importante: si estamos en el back-end, ¿podemos ser CTO? Creo que también es muy difícil, así que no te concentres solo en el lugar alto, primero piensa en qué tan lejos puedes llegar, no es razonable decir que el paisaje debajo de la montaña no está abierto cuando estás parado en la mitad de la montaña.

Cómo mejorar tu propia competitividad

seleccione un segmento

Hay muchos campos subdivididos para Android, los mencionados incluyen desarrollo de aplicaciones, seguridad inversa, audio y video, Internet de los vehículos, Internet de las cosas, desarrollo de teléfonos móviles, desarrollo de SDK, desarrollo de cajas de TV inteligente, etc. Por ejemplo, audio y video, cuando comencé con Android hace 8 años, el audio y el video generaban mucho dinero (en el lado de la PC) y el salario era ridículamente alto. Ahora, en el lado móvil, el audio y el video no son tan rentables como antes, y el desarrollo de Framework es una buena opción.
Intenta aprender conocimientos con una vida media larga.

La vida media del conocimiento se refiere a: a medida que se acorta el ciclo de actualización del conocimiento, se acelera la velocidad de fisión del conocimiento, ciclo en el que el conocimiento se vuelve obsoleto. Las profesiones con una vida media larga de conocimiento son más valiosas a medida que envejecen, como los profesores de inglés y los cirujanos, cuyos conocimientos se actualizan lentamente y casi nunca quedan obsoletos. Esto es absolutamente incomparable para nuestros programadores. La vida media de la mayor parte de nuestro conocimiento es relativamente corta, y un marco puede eliminarse en solo unos pocos años. Esto también lleva a los programadores a tener la necesidad de aprender continuamente nuevos conocimientos, y cada uno de nosotros tiene tiempo y energía limitados. Por lo tanto, de acuerdo con la vida media del conocimiento, es particularmente importante aprender estratégicamente.

imagen

El diagrama de vida media anterior no es completamente exacto, pero vale la pena consultarlo. Si se encuentra en otros campos técnicos, también puede consultar este diagrama de vida media. Esta imagen no nos dice que no aprendamos RN y programas pequeños, sino que aprendamos conocimientos con una vida media larga tanto como sea posible en función de nuestro propio trabajo.

Haz restas, trata de especializarte en una tecnología

En la sociedad actual, la división técnica del trabajo es cada vez más detallada, y cuanto más fina significa que la mayoría de las empresas (excepto los pequeños talleres) necesitan talentos especializados (preferiblemente competentes en una disciplina y en muchas disciplinas). Descubrirá que la mayoría de los técnicos que se destacan a su alrededor confían en una tecnología, pero es raro ver un montón de tecnologías que no son competentes. Por ejemplo, en el mundo de las artes marciales, los maestros mostrarán sus artes marciales al mismo tiempo en el duelo.Si el ama de llaves no es buena en las artes marciales y es abusada cada minuto, no hay necesidad de usar las artes marciales restantes para hacer el ridículo. Con reminiscencias de la versión real, fui a una gran empresa para entrevistar a Android. Como resultado, no sabía mucho sobre la tecnología Android y sufrí abusos de varias maneras. El entrevistador no estaba interesado en comprender la tecnología front-end restante, la tecnología back-end y python. Así que no es que mientras más habilidades sepas, mejor, debes hacer bien la resta, especializarte primero en una habilidad y luego aprender otras habilidades.

Hable acerca de la tecnología caliente de Android

Las tecnologías de moda relacionadas con Android también han aparecido con frecuencia en los últimos años, y solo actualizo la pantalla cuando no tengo nada que hacer. Permítanme hablar sobre mis puntos de vista sobre estas tecnologías de moda.

  • Kotlin, a juzgar por la vida media del conocimiento, vale la pena aprender este lenguaje, pero aún es muy difícil popularizarlo, porque Kotlin aún no ha demostrado la competitividad que debe usarse, y el costo de usarlo en muchas empresas es relativamente alto.
  • Flutter, desde la perspectiva de la vida media del conocimiento, este marco no existirá por mucho tiempo. En la actualidad, algunas empresas con reservas técnicas están tratando de experimentar. Si las reservas técnicas de la empresa no son suficientes, obviamente no es muy inteligente actuar precipitadamente como un conejillo de indias.

Ambas tecnologías se recomiendan para que todos las aprendan, pero no espere que le den demasiada competitividad. Li Si puede aprenderlas en una semana y Zhang San puede hacer lo mismo.

  • Framewrok ha sido la primera opción para el desarrollo de Android desde el principio hasta el final. En el pasado, el desarrollo de aplicaciones era demasiado popular y Framewrok era difícil de aprender, por lo que no muchas personas ingresaron a la industria. Pero ahora el mercado para el desarrollo de aplicaciones está saturado
    .

Ahora las grandes empresas necesitan que los desarrolladores tengan una comprensión más profunda del sistema Android, para que puedan desarrollar aplicaciones más estables y eficientes. Por lo tanto, la experiencia de desarrollo de Android Framework se está volviendo cada vez más importante en el proceso de búsqueda de empleo.

fin

Por último, compartir un material de estudio,

Debido al gran contenido del artículo y al espacio limitado, la información se ha organizado en un documento PDF. Si necesita un documento completo, puede agregar WeChat para obtenerlo de forma gratuita.

"Secreto de desarrollo de código fuente de Android Framework"

Este manual de aprendizaje analiza en profundidad el código fuente del sistema Android, explica en detalle el proceso de inicialización del marco de trabajo de Android y el principio de funcionamiento de los componentes principales, y tiene como objetivo presentar los conceptos básicos y las tecnologías del marco de trabajo de Android a través de ejemplos y casos, para ayudar a los desarrolladores a comprender mejor el diseño y desarrollo de aplicaciones de Android.
Este manual es adecuado para programadores con cierta experiencia en el desarrollo de aplicaciones de Android, con la esperanza de ayudar a los desarrolladores a comprender y dominar mejor esta tecnología a través del estudio en profundidad de Android Framework.

inserte la descripción de la imagen aquí

Capítulo 1 Análisis del proceso de inicio del sistema

El proceso completo de inicio del sistema Android se puede dividir en tres etapas: la capa del sistema Linux, la capa de servicio del sistema Android y el modelo de proceso Zygote desde la perspectiva del nivel del sistema; puntos de conocimiento: la primera sección Descripción general del inicio de Android, la segunda sección Análisis init.rc, la tercera sección Zygote y la cuarta
sección
Preguntas
de
la
entrevista

inserte la descripción de la imagen aquí

"La versión de Android más detallada de Kotlin Coroutine Entry Advanced Combat en la historia"

Tabla de contenido

inserte la descripción de la imagen aquí

Capítulo 1 Introducción a los conceptos básicos de Kotlin Coroutines

  • 1.1 ¿Qué es una rutina?
  • 1.2 ¿Qué es el alcance del trabajo, diferido y corrutina?
  • 1.3 Uso básico de corrutinas de Kotlin

inserte la descripción de la imagen aquí

"Análisis técnico de Flutter y combate real, materiales de aprendizaje de baldes familiares"

Tabla de contenido

inserte la descripción de la imagen aquí

Capítulo 1 Por qué Flutter es la mejor opción para el desarrollo multiplataforma

  • 01 ¿Por qué es esto?
  • 02 Desarrollo multiplataforma
  • 03 ¿Qué es Flutter?
  • 04 Funciones de aleteo

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Gaga246/article/details/131680567
Recomendado
Clasificación