Cómo aprender el desarrollo front-end, encontrar tu primer trabajo y no recibir golpes

imagen

Frontend, la mejor, la mejor y más acogedora dirección para entrar en TI. Pero no todo es tan simple con él: en el front-end es fácil comenzar y es difícil convertirse en un maestro. No será el tormento de elegir un lenguaje de programación, pero habrá una lucha con sus defectos. En esta área hay muchas herramientas, el estudio de cada una de ellas se basa en el desarrollo de una profesión en particular.

Le preguntamos a Oleg Shikov, decano del departamento de desarrollo web de GeekBrains, y a Daria Dyachkova, un desarrollador web principiante , acerca de cómo aprender correctamente, cómo no obtener grandes golpes y avanzar en una carrera .



En 2015, Daria Dyachkova ingresó a la Escuela Superior de Economía de la Facultad de Economía Mundial y Asuntos Internacionales porque le encantaban los idiomas sobre todo en la escuela: estudió inglés y alemán, ganó constantemente los Juegos Olímpicos. Le gustaba esta esfera, pero no por el esplendor en sus ojos, por lo que Daria continuó buscando una profesión futura. En 2018, llegó en un día de carrera a una de las agencias de recursos humanos, después de lo cual cambió de dirección en una dirección inesperada.

“Pasé una larga prueba psicológica, donde consideraban el tipo de personalidad, mentalidad y más. Sin ofender a los psicólogos, pero soy escéptico sobre tales pruebas. Después de la prueba, me dijeron, "eh, el programador desaparece" y se ofrecieron a escuchar una charla sobre la transición al mundo de TI. Me encogí de hombros, fui y me encendí.

En casa, comenzó a buscar en Google, ver reseñas de profesiones. Anteriormente, Daria hizo páginas web sobre Tilda y Wix, mantuvo su blog de noticias internacionales, así que pensé en la interfaz en primer lugar. Sin embargo, revisó todos los seminarios web introductorios de profesiones y lenguajes de programación, trató de escribir un pequeño código en varios lenguajes de programación y eligió a JS como el espíritu más cercano.



¿Qué hacen los front-endors?


“Si abres cualquier página en el navegador, todo lo que ves frente a ti en la página es el front-end. Pero, de hecho, su trabajo es mucho más complicado que una sola aparición ”, dice Oleg Shikov, decano del departamento de desarrollo web de GeekBrains.

Oleg escribió el código desde la infancia. Los primeros experimentos fueron en C, y en 2011 cambió a Javascript. Gran parte de lo que hay en tecnología ahora era solo en su infancia. HTML y CSS no tenían mucho potencial, y Flash prevaleció en la industria. La profesión en su conjunto era mucho más simple: solo un diseño HTML y un diseño simple. Fue suficiente escribir etiquetas y diseñarlas maravillosamente en CSS. Los usuarios hicieron clic en un botón y la página se actualizó por completo. La solicitud al servidor se fue, el servidor dio un nuevo diseño. Pero este enfoque no permitió una interfaz receptiva.

"La tarea del proveedor front-end en estos días es construir la lógica de los sitios en el lado del navegador", dice Oleg, "esta lógica se desarrolla en el lenguaje de programación JavaScript. Los sitios modernos pueden funcionar completamente en el lado del cliente, haciendo solicitudes al servidor solo ocasionalmente, por ejemplo, para guardar los datos del usuario o descargar la información necesaria. Es decir, ahora estamos solicitando una página no completamente actualizada, pero solo la información necesaria, y la procesamos correctamente en el navegador. Gracias a este comportamiento, los sitios responden mejor y ahorran parte del tráfico del usuario ".



Frontend de aprendizaje: ¿está aprendiendo JavaScript?


Habiendo decidido la dirección, Daria ingresó a la facultad de desarrollo web en GeekBrains. En opinión de muchos, la capacitación de la interfaz se fusionó con el estudio del lenguaje Javascript, pero, según Oleg Shikov, esto no es del todo cierto.

“Lo primero para empezar es, por supuesto, HTML. Es extremadamente simple, es muy fácil de manejar, es muy fácil escribir su primer sitio web. Por supuesto, no responderá, pero funcionará y ya se puede publicar en Internet. A continuación, debe agregar una apariencia hermosa a este sitio para que no sea solo un lienzo de texto, sino una página conveniente y hermosa con elementos visuales. Las hojas de estilo en cascada CSS ayudarán. Un par de semanas es suficiente para dominar tanto HTML como CSS. Y justo después de eso, debe iniciar JavaScript, porque es la base de la base para crear una interfaz receptiva ".

