Sona Avetyan sobre JavaScript y sus marcos más utilizados
Publicado: 2022-10-06En el mundo de la tecnología, todos podemos encontrar respuestas a nuestras preguntas con un solo clic. Sin embargo, ¿alguna vez ha prestado mucha atención al formato de la fuente? ¿Te gusta ver videos, leer artículos, realizar búsquedas por voz o consultar en primera persona? Por ejemplo, en el desarrollo de software y la industria de ITO, consultar entrevistas e historias personales directamente de profesionales, como desarrolladores de software, ingenieros y CTO, es una de las formas más interactivas y confiables de educarse. Las historias personales y las experiencias reales hacen que la educación sea más aplicable y memorable.
En CodeRiders, tenemos una serie de entrevistas con nuestros desarrolladores de software.
En el mundo de la tecnología, todos podemos encontrar respuestas a nuestras preguntas con un solo clic. Sin embargo, ¿alguna vez ha prestado mucha atención al formato de la fuente? ¿Te gusta ver videos, leer artículos, realizar búsquedas por voz o consultar en primera persona? Por ejemplo, en el desarrollo de software y la industria de ITO, consultar entrevistas e historias personales directamente de profesionales, como desarrolladores de software, ingenieros y CTO, es una de las formas más interactivas y confiables de educarse. Las historias personales y las experiencias reales hacen que la educación sea más aplicable y memorable.
En CodeRiders, tenemos una serie de entrevistas con nuestros desarrolladores de software.
JavaScript también lidera otro informe de Statista como el lenguaje de programación más demandado por los reclutadores en todo el mundo.
Por supuesto, después de estos números, es obvio que los marcos de JavaScript también liderarán la lista de los marcos web más utilizados en el mundo.
Según Statista, a partir de 2022, Node.js, React.js y Vue.js se encuentran entre los 10 marcos de trabajo más populares entre los desarrolladores de software de todo el mundo.
Con esto en mente, comencemos nuestra conversación con la desarrolladora de software full-stack de CodeRiders, Sona Avetyan.
Hola Sona. Gracias por tomarse el tiempo para compartir su conocimiento y experiencia como desarrollador de software. Para empezar, por favor preséntese.
Hola. Gracias por la invitación a la entrevista. Soy Sona, una desarrolladora de software full-stack con más de 3 años de experiencia profesional en el desarrollo de aplicaciones web y de escritorio utilizando tecnologías innovadoras. Desde mi aceptación en la empresa de desarrollo de software CodeRiders, he participado en los proyectos de nuestra empresa y entregado con éxito aplicaciones utilizando PHP, JavaScript y sus principales marcos: Vue.js, Node.js, React.js y MySQL.
¿Cómo llegaste a CodeRiders?
Creo que mi historia de fondo de terminar en la industria de TI (específicamente en CodeRiders) es interesante y quizás motivadora para algunos. Es por eso que quiero compartirlo con ustedes con más detalle.
Tengo una maestría en ciencias actuariales y matemáticas, y al comienzo de mi carrera, me imaginé como un profesional exitoso en este campo. Sin embargo, con el paso del tiempo, me di cuenta de que mis intereses se estaban apagando, especialmente después de la gran "explosión" de la industria de la informática y la tecnología de la información en la economía armenia. Durante mis años universitarios, el campo de TI florecía en Armenia. Cada vez más adultos jóvenes estaban obsesionados con la TI, y había muchas oportunidades de crecimiento y excelentes carreras en ella. Aunque me estaba yendo bastante bien en mi campo, decidí comenzar uno nuevo en la industria de la tecnología de la información. Mis amigos me aconsejaron que confiara en la escuela de desarrollo web CodeRiders para un comienzo estable y seguí sus consejos.
Después de graduarme con éxito de la escuela de desarrollo de software CodeRiders, comencé a trabajar para una de las compañías de seguros más grandes de Armenia como especialista en soporte técnico. Eventualmente, crecí para ser el líder del equipo. Aunque me gustaba mi trabajo, siempre supe que quería mucho más que simplemente respaldar y mantener el código escrito por otros desarrolladores e ingenieros de software. La compañía de seguros fue solo una "preparación" para mí para una carrera más grande y brillante.
Trabajé en la compañía de seguros durante 6 años y, mientras tanto, tenía CodeRiders en mi mente. Sabía que la escuela de desarrollo de software se transformó en la empresa de subcontratación de software CodeRiders y se ha convertido en una de las empresas tecnológicas locales más exitosas de Armenia. Seguí a CodeRiders en las redes sociales y siempre me imaginé como parte de su amistoso equipo. Me encantó la empresa y su forma de trabajar. En 2019, recibí una llamada del fundador de CodeRiders y me invitó a unirme a su encantador equipo. Fue una de mis llamadas telefónicas favoritas. Me emocioné y, por supuesto, acepté la oferta, y así empezó todo. Rápidamente me adapté a la atmósfera ya que estaba familiarizado con la empresa y todos fueron muy comprensivos, amables y siempre dispuestos a ayudar.
¿Puede hablar más sobre su pila tecnológica principal y lo que consideró al elegir estas tecnologías?
Este es el "paquete completo" de mis habilidades técnicas a partir de ahora.
- Web: HTML, CSS3, MENOS, SASS, Bootstrap, JavaScript, PHP
- Servidores: Apache, WAMP
- Bases de datos: MySQL, MS SQL
- Idiomas: PHP (versión 5.6-8.x), JavaScript, SQL
- Tecnologías/Bibliotecas: Vue.js, React.js, Node.js, Laravel, JQuery, Electron.js, API sociales (Google)
- Conceptos: POO, MVC
- Entornos: Linux (Ubuntu, CentOS 6/7), MS Windows 10, Git, SVN
Trabajé con el lenguaje de desarrollo de software PHP al comienzo de mi carrera de programación. Luego cambié a JavaScript. Los amo a ambos, pero JS es mi favorito con seguridad.
Mi primer "miniproyecto" con JS fue crear un sistema de tarjetas de presentación en línea para nuestra empresa. Todos nuestros empleados pudieron insertar sus credenciales y hacer sus tarjetas de presentación personalizadas. Luego, podrían escanear e imprimir estas tarjetas de presentación, transferirlas a sus teléfonos celulares o computadoras y usarlas en varias ocasiones. Usé Vue.js para el desarrollo front-end Node.js y MongoDB para el desarrollo back-end. Este fue mi primer proyecto completamente basado en tecnologías JS. En ese momento, tenía la opción de usar PHP para el back-end, pero estaba muy interesado en JavaScript y sus marcos. Además, era nuestro propio proyecto, así que lo probé y funcionó muy bien.
JavaScript es muy dinámico si no usa TypeScript con él, que es exactamente lo que me gusta de JS. Disfruto jugando con el código. Es como jugar con escayola, y no hay que seguir ciertos pasos fijos en muchas ocasiones. A diferencia de los lenguajes estáticos como Java, en JavaScript, el intérprete asigna un tipo a las variables en tiempo de ejecución en función del valor de las variables en ese momento. JavaScript dinámico es un método para crear acciones en una página web sin tener que cargar toda la página en el navegador. Esto, a su vez, mejora la velocidad del sitio web y lo hace más sensible al usuario. Por otro lado, no puedes imaginar el desarrollo web sin JS porque todo el control del desarrollo front-end está en manos de las tecnologías JS.
Entonces, en JavaScript, puede ser mucho más flexible y puede ayudarlo en muchos casos. Sin embargo, este dinamismo a veces irrita a muchos desarrolladores de software, especialmente si son desarrolladores de software de lenguajes escritos como Java o C#. No tenemos nada arreglado en JavaScript, pero por otro lado, si quieres ser un poco “creativo” con el código, te da una oportunidad. Mientras tanto, JavaScript también tiene una solución para aquellos desarrolladores de software que están acostumbrados a escribir lenguajes. Con su flexibilidad, simplemente pueden usar TypeScript con él.
La diferencia entre los lenguajes de desarrollo de software tipificado y dinámico es la siguiente. Si le das un tipo a cierta variable, es fijo y nunca puedes cambiarlo. Por ejemplo, si define una determinada variable como una cadena, un número o cualquier otra cosa, nunca podrá regresar y cambiar su tipo. Por otro lado, en lenguajes dinámicos como JS, puedes decir OK, actualmente mi variable es un número, pero luego la convertiré en una cadena. En algunos casos, la “rigurosidad” de los lenguajes mecanografiados es genial porque evitas muchos errores, pero por otro lado, el dinamismo de la “flexibilidad” también ayuda en muchas otras ocasiones. Por lo tanto, es difícil decir cuál es mejor. Depende principalmente de un desarrollador de software específico y de los rasgos característicos de un proyecto específico.
En resumen, si tengo la oportunidad de elegir la pila tecnológica de un proyecto específico, presto mucha atención a la "sustancia" del proyecto. Es muy importante comprender la esencia de su proyecto, su estructura y la posibilidad de su conveniencia, ya que estos son los principales factores a considerar antes de elegir una pila de tecnología específica para su proyecto. Como, ¿debería usar SQL o MongoDB para la base de datos? ¿Por qué es mejor usar Vue.js para el desarrollo front-end? ¿Qué pasa con Node.js o PHP para el desarrollo de back-end, etc.?
Hable sobre sus cosas favoritas sobre JavaScript y sus marcos (Node.js, Vue.js y React.js).
- El dinamismo de JavaScript
- Trabajar con JS y sus frameworks es como construir una casa
Como mencioné anteriormente, el dinamismo es mi cosa favorita número uno. Me gustan más los marcos front-end de JS. Con los marcos front-end de JavaScript, eres libre de jugar con tu imaginación.
A menudo comparo trabajar con JS y sus marcos con construir una casa. Primero construye el "esqueleto" de su edificio y ya establece los lugares de elementos específicos en cada piso, por ejemplo, la puerta de entrada, las habitaciones, las ventanas, etc. En lugar de reconstruirlos todos en cada piso, simplemente remodelarlos en cada piso. Cada piedra de tu casa es un componente, y cada escalera o ascensor es una ruta. En este edificio, por ejemplo, cada piso son las páginas de su sitio web, las escaleras y los ascensores son las rutas (cuando pasa de una página a otra) y todos los demás elementos, como paredes, sillas y ventanas, son componentes intercambiables.
Los invitados de la casa son los usuarios y los residentes son los demás desarrolladores de software e ingenieros que trabajan con usted. Los invitados de los residentes deben sentirse cómodos al visitar su casa.
¿Cuál es el mejor marco de JavaScript?
Esta es una pregunta muy intrigante y, por supuesto, no tiene una respuesta específica. En lugar de solo mencionar un marco de JavaScript específico, compararé los marcos de JS más populares y dejaré que usted decida.
Vue.js y React.js se usan en el desarrollo front-end, mientras que Node.js se usa para el desarrollo de software back-end.
Vue.js y React.js son muy similares y, al mismo tiempo, muy diferentes. Si conoce React.js, es muy fácil aprender Vue.js y viceversa. Estos dos marcos se están reponiendo uno al otro. Por ejemplo, cuando trato con entradas y cambios, es mucho más fácil trabajar con Vue.js que con React.js.
En React.js, debe escribir más código que en Vue.js. La estructura del código también está mejor organizada en Vue.js, pero nuevamente, también depende en gran medida de cómo escriba su código.
En general, los marcos JS son los mejores porque consisten en componentes y es muy fácil jugar con ellos. Tienes en cuenta el patrón de “no te repitas”. Si ya ha escrito un componente, puede usarlo en varios lugares en lugar de volver a escribirlo.
Por ejemplo, debe escribir un código para un "botón", y la estructura de este botón es la misma en todos los lugares excepto por cambios menores, como el color del botón o el color del cursor. El desarrollador de software no vuelve a escribir el código desde cero si quiere hacer estos cambios menores. Toman el componente específico responsable del color y lo cambian en varias páginas según los requisitos del cliente. Entonces, en cada página, llamas a este "componente de color".
Uso Node.js en mi desarrollo de back-end junto con React.js y Vue.js para el desarrollo de front-end, y la combinación de estas tres tecnologías es ideal. Bromeo sobre esta combinación comparándola con una persona ideal, que es hermosa tanto por dentro como por fuera.
En el marco de Node.js, disfruto trabajar con Express.js o Nest.js. Empecé a trabajar con Nest.js durante el desarrollo de nuestro nuevo sitio web, que pronto se lanzará.
¿Cómo evaluaría la importancia de JavaScript en la industria de TI actual?
No me imagino el desarrollo web sin JavaScript. Por supuesto, hoy en día, la industria de TI está creciendo masiva y rápidamente, pero JS tiene la misma velocidad de crecimiento. Ajusta sus soluciones de acuerdo con los últimos desarrollos de TI. Entonces, estoy seguro de que JS permanecerá en la industria de TI durante décadas.
Hable sobre sus proyectos de desarrollo de software más "memorables" en CodeRiders.
Hablaré de mi primer proyecto “masivo, complejo y enorme”, como me gusta llamarlo. Este proyecto me ha formado como un desarrollador de software experimentado.
Es difícil explicar este proyecto de desarrollo de software personalizado en pocas palabras. El cliente opera en múltiples industrias: soluciones de software de medios y entretenimiento con soluciones de software de marketing y análisis. El cliente ofrece una gran plataforma para que los usuarios se registren, ejecuten y realicen un seguimiento de la efectividad de los anuncios de sus empresas, definan límites de trabajo para sus empleados y verifiquen los resultados.
Trabajé en este proyecto con mis colegas de CodeRiders y con algunos otros ingenieros de software remotos de otros países. Trabajamos en este proyecto en el momento del cierre de COVID cuando todos trabajaban desde casa. Han pasado solo unos meses desde que me aceptaron en el equipo de CodeRiders. Debido a que este era mi primer proyecto masivo, solía quedarme hasta tarde, hasta las 2:00 a. m., con mis colegas desarrolladores de software de CodeRiders, quienes estaban ansiosos por ayudarme para que pudiera involucrarme sin problemas en los procesos de desarrollo. Esta fue la "introducción" al espíritu de equipo de CodeRiders para mí.
Nuestro objetivo era desarrollar código libre de errores y de alta calidad, y no importaba en qué tarea estuviéramos trabajando. Todos mis compañeros iniciaban videollamadas para revisar el código y dar consejos. Nuestro lema en CodeRiders es “Deseamos, juntos lo logramos”, y sí, esa es la verdad, y gracias a este enfoque, me integré a nuestro equipo y adquirí experiencia en el campo del desarrollo de software.
Este enfoque también funcionó con otros desarrolladores de software remotos. Recuerdo que cada vez que teníamos un problema, no importaba quién causó el error. Nuestra primera prioridad era solucionar el problema lo antes posible. Entonces, uno de nosotros lo haría lo antes posible. Luego tendríamos una llamada de emergencia y discutiríamos el problema y las causas del problema para asegurarnos de que no tendremos un problema como ese en el futuro.
Enumere algunas ventajas y desventajas de JavaScript.
ventajas
- JavaScript es fácil de entender y aprender.
- JavaScript es compatible con todos los navegadores modernos, lo que ayuda a producir un resultado equivalente.
- Los desarrolladores de software tienen la oportunidad de crear interfaces ricas.
- Simplemente puede implementarlo en cada proyecto porque funciona perfectamente con otros lenguajes de programación.
- Las empresas globales priorizan el desarrollo de la comunidad e invierten en proyectos importantes. Buenos ejemplos son Google, creado por el framework Angular, y Facebook, creado por React.js.
- JS juega muy bien con otros lenguajes tecnológicos.
- Es posible desarrollar una aplicación completa usando solo JavaScript de adelante hacia atrás porque tenemos varias formas de usar JS a través de servidores Node.js.
- Y por último, pero no menos importante, es muy popular y tiene una gran comunidad. Puede ampliar fácilmente su conocimiento de JS porque hay muchos cursos disponibles.
Desventajas
- El código JavaScript es visible para todos. Cualquiera puede inspeccionar el código.
- Varios navegadores interpretan el código JavaScript de manera diferente, lo que puede resultar en dificultades para leer y escribir código entre navegadores.
- En JS, la depuración es compatible con los editores HTML, que no son tan eficientes como otros editores como C/C+. Esto puede complicar el trabajo del desarrollador para detectar el problema (no es una desventaja crítica).
¿Puede describir un día de trabajo típico en CodeRiders?
Mi día típico en CodeRiders comienza con una buena taza de café y una cálida charla matutina con mis colegas. Luego cada uno va a su trabajo. Es posible que tengamos varias reuniones durante el día. Si es lunes, todo el equipo se reúne para una gran reunión al final del día. Todos representan lo que han hecho, en lo que están trabajando actualmente y lo que se necesita hacer. Si alguien tiene problemas, los comparte con el equipo y damos consejos.
Lo que me encanta de CodeRiders es que, aunque estoy en el trabajo y soy responsable de la calidad de mi trabajo, no me siento presionado por eso. Además, el ambiente es tan relajante que opero mejor y más productivamente.
Sabemos que CodeRiders brinda la flexibilidad de elegir entre trabajar desde casa o desde la oficina. ¿Cual prefieres y porque?
Sí, tenemos la oportunidad de elegir entre trabajar desde casa o desde la oficina, pero me encanta trabajar desde la oficina. De cualquier manera es productivo para mí, pero extraño a mis compañeros de equipo y la oficina en general. Siento muchas emociones positivas cuando trabajo desde la oficina.
Imaginemos que tienes una entrevista con un cliente. Su cliente le presenta su proyecto y, en este punto, no tiene requisitos tecnológicos específicos. Están abiertos a sugerencias. ¿Puede describir cómo continuará con la conversación?
Tuve muchas entrevistas con los clientes antes de entrar oficialmente en el trabajo. Eso es natural porque el cliente quiere asegurarse de que el especialista que está a punto de contratar sea una buena combinación.
En estas entrevistas, la mayoría de los clientes quieren comprender la determinación, el enfoque del trabajo y los valores personales del desarrollador de software. También he recibido algunas pequeñas tareas de prueba, pero esto no sucede muy a menudo, solo cuando el cliente es nuevo en nuestra empresa.
Ha habido ocasiones en que el cliente me hacía una pregunta técnica y no tenía respuesta en ese momento. Sin embargo, la mayoría de los clientes no se concentran en eso, es más importante para ellos comprender su reacción ante los desafíos. Ha habido momentos en los que no conocía una tecnología específica que el cliente necesitaba, pero pasé la fase de entrevista de todos modos. En tales casos, los clientes probablemente ven mi afán por aprender la tecnología requerida rápidamente.
¿Cuál es tu proyecto favorito de todos los tiempos y por qué?
Mi proyecto favorito de todos los tiempos es el primer gran proyecto que describí anteriormente. ¿Por qué? Porque fue entonces cuando adquirí toda la experiencia y profesionalidad que tengo ahora. Trabajé en varias funciones, probé mi conocimiento de múltiples cosas y practiqué varias tecnologías. Finalmente, sufrí mucho en estos proyectos: noches de insomnio y largas llamadas. Con el tiempo, se convirtieron en parte de mi vida.
¿Qué lenguaje tecnológico cree que es el futuro de TI?
Esta es una pregunta que no tendrá una respuesta definitiva. Cada tecnología es importante a su manera y debe usarse en su lugar para funcionar correctamente. Por ejemplo, para ciencia de datos e IA, usamos Python y funciona. Sin embargo, Python no es la mejor solución para el desarrollo web de back-end. Algunos proyectos no son tan grandes ni complicados, pero están escritos en los idiomas equivocados, lo que complica innecesariamente el trabajo.
¿Qué aconsejaría a los desarrolladores de software que recién comienzan su carrera en la industria de la tecnología de la información?
Si cree que aprenderá solo una vez y utilizará su conocimiento durante toda su carrera, ese no es el caso en el desarrollo de software. Debe estar listo para aprender cosas nuevas y actualizar y actualizar sus conocimientos a lo largo de todo su ciclo profesional. Por lo tanto, debe trabajar y aprender simultáneamente en la industria de TI, o se quedará atrás.
Gracias, Sona, por tomarse el tiempo para hablar con nosotros y compartir su rica experiencia.
Además, mencionemos que los desarrolladores de software de JavaScript con sus marcos populares (React.js, Vue.js y Node.js) son muy populares en estos días. En la escasez global de talento de TI de hoy, es mucho más fácil encontrar desarrolladores de software de JavaScript, Vue.js, React.js y Node.js a precios asequibles, especialmente si está interesado en la subcontratación de software y busca desarrolladores de software remotos en centros tecnológicos acreditados. .
Para contratar desarrolladores de JavaScript, ofrecemos una consulta gratuita con el equipo de CodeRiders. Contáctenos para analizar sus necesidades de software y verifique nuestras tarifas para desarrolladores de software.