Red de conocimientos turísticos - Información de alquiler - ¿Qué es un ingeniero full stack?

¿Qué es un ingeniero full stack?

Hay una palabra que es popular en el país y en el extranjero recientemente llamada Full Stack. La traducción al chino se llama ingeniero de pila completa, también llamado ingeniero de extremo completo. Muchos profesionales en Weibo hablan sobre ingenieros completos, algunos los elogian y otros los critican. Mi definición de ingeniero completo es: una persona que domina una variedad de habilidades y puede utilizar múltiples habilidades para completar productos de forma independiente. Para usar una analogía externa, un ingeniero completo es una persona que puede construir un pequeño edificio de 10 pisos de forma independiente, mientras que un ingeniero común es una persona que puede construir un rascacielos con un grupo de personas. En cuanto a las habilidades que necesitas dominar, creo que esto depende de la industria y la dirección técnica en la que estés involucrado. Los que trabajan en Internet son diferentes de los que trabajan en software. Incluso si trabajas en Internet, el back-. Al final se puede dividir en muchas escuelas técnicas.

La ley 8/2 se aplica en todas partes. Un ingeniero full-stack es alguien que domina el 20% de las habilidades más utilizadas, pero ese 20% de habilidades tendrá un 80% de posibilidades de ser utilizadas, y las 80 restantes. % no se utilizarán los de uso común, busquémoslos en Google.

Algunas personas dicen que los ingenieros full-stack han estado en China durante muchos años y se les llama webmasters. Esta afirmación es un poco confiable, pero no tanto. Yo también he sido webmaster y sé que ser webmaster requiere dominar muchas tecnologías. Lo que no es confiable es que muchos webmasters en realidad no han escrito mucho código, pero dominan el uso de algún software de creación de sitios web para crear sitios web.

El valor de los ingenieros full-stack

Alguien dijo, no importa lo genial que seas, si conoces cinco tecnologías, ¿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 general

El desarrollo de proyectos modernos rara vez utiliza solo una o dos tecnologías, especialmente bajo la tendencia de Internet móvil. Cualquier tecnología utilizada en un 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, OAuth, etc. Algunas comparaciones Proyectos de vanguardia puede utilizar tecnologías como aplicaciones de página única, Web Socket, HTML5/CSS3, así como desarrollo por parte de terceros de cuentas oficiales de WeChat, aplicaciones de Weibo, etc.

La interfaz web está lejos de ser tan simple como cortar una imagen y usar jQuery para ejecutar AJAX compatible con varios navegadores. Para las interfaces web modernas, es necesario utilizar desarrollo modular, compatibilidad multipantalla, MVC, diversas interacciones y optimizaciones complejas, e incluso es necesario utilizar Node.js para ayudar en el desarrollo de interfaces.

Por lo tanto, un proyecto moderno es una composición muy compleja. Necesitamos que una persona controle la situación general. No es necesario que sea un experto senior en diversas tecnologías, pero debe estar familiarizado con varias tecnologías. Para un equipo, especialmente una empresa de Internet, es muy, muy importante tener a alguien con pensamiento global.

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é que la API es compatible con varios clientes, e incluso consideraré el tema de la compatibilidad de tres pantallas. No diré que usaré AJAX completamente en el proyecto independientemente del SEO, ni ignoraré la velocidad de acceso a la funcionalidad. Comprenderé bien este equilibrio porque conozco su peso y costo de implementación.

Costo de comunicación

Cuanto más grande es el proyecto, mayor es el costo de comunicación. Cualquiera que haya realizado gestión de proyectos sabe que la mano de obra en el proyecto es 1+1<2, más personas. los hay, más eficiente será, menor. Debido a que la comunicación requiere costos y las personas con diferentes tecnologías tienen opiniones diferentes, el front-end y el back-end definitivamente estarán en desacuerdo. Todos lucharán por sus propios intereses, y no existe alguien que no tenga intereses propios.

El coste de un ingeniero full-stack es casi nulo, porque conoce todo tipo de tecnologías y tiene confianza, y puede hacerlo todo por sí mismo sin querer. Incluso en la colaboración en equipo, la comunicación con diferentes técnicos será mucho más fácil. Si permite que un back-end y un front-end se comuniquen, es completamente lo mismo, y mucho menos el diseñador y el back-end. Pero si hay una persona que entiende el producto, el diseño, el front-end y el back-end, entonces el resultado de la comunicación obviamente será diferente, porque los demás pueden entender lo que dicen.

Empresas de nueva creación

Para las empresas de nueva creación, el valor de los ingenieros completos es muy grande. Las empresas de nueva creación no pueden tener todo tipo de talentos como las grandes empresas. Por lo tanto, necesitamos un todoterreno que pueda manejar todo tipo de tareas y que pueda ser polifacético.

Para las empresas de nueva creación, es imposible decir que todo tipo de talentos de clientes DBA, front-end y back-end estén listos. Muchos trabajos no están llenos de gente y no se pueden realizar sin contratar gente. la calidad, para que los ingenieros completos ahorren dinero. Un truco inteligente. Aunque el salario de los ingenieros completos será mucho más alto que el de los ingenieros comunes, el costo total será mucho menor.