Pero cuando la popularidad llega a la tecnología, le sigue un mar de críticas. Muchos desarrolladores experimentados, uno tras otro, revelan problemas e idioma en sus informes, discursos y artículos y ofrecen alternativas. Principiante, estas discusiones solo pueden llevar por mal camino. Según Oleg, sería un error comenzar a aprender frontends de otros idiomas solo porque los profesionales los elogian más.

"Hace unos años, todos culpaban a PHP juntos, ahora todos culpaban a JavaScript, es una corriente principal. Por supuesto, JavaScript no está exento de problemas, nadie discute con esto. Pero, por ejemplo, TypeScript (otro lenguaje popular de Microsoft, que es una extensión de las capacidades de JS) no se ejecuta en el navegador en sí, se traduce (compila) a JavaScript. Si escribimos algo en TypeScript, todavía obtendremos JavaScript, que ya se ejecutará en el navegador. Para depurar correctamente el código, debe conocer JavaScript y poder trabajar con el navegador ".

Pero Daria se toma el tiempo de aprender cosas que no están incluidas en el programa.
"Estoy acostumbrado a aprender y comprender mucho hasta el final, soy una de esas personas que lee todos los materiales adicionales de los artículos y realiza tareas adicionales, porque simplemente están interesados. Me estoy tomando el tiempo para aprender, por ejemplo, Nuxt.js, Typecript, Vue.js, Webpack y Stylus ".



¿Qué son React, Vue y Angular y cómo elegirlos?


Además de Javascript y otros idiomas, los desarrolladores front-end requieren el conocimiento de varias herramientas para trabajar. En JavaScript puro, es bastante difícil desarrollar interfaces interactivas de páginas web receptivas sin usar bibliotecas de terceros.

Una biblioteca también es código JavaScript ya escrito por otros desarrolladores. Proporciona un conjunto conveniente de soluciones para llevar a cabo las acciones preparadas que se requieren regularmente en el trabajo. Hay una amplia variedad de bibliotecas en la web que facilitan la escritura de interfaces de sitios web receptivas. Entre ellos, los más famosos son React, Vue y Angular.

“La elección entre ellos es una pregunta difícil. Puedes aprender los tres. Esta no es una tarea extremadamente difícil, porque cuando comprenda cómo trabajar con una, cada una de ellas será más fácil de aprender. Pero según mis observaciones, se usan un poco en diferentes áreas. Angular es uno de los más antiguos. A menudo se usa en el segmento corporativo, en proyectos grandes, con soporte de código heredado que se escribió hace varios años. La reacción es ubicua. Es el primero en la lista cuando escriben nuevas interfaces y servicios web. Sobre Vue, puedes decir que es simple, joven, genial y corriente.

Aconsejaría tratar de escribir una lógica simple en los tres marcos, relativamente hablando de una hoja de tareas, en función de mis sentimientos, entender cuál me gusta más y aprenderlo. O vea las vacantes en su ciudad y elija, por ejemplo, React, porque la mayoría de las vacantes para desarrolladores front-end requieren conocimiento de React. Pero luego volver a entrenar no será difícil ".

Daria escribe novelas de aventuras y desarrolla una guía para el universo de su libro en Nuxt.js. También hace proyectos y aterrizajes para sus amigos, por lo que aprendió el diseño adaptativo, las consultas de los medios y más. “Comencé React.js, se me ocurrió un proyecto para el futuro que quiero implementar en React Native. Mientras planifico la arquitectura, dibujo con diagramas de flujo y leo sobre las tecnologías que se pueden usar ".



Como es el estudio


“Cuando comenzó la capacitación, los maestros explicaron todo perfectamente: es importante para mí incorporar los conocimientos adquiridos en un sistema. La tarea ayudó a consolidar la habilidad, un bono dio un consejo sobre dónde y qué más enseñar. Yo mismo leía y dominaba mucho, veía manuales y mini lecciones en YouTube. En GeekBrains, siempre puedes escribir a un maestro o tutor o a tu grupo para chatear. Todos ayudarán, explicarán. Si encuentra un artículo interesante, también hay alguien con quien compartir y discutir.

Creo que cuando veas tu primer Hello world, nadie lo olvidará. Y en general, la sensación cuando hice una interfaz de usuario hermosa desde el diseño, y también funciona, es una unidad ".

