¿Qué necesitas saber para aprender front-end web? ¿Cuáles son las tecnologías más utilizadas en el lugar de trabajo? ¿Cómo empezar a aprender rápidamente?
Hay demasiadas personas a mi alrededor que pueden cortar algunas imágenes, usar jQuery para crear efectos especiales, copiar y pegar desde bootstrap, usar el marco de juego html para escribir un pájaro flappy y encontrar todo tipo de cosas. en Github Después de armar plantillas y bibliotecas, seguía diciendo que era ingeniero de front-end. Se dice que el front-end es muy simple. Es difícil encontrar trabajo en el front-end. No hay salida. Es más, algunas personas no entienden qué es HTML, por lo que preguntan (especialmente en Zhihu) cómo comenzar a aprender front-end y cuáles son las perspectivas del front-end. Según mi experiencia nada es difícil y todo está bien, pero no se pide así. Creo que en esta era de abundantes recursos de información en Internet, deberías poder obtener la respuesta que deseas buscando durante media hora por tu cuenta.
Bien, volviendo al tema, ¿el ingeniero front-end es realmente un puesto insignificante? Echemos un vistazo a lo que hacen los ingenieros de front-end y veamos hasta dónde pueden llegar esos autoproclamados "llamados" especialistas en front-end.
Salte directamente a los conceptos básicos de HTML+CSS+JS, incluidos, entre otros:
- ¿Cómo y cuándo utilizar varios elementos HTML?
- ¿Evento? ¿Activador de evento? ¿Activar eventos en HTML y manejar eventos en JS?
- ¿árbol DOM? ¿Añadir? ¿Añadir? ¿Revisar?
- ¿Qué es la ventana? ¿Qué es un documento?
- ¿Sintaxis JS básica? ¿función? bucle y condición? alcance y cierre? matriz y objeto? ¿este?
- CSS ¿Qué es el modal de caja? ¿posición? ¿flotar? ¿Varios selectores (*, >, ~, :nth-)?
Si alguno de los proyectos sobre los que lees aquí es desconocido, o si has revisado los diversos documentos y tienes una "idea aproximada" de cómo usarlos, desafortunadamente aún no tienes ningún proyecto. Ingeniero de front-end calificado. Si no, continúa.
###Cualidades y conocimientos básicos de los programadores
(Algunas personas piensan que el front-end es diferente a los programadores tradicionales, yo me opongo firmemente a esto.
Quizás sea más apropiado llamar ingenieros front-end programadores JS, HTML y CSS son como bibliotecas UI en otros idiomas)
-Matemáticas avanzadas, estadística de probabilidad básica (amigos que ni siquiera pueden resolver ecuaciones diferenciales simples ) ¡No se llame a sí mismo una persona de front-end!
-Fundamentos básicos de aplicaciones informáticas, fundamentos de redes informáticas, fundamentos de software de aplicaciones informáticas
-Fundamentos básicos de software de aplicaciones informáticas, redes informáticas fundamentos, aplicaciones informáticas Conceptos básicos de software (los amigos que ni siquiera pueden resolver ecuaciones diferenciales simples no deberían llamarse personal de front-end
- Para estructuras de datos básicas, puede usar JS para escribir listas vinculadas, pilas y colas , árboles (binarios), gráficos, etc. ¿Tabla hash?
- Algoritmos básicos ¿puedes usar JS para implementar búsqueda (lineal, binaria...), clasificación (binaria...), clasificación (binaria)? ...), clasificación (binaria...) y otras funciones?
- Algoritmos básicos ¿puedes usar JS para implementar búsqueda (lineal, binaria...), clasificación (burbuja, inserción, fusión, rápido, selección), búsqueda de árbol (ancho primero/profundidad primero) y recorrido (3 órdenes)?
- Patrones de diseño ¿Sabes qué son los singletons, las fábricas, las estrategias y los decodificadores?
- Git No pienses en Github simplemente como un repositorio de red, ¿entiendes las ramas, las diferencias y las fusiones?
-Habilidades básicas de inglés (no se requieren habilidades para escuchar ni hablar, solo leer/escribir documentos)
- Conocimientos básicos de informática: ¿conoce operaciones de bits, desbordamiento, subprocesos, bloqueos, concurrencia, paralelismo?
- ¿Conoce los comandos básicos de Unix? ¿Clave pública/clave privada?
- ¿Conoces las expresiones regulares?
- ¿Puedes escribir comentarios/documentación detallada para que las personas que lean tu código sepan qué estás haciendo? ¿Puedes leer rápidamente el código proporcionado por colegas o en otros lugares (github, blogs) y saber dónde colocar las cosas para poder participar rápidamente?
¿Para alguien que nunca has conocido? ¿Usas correctamente en tu código en un corto período de tiempo?
- ¿Existe un editor/IDE que puedas usar cómodamente, pero no necesitas ser un maestro de Vim/emacs? capaz de completar todas las operaciones con el mouse
- Habilidades básicas de búsqueda y recuperación (google, stackoverflow, MDN)
- Capacidad para pensar y resolver problemas de forma independiente y trabajar en equipo. La capacidad de llevarse bien con los demás
Si comprende todo lo anterior (no enfatizaré el dominio), felicidades, ya tiene las condiciones básicas para convertirse en ingeniero front-end.
#### Experiencia en front-end
- ¿Sabes qué son AMD y COMMONJS? ¿Sabes llamar, solicitar, vincular? ¿Conoce foreach, filter, some y each en JS? ¿Sabes cómo implementar JS funcional (Curry, etc.)?
- ¿Conoce las distintas API HTML de alto nivel (File, Web Audio, WebSocket)?
- ¿Conoces los distintos preprocesadores de CSS? ¿Puedes decirme los pros y los contras de cada preprocesador? ¿Está familiarizado con uno y lo utiliza?
- ¿Conoce varios frameworks CSS? ¿Puedes decirme los pros y los contras de cada uno? ¿Está familiarizado con uno y lo utiliza?
- ¿Sabes sobre lienzo y SVG?
- ¿Sabes cómo hacer que tus cosas respondan y sean compatibles con todos los navegadores?
- ¿Sabes qué es el posicionamiento en buscadores y cómo optimizarlo? ¿Sabes qué significan todos los metadatos?
- ¿Sabes qué son Ajax, restful, get y post? ¿Sabes cómo interactuar con el backend?
- ¿Conoces los distintos frameworks JS (Angular, Backbone, Ember, React, Meteor, Knockout...)? ¿Puedes contarnos los pros y los contras de cada uno? ¿Puedes decirme los pros y los contras de cada uno? ¿Está familiarizado con uno o más de ellos y los utiliza?
-¿Sabes qué es webkit? ¿Sabe cómo utilizar las diversas herramientas de su navegador para depurar y depurar código?
- ¿Entiendes el flujo de trabajo general del front-end (gulp, grunt, git, svn, npm)?
- ¿Sabes cómo probar código? ¿Conoce BDD, TDD y pruebas unitarias? ¿Sabes cómo probar tu proyecto front-end (mocha, sinon, jasmin, qUnit...)? ?
- ¿Conoce la función y el uso de las plantillas de front-end (bigote, guión bajo, manillar)?
- ¿Conoce npm, V8, node, express y socket? (Una cosa que hay que agregar aquí es que cada vez más empresas utilizan la estructura de 'página web de front-end -> backend de front-end -> backend' para construir cosas, lo que significa que los ingenieros de front-end no solo tienen que hacer el front-end tradicional -finalizar páginas web, pero también escribir las suyas propias. El backend interactúa con el backend real. En cuanto al lenguaje utilizado para escribir el front-end y el backend, generalmente es node/python/ruby. No utiliza javascript enorme, ni tampoco. usa mucho java, ni usa mucho jazz. ¿Qué lenguaje se usa para escribir el backend? Generalmente es node/python/ruby. No usa mucho java, por lo que incluyo node como uno de. las habilidades que los ingenieros de front-end deben dominar). ¿Conoce el almacenamiento en caché y la autenticación?
-(Si usa node) ¿Entiendes enrutamiento, middleware, clustering, nodemon, pm2 y renderizado del lado del servidor?
- Además, la industria del front-end es muy diferente de los programadores tradicionales de c/c++/java. Debido a que es una industria emergente, se producirán y actualizarán varios estándares, marcos y bibliotecas de la industria en cualquier momento y en cualquier lugar (como programador en lenguaje C, las cosas escritas hace diez años todavía se escriben hoy). Hoy hay nodo y reaccionar, mañana habrá io y media. Por lo tanto, prestar atención activamente a varios productos front-end y mantenerse al día con el ritmo de los cambios también es una de las habilidades necesarias para los programadores front-end.
¿Sabes cómo escribir clases en ECMAScript 6? ¿Sabes reaccionar, fluir, refluir? ¿Conoces el polímero y el dardo? ¿Sabes acerca de las estrellas fugaces?
Lo anterior es un extracto de un artículo de un experto en conocimiento =====
Se siente como un gran golpe para los recién llegados, pero en general está claro que volver a comprender el frente -end tiene un cierto impacto en el aprendizaje y la comprensión. Siempre que desee perseverar, la capacidad de aprendizaje front-end más importante en cualquier momento debe ser que el conocimiento en el campo front-end es demasiado amplio y muchos de ellos. Las tecnologías cubiertas son inmaduras y están en desarrollo, por lo que solo puede continuar aprendiendo varias tecnologías nuevas y nuevos conocimientos. Lo más importante es poder aprender diversas tecnologías nuevas y nuevos conocimientos. Ser capaz de distinguir qué tecnologías se deben dominar y cuáles son los conceptos de "estilo elevado" creados y propuestos por algunas personas. Ser capaz de dominar PS+ HTML+ CSS+ js, conocer uno o dos frameworks y comprender un poco de diseño. Puede ser