El dilema de los ingenieros full-stack

Yo digo que la tecnología tiene dos direcciones de desarrollo, una es vertical y la otra horizontal. La horizontal es como una navaja suiza, y. el vertical es como cortar hierro Mo Xie, el general del barro. No hay nada bueno o malo en estas dos direcciones. Cuando se desarrollan hasta cierto punto, se fusionan entre sí, al igual que el movimiento gradual de sur a norte en la meditación budista china. De hecho, al final, la iluminación y la iluminación son graduales. La iluminación repentina es lo mismo, y lo repentino proviene de la gradualidad.

Si una empresa no comprende el valor de los ingenieros de pila completa, entonces el estado de los ingenieros de pila completa será muy vergonzoso. Para decirlo suavemente, los ingenieros de pila completa son buenos en todo y en nada. Una vez tuve una entrevista y la otra parte me hizo preguntas muy básicas y no pude responderlas. Puedo fabricar productos, sé lo que está pasando y no cometeré esos errores, pero simplemente puedo. No respondo los conceptos. Es muy fácil fallarme. Por lo tanto, al solicitar un trabajo, a veces sufrirá una desventaja: es posible que no pueda obtener un salario tan alto como el de alguien que está profundamente involucrado en un campo determinado.

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 o incluso la sintaxis. Siento que difícilmente puedo trabajar sin Google. A los ojos de algunas personas, esto es un signo de tecnología insuficiente. Lo que recuerdo es sólo una clave, un índice de cómo encontrar la respuesta, no todo. El cerebro humano no es una computadora y me resulta imposible recordarlo todo.

Una vez el entrevistador me hizo una pregunta. Le dije que no lo sabía, pero supuse algo como esto. La otra persona me preguntó por qué adivinaste de esa manera. La otra persona sonrió. Después de la entrevista, revisé y resultó ser más o menos lo que suponía. Sí, solo confío en la intuición, pero esta intuición es diferente de la intuición de una mujer. Este tipo de intuición es intuición técnica, un reflejo de su acumulación de 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á en qué campo se especializa y por qué debería darle un salario tan alto.

¿Qué calificaciones tengo para hablar de ser un ingeniero full-stack?

Debo ser considerado un ingeniero full-stack, con más de 10 años de experiencia en la industria. He trabajado de forma independiente en muchos productos y he dirigido muchos proyectos. Los productos en los que he trabajado incluyen productos de escritorio, web y móviles. La web cubre el front-end y el back-end, y el móvil se centra principalmente en iOS y el desarrollo híbrido.

Familiarizado con el front-end web, con experiencia práctica en desarrollo MVC/modular, familiarizado con CoffeeScript, Grunt, RequireJS, manillares, etc., y ha escrito él mismo un pequeño framework Javascript, con más de 10.000 Líneas de código JS en un proyecto. Familiarizado con la optimización de páginas web y sabiendo 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 Spider.

Familiarizado con Node.js, existen varios proyectos basados ​​​​en Node.js. Actualmente, se lanza el programa de blog de código abierto Purelog y se lanzan varios módulos en NPM. Estoy familiarizado con el desarrollo híbrido. He estado estudiando la tecnología híbrida durante más de un año. Varias aplicaciones se basan en tecnología de desarrollo híbrido y también he desarrollado soluciones similares a PhoneGap. Estoy bastante 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 el logotipo o la interfaz, están diseñados por mí mismo. Aunque no vale la pena mencionarlo a los ojos de los diseñadores senior, es relativamente único. entre el equipo de ingeniería.

Familiarizado con Objective-C, tiene más de dos años de experiencia en desarrollo de iOS y tiene una decena de aplicaciones en la App Store. Estoy familiarizado con el funcionamiento general del servidor. Tengo un VPS y administro varios sitios web, aunque a menudo tengo que acudir a Google para configurar el servidor.

En los 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 todavía está ahí. . Con 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. Artículos técnicos y de revisión publicados en múltiples portales tecnológicos.

Por qué me convertí en ingeniero full-stack

Creo que muchos ingenieros full-stack serán como yo y se convirtieron en ingenieros full-stack porque querían 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 no hacer nada con nada, pero yo obviamente no soy esa persona, así que lo hice. para hacerlo yo mismo.

Después de vivir dos emprendimientos solitarios, descubrí que no era una persona apta para emprender de forma independiente, por lo que me convertí en ingeniero integral. Comencé como ASP, luego comencé mi propio negocio escribiendo clientes usando Delphi y luego escribí ASP.Net durante tres años. En 2010, comencé a desarrollar iOS porque la empresa lo necesitaba. Yo mismo he estado haciendo el front-end web y básicamente he hecho todo el Javascript del proyecto yo mismo.

Me encanta escribir código, reinventar la rueda y las nuevas tecnologías. Creo que esta también es una razón importante por la que me convertí en ingeniero completo.

Por mi parte, creo que los ingenieros completos son mucho más divertidos que los ingenieros comunes, porque conocen la forma de un producto, pueden diseñar un producto y lo hacen desde una perspectiva global. Obtendrá una mayor sensación de logro.