Estudiar dura un año y medio. Oleg Shikov cree que aprender la sintaxis es aburrido, por lo que el aprendizaje se basa en proyectos de inmediato. “Damos cosas básicas, sintaxis e inmediatamente tratamos de ponerlas en práctica, escribimos páginas web simples. Después de eso, damos PHP, enseñando así a los estudiantes el desarrollo del backend (servidor). Para algunos desarrolladores novatos, parece suficiente aprender HTML con JavaScript, y esto es suficiente para hacerse popular en el mercado. De hecho, no tanto. Debe conocer la arquitectura, los algoritmos, los patrones y los marcos, y no solo saber. Se necesita otra práctica, debemos escribir nuestro propio producto, participar en el desarrollo colectivo ".

Al comienzo de la capacitación, los estudiantes escriben el código por separado, verificándolo con el maestro y, a mitad de la capacitación, comienzan a desarrollar el producto con sus compañeros de clase, gracias a lo cual adquieren experiencia en el desarrollo del equipo.

Además de estudiar, a Daria le gusta estudiar en la plataforma Kodiri.com, donde se realizan competencias internacionales en JS. “Allí puedes entrenar solo, resolver tareas por el tiempo, la precisión y la belleza del código. Conocí al fundador de la plataforma Ricardo: es un tipo genial. Ahora estoy escribiendo rompecabezas para ellos. Para cada tarea, aplico una solución de referencia y pruebas (entonces, por cierto, comencé a escribir pruebas unitarias). Es divertido para mí competir con otros jugadores cuando la probabilidad de que al menos una de las cinco tareas sea tu autoría es ≈0,94. Sí, pensé, tenía curiosidad de por qué los encuentro con tanta frecuencia. Honestamente, decido la mía y no miro las respuestas. Captura el elemento de la gamificación, ya he recibido las charreteras más altas (Majestad imperial), ahora queda por mover a Yurash como el mejor jugador del mes. En general, me faltaba este elemento del juego y el espíritu de competencia en el entrenamiento.Creo que vale la pena agregar tales oportunidades a las plataformas educativas. Unos días de rompecabezas de Kodiri sobre la velocidad, y en un sueño escribiré arr.map (e => ".



Encontrar tu primer trabajo


En qué etapa comenzar una búsqueda de empleo es un tema muy controvertido en la industria. Algunos están convencidos de que solo años de enseñanza y desarrollo de la teoría en la práctica en condiciones seguras le dan a una persona el derecho de pedir dinero para el desarrollo. Otros, por el contrario, que necesita aprender mientras trabaja en el presente trabajo. Según el profesor, muchos estudiantes van por el segundo camino.

“Conozco estudiantes que recibieron primeros pedidos o consiguieron un trabajo en empresas en el tercer trimestre. Continuaron sus estudios, combinándolo con el trabajo. Todo depende de la persona y su habilidad para aprender. Es más fácil para un desarrollador novato ingresar a una empresa pequeña que a una grande. En empresas como Mail.ru o Yandex, selección estricta. No todos los desarrolladores experimentados podrán llegar allí. Pero todos pueden probar suerte, por supuesto.

Cuando Daria tuvo seis meses de capacitación y un resumen del portafolio en forma de sitio, realizó varias entrevistas, pero no tenía las habilidades suficientes para obtener un desarrollador front-end.

“En la primera entrevista, fue aterrador. Solicité un trabajo como desarrollador front-end para Vue. Me preparé cuidadosamente, repetí todo el material de JS y Vue, y todo lo que GeekUniversity aprendió en seis meses, resolvió preguntas difíciles y todo tipo de pequeñas cosas en las que JS se comporta de manera impredecible. La entrevista tuvo lugar en Skype. Una pequeña empresa, inmediatamente una entrevista técnica, sin pasar por RR. HH. Alegremente respondí preguntas, hablamos durante una hora ... y luego resultó que todavía estaban buscando la pila completa de un desarrollador. Sucede".

imagen
En Habr Career, puede ver las últimas vacantes para licitaciones iniciales y suscribirse al boletín para nuevas.

"A los desarrolladores junior se les hacen preguntas simples para asegurarse de que conocen los conceptos básicos", dijo Oleg. "Preguntaría sobre el diseño adaptativo y semántico, sobre cómo trabajar con JavaScript puro. Ahora la tendencia está en marcos y bibliotecas, el mismo React, Vue y Angular, y JavaScript "básico" sin bibliotecas adicionales, no todos lo saben. Me gustaría asegurarme de que el desarrollador sepa cómo trabajar con él y que no se apresure de inmediato al campamento condicional React.

En cualquier caso, tendrá que pasar un tiempo para responder a diferentes vacantes, para pasar diferentes entrevistas. Pasarlos también es una cierta experiencia y habilidad. Las fallas son una situación normal, no hay que tener miedo ".

“Después de dos entrevistas más, me aconsejaron continuar mis estudios y volver a intentarlo más tarde. También necesitábamos conocimientos generales: protocolos, soluciones arquitectónicas y más. Yo mismo entendí que era demasiado temprano para establecerse. Por lo tanto, encontré un excelente trabajo relacionado con TI: obtuve un ingeniero de soporte técnico en Bookmate. Es responsabilidad del lector responder preguntas sobre el funcionamiento de la aplicación y el sitio, aconsejar algo pequeño sobre cómo solucionarlo y solucionar problemas mayores para emitir errores en JIRA y Confluence. Además, ahora puedo imaginar cómo los usuarios comunes usan la UI / UX de nuestra aplicación. Sugerencia: "esto no es un error, es una característica". O cuando los desarrolladores querían lo mejor, pero los usuarios no entendían cómo era y por qué.

Una buena oportunidad para mirar a ambos lados es cómo los usuarios usan la aplicación y cómo los desarrolladores la desarrollan y reparan ”.



Cómo desarrollarse en la profesión


- Le aconsejaría que se convirtiera en un desarrollador de pila completa, para conocer tanto el backend como el frontend. Si hablamos solo de la interfaz, entonces, aunque es necesario conocer bien JavaScript, sin marcos en ningún lado. Necesitan ser enseñados.

Vale la pena echar un vistazo a TypeScript, aunque no es obligatorio en todos los trabajos. En realidad es interesante, y es muy fácil para un desarrollador de JavaScript aprenderlo. De hecho, este es el mismo lenguaje con características adicionales que le permiten escribir sistemas más confiables. TypeScript agrega un sistema de tipos explícito al lenguaje, lo que nos permite decir que esta variable será numérica y que esta será una cadena.

En JavaScript puro, esto no está allí, la variable puede ser de cualquier tipo, y esto a veces conduce a errores. Espera un número en una variable, pero obtiene, por ejemplo, una cadena o un objeto, y debido a esto, se rompe la lógica del trabajo del programa. TypeScript ayuda a evitar tal error.

Ahora muchos están mirando hacia PWA. El hecho es que, como dije, el mercado de teléfonos inteligentes es enorme. La mayoría de los usuarios que visitan su sitio tienen más probabilidades de hacerlo desde el teléfono.

PWA (Aplicaciones web progresivas): son sitios que tienen características adicionales que le permiten trabajar cómodamente con ellos, incluso desde un teléfono inteligente. Por ejemplo, en un sitio Android PWA, puede agregarlo a su pantalla de inicio y ejecutarlo simplemente haciendo clic en el icono. Hay oportunidades que pueden mejorar el sitio para que funcione incluso cuando no hay Internet en el teléfono inteligente. Es decir, es casi una aplicación nativa. Recientemente, Google lanzó una actualización de Google Play, gracias a la cual puede agregar su sitio PWA a la tienda, y los usuarios pueden descargarlo y actualizarlo como una aplicación nativa regular, que es casi indistinguible de una aplicación escrita, por ejemplo, en Java. Pero en realidad está escrito en JavaScript y creado con HTML.



Salarios


El salario medio del aprendiz de front-end está en el nivel de 35 mil rublos. El especialista de nivel junior puede contar con 50 mil, el medio, ya con 97 mil. El firmante y el plomo reciben un promedio de 170-190 mil rublos. Según la calculadora de salarios Habr Career, el salario promedio de un desarrollador front-end es un poco menos de 110 000 rublos (se puede hacer clic en el diagrama).






Qué leer y ver para el autoestudio



En línea:



Libros directamente sobre JS y HTML / CSS:

  • You Don't Know JS (hay una traducción al ruso "You don't know JS")
  • »HTML5. ".
  • « CSS3».
  • «JavaScript. ».
  • «JavaScript. ».
  • «JavaScript. ». .


:

  • «- ».
  • « ».
  • « SQL. MySQL 5». ,
  • « ».
  • « - . ». , , ,
  • « ».
  • « ». ,
  • « ». ,
  • «. ». . , . , . , .

Source: https://habr.com/ru/post/undefined/


All Articles