¿Qué es un ingeniero full stack?
La ley 8/2 se aplica en todas partes. Los ingenieros completos son personas que dominan el 20% de las habilidades de uso común, pero ese 20% de las habilidades se usan el 80% del tiempo y el 80% restante no se usa comúnmente. Busquémoslo en Google.
Algunas personas dicen que los ingenieros full-stack llevan muchos años en China y se les llama webmasters. Esta afirmación es algo confiable pero no tan confiable. Yo mismo he sido webmaster y sé que para serlo es necesario dominar muchas tecnologías. Lo que no es confiable es que muchos webmasters en realidad no han escrito mucho código, sino que solo dominan el uso de algún software de creación de sitios web para crear sitios web.
El valor de la ingeniería full-stack
Algunas personas dicen que no importa lo increíble que seas, aún conoces cinco habilidades. ¿Puedes hacer el trabajo de cinco personas? Un ingeniero full-stack no significa que una persona pueda hacer el trabajo de varias personas, sino que debe mirar este problema desde múltiples aspectos.
Pensamiento Global
El desarrollo de proyectos modernos rara vez utiliza solo una o dos tecnologías, especialmente bajo la tendencia de Internet móvil. La tecnología utilizada en cualquier proyecto de Internet requerirá desarrollo back-end, desarrollo front-end, diseño de interfaz, diseño de producto, base de datos, varios clientes móviles, compatibilidad con tres pantallas, diseño API restFul y OAuth, etc. Algunos proyectos de vanguardia pueden utilizar aplicaciones de una sola página, Web Socket, HTML5/CSS3 y otras tecnologías, así como desarrollo de terceros, como aplicaciones de Weibo de la cuenta oficial de WeChat WeChat, etc.
La interfaz web está lejos de limitarse a recortar una imagen y utilizar jQuery y AJAX para ser compatible con varios navegadores. Para las interfaces web modernas, es necesario utilizar desarrollo modular, compatibilidad multipantalla, MVC, diversas interacciones y optimizaciones complejas, e incluso utilizar Node.js para ayudar en el desarrollo de interfaces.
En consecuencia, un proyecto moderno es una estructura muy compleja. Necesitamos que alguien tome el control de la situación. No necesita ser un experto senior en diversas tecnologías, pero sí debe estar familiarizado con diversas tecnologías. Para un equipo, especialmente una empresa de Internet, es muy importante tener a alguien que piense globalmente.
Por ejemplo, si es un proyecto que manejo, definitivamente prestaré atención a la optimización de la página web y también consideraré la compatibilidad de la API para varios clientes, y también consideraré la compatibilidad de tres pantallas. No diría usar AJAX por completo en un proyecto sin considerar el SEO, ni ignoraría la velocidad de acceso a la funcionalidad. Manejaré bien esta balanza porque conozco su peso y su costo de implementación.
Coste de comunicación
Cuanto más grande sea el proyecto, mayor será el coste de comunicación. Cualquiera que haya realizado gestión de proyectos sabe que la mano de obra en el proyecto es 1+1
El costo de los ingenieros full-stack es casi nulo, porque comprenden diversas tecnologías, tienen confianza y pueden confiar en sí mismos. si no tienen cuidado. Incluso cuando se trabaja en equipo, comunicarse con diferentes técnicos es mucho más fácil. Si permite que un back-end se comunique con un front-end, es completamente imposible que el diseñador y el back-end se comuniquen. Pero si una persona comprende el diseño del producto, el front-end y el back-end, entonces los resultados de la comunicación son obviamente diferentes, porque la otra parte puede entender lo que dice.
Empresas de nueva creación
Para las empresas de nueva creación, el valor de los ingenieros a tiempo completo es muy grande. Las empresas de nueva creación no pueden tener todo tipo de talentos como las grandes empresas. Por eso necesitamos un generalista que pueda asumir diversas tareas y bloquear varias panaceas. Para las nuevas empresas, es imposible decir que todo tipo de talentos para los clientes de front-end y back-end de DBA estén listos. Muchos trabajos no están saturados y nadie puede hacerlo. La subcontratación no confía en la calidad, por lo que los ingenieros de tiempo completo. son una excelente manera de ahorrar dinero. Aunque el salario de un ingeniero a tiempo completo será mucho más alto que el de un ingeniero ordinario, el costo total será mucho menor.
El dilema de los ingenieros Full-Stack
Digo que la tecnología tiene dos direcciones de desarrollo, una es vertical y la otra es horizontal, una es la navaja suiza y la otra es Moye, un general diligente. No hay nada bueno o malo entre estas dos direcciones, cuando se desarrollan hasta cierto punto, se fusionarán entre sí, al igual que el Zen budista chino.
De hecho, al final, la iluminación gradual y la iluminación repentina son lo mismo, y los cambios repentinos provienen de un progreso gradual.
Si una empresa no comprende el valor de los ingenieros full-stack, entonces el estado de los ingenieros full-stack será muy vergonzoso. Para decirlo amablemente, los ingenieros full-stack saben todo y nada. Durante una entrevista, la otra parte me hizo una pregunta muy básica, pero no pude responderla. Puedo fabricar productos, sé lo que está pasando, no cometeré esos errores, simplemente no puedo responder los conceptos. Es muy fácil vencerme. Por lo tanto, al solicitar un trabajo y realizar una entrevista, a veces sufrirás una desventaja y el trato puede no ser tan bueno como el de alguien que está profundamente involucrado en un determinado campo.
Debido a que a menudo viajo entre varias tecnologías, a menudo olvido la sintaxis del código y algunas API, por lo que a menudo necesito verificar la API e incluso la sintaxis. Creo que apenas podría funcionar sin Google. Para algunos, esto es una señal de tecnología insuficiente. Lo único que recuerdo es una clave, un índice de cómo encontrar la respuesta, no todo. El cerebro humano no es una computadora, por lo que no se me puede pedir que lo escriba todo.
Una vez el entrevistador me hizo una pregunta y le dije que no lo sabía, pero supongo que es así. La otra parte me preguntó por qué adivinaste esto. Lo dije intuitivamente y la otra persona sonrió y no dijo nada. Lo comprobé después de la entrevista y era más o menos lo que suponía. Sí, solo confío en la intuición, pero esta intuición es diferente a la intuición de una mujer. Esta intuición es una intuición técnica y es un reflejo de su experiencia técnica pasada.
No soy un front-end web muy profesional, ni un ingeniero de desarrollo de Node.js muy profesional, ni un ingeniero de desarrollo de iOS muy profesional. El empleador me preguntará, ¿cuál es tu especialidad? ¿Por qué debería darte un salario tan alto?
¿Qué cualificación tienes para ser ingeniero full-stack?
Debería ser considerado un ingeniero full-stack con más de 10 años de experiencia en la industria. He fabricado muchos productos de forma independiente y he dirigido muchos proyectos. Los productos que pasé incluyen productos de escritorio, productos web y productos móviles. El lado web cubre el front-end y el back-end, y el lado móvil se ocupa principalmente del desarrollo híbrido y de iOS.
Familiarizado con front-end web, experiencia práctica en desarrollo MVC/modular, familiarizado con CoffeeScript, Grunt, RequireJS, Manillar, etc. Yo mismo escribí un pequeño marco de Javascript y el código JS en un proyecto supera las 10,000 líneas. Familiarícese con la optimización de páginas web y sepa cómo hacer que las páginas web sean más rápidas. También sé un poco sobre SEO y sé qué tipo de URL y códigos agradarán más a las arañas.
Estoy familiarizado con Node.js. Hay varios proyectos basados en Node.js. Actualmente existe un programa de blog de código abierto llamado Purelog, que ha lanzado varios módulos sobre NPM. Estoy familiarizado con el desarrollo híbrido. Pasé más de un año estudiando tecnología híbrida. Muchas aplicaciones se basan en tecnologías de desarrollo híbridas y algunas han desarrollado soluciones similares a PhoneGap. Estoy muy familiarizado con el rendimiento de HTML5 en teléfonos móviles y he descubierto muchos problemas técnicos, como problemas de pantalla blanca, problemas de Sqlite, problemas de barra de desplazamiento, aceleración de animación de hardware, problemas de retraso de clic, etc.
Puedo diseñar y estoy familiarizado con Photoshop. Todos los productos, ya sea logotipo o interfaz, están diseñados por mí. Aunque no vale la pena mencionarlo a los ojos de los diseñadores senior, es bastante diferente entre los ingenieros.
Está familiarizado con Objective-C y tiene más de dos años de experiencia en desarrollo de iOS. Hay alrededor de diez aplicaciones en la App Store. Estoy familiarizado con el funcionamiento general del servidor. Tengo mi propio VPS y administro varios sitios web, aunque suelo acudir a Google para configurar el servidor.
En mis primeros años, trabajé en Delphi durante un año y en ASP.net durante varios años. Aunque abandoné estas tecnologías y cambié por completo a la plataforma *nix, la experiencia acumulada está ahí. Muchos años de experiencia en gestión de proyectos. Se ha desempeñado como gerente de proyectos en tres empresas y ha acumulado más de 4 años de experiencia en gestión de proyectos. Ha publicado artículos técnicos y de revisión en varios portales de tecnología.
Por qué me convertí en ingeniero full-stack
Creo que muchos ingenieros full-stack se convertirán en ingenieros full-stack como yo porque quieren iniciar un negocio. Tengo un corazón para iniciar un negocio y fabricar productos, y soy una persona que no quiere molestar a los demás. Algunas personas son buenas para integrar recursos y marcharse con las manos vacías, pero yo obviamente no soy esa persona y tengo que hacerlo yo mismo.
Después de dos emprendimientos solitarios, descubrí que no era apto para emprender de forma independiente, así que me convertí en ingeniero a tiempo completo.
Comencé con ASP, luego comencé mi propio negocio escribiendo clientes usando Delphi y luego escribí ASP.Net durante tres años. En el año 2010, debido a las necesidades de la empresa, comencé a desarrollar iOS. Siempre he hecho el front-end web yo mismo y básicamente he hecho todo el Javascript del proyecto yo mismo.
Me encanta escribir código, me encanta reinventar la rueda y me encantan las nuevas tecnologías. Creo que esta también es una razón importante por la que me convertí en ingeniero completo.
Personalmente, creo que los ingenieros de tiempo completo son más interesantes que los ingenieros comunes, porque conocen la forma de un producto, pueden diseñar un producto y hacen las cosas desde una perspectiva global, y obtendrán más sensación de logro.