› Foros › Off-Topic › El rincón del eoliano
Cordelay escribió:Buenas gente!
Tengo bastantes dudas sobre cómo afrontar un cambio de dirección en mi vida laboral, a ver si alguien que controle del tema o del sector puede contarme cómo ve la película...
Os cuento, soy músico, tengo 40 años, llevo currando 24 como músico de directo y estudio de grabación, y 22 años como profe particular de música, tanto en academias como por mi cuenta.
He vivido en "mij cannes" el empeoramiento drástico de las condiciones laborales en el mundillo musical (como tantos otros sectores, claro) y por otro lado cada vez se está poniendo más complicado mantener una cartera de alumn@s que dé para vivir sin ir ahogado.
Por esto y por otras razones, antes de arrancar 2020 decidí comenzar a estudiar Diseño Web y Programación por mi cuenta.
Dejar claro también que entiendo que este sector tampoco es la gallina de los huevos de oro, aunque así te lo vendan en bootcamps y cursos online...
En lo que va de año he ido haciendo algunos cursos de Udemy/Platzi/Coursera, tengo los certificados de freecodecamp de Web y Javascript, y aunque todavía no me veo con conocimiento ni capacidad resolutiva para ponerme a currar "ya", sí que me gustaría ir dando pasos en la dirección correcta para no tirarme tres años haciendo cursos de todo y estancarme en "Tutorial Hell".
Buscando ofertas así por encima me da la sensación de que lo que más se demanda es Frontend Senior con React y backend con no-se-qué stack... En principio y desde la inexperiencia, cualquiera de las dos opciones me parecen interesantes y de momento no tengo especial predilección por ninguna de las dos vertientes.
Lo que me causa un poco de conflicto es que estoy tan acostumbrado a trabajar de tú a tú o con equipos muy pequeños, buscando soluciones a las problemáticas del cliente, que no sé si me da el perfil y el conocimiento para entrar como "Junior" en algún sitio a "picar" código como me han comentado conocidos.
Por otro lado también me interesa el tema de gestión de proyectos y una amiga consultora me recomendaba que me sacara alguna certificación Agile / Scrum / Kanban, pero no sé si es algo que se demande así de primeras a un pringadete junior...
Os agradeceré cualquier comentario que dejéis al respecto, por lo pronto mi plan de estos mesecillos es hacer un par de proyectos personales para ir haciendo portfolio e ir viendo qué camino seguir...
Muchas gracias!
Cordelay escribió:por lo pronto mi plan de estos mesecillos es hacer un par de proyectos personales para ir haciendo portfolio e ir viendo qué camino seguir...
Cordelay escribió:Cuando hablas de microservicios, ¿te refieres a conectar la app con tal API y con tal otra API?
Cordelay escribió:es encontrar un curro que tenga un horario más o menos rutinario,
Cordelay escribió:es encontrar un curro que tenga un horario más o menos rutinario,
jorcoval escribió:O que surja algún problema en producción (en entorno, no me refiero a fábrica propiamente dicha) y tu jornada de 8 pasa a 10 horas ese día.
Fox escribió:Es lo que digo siempre. Trabajo hay y bien pagado también pero te gusta o te gusta, si no, pues se vive amargado.
Taiyou escribió:Cordelay escribió:Cuando hablas de microservicios, ¿te refieres a conectar la app con tal API y con tal otra API?
Por microservicios me refiero a que en vez de tener todo el backend corriendo dentro de una única aplicación (lo que a veces se llama "monolito"), divides la lógica en varios "backends" separando las responsabilidades de cada uno. Por ponerte un ejemplo, imagina que Netflix hace esto (de hecho lo hace) y tiene a lo mejor un microservicio que se encarga de controlar los usuarios, otro la lista de vídeos, otro temas de cachés, otro para comunicarte con el frontend, otro de CDNs... (esto es una versión ultra-simplificada, realmente en Netflix lidian con cientos de microservicios).
Esto tiene cosas buenas y malas. Por un lado te permite mucha flexibilidad (puedes incluso usar diferentes tecnologías entre cada uno), puedes tener gente centrada en un conjunto pequeño de ellos y tener mucho control sobre la lógica de cada uno, y sobre todo que si hay algún problema (rollo red, un fallo en los servidores...) si lo has diseñado todo más o menos bien no tiene por qué afectar a la integridad de todo el sistema. Por otro lado la pega es que divides mucho el diseño y normalmente acabas necesitando más gente, necesitas comunicación muy rápida entre los servicios para que no introducir muchos retrasos e introduces complejidad extra conforme crecen en número (ej: cómo lidiar con los modelos de los mensajes que se intercambian cuando algunos microservicios son mejorados y otros no sin romper compatibilidad).
Usualmente esto se hace teniendo clusters donde corren instancias de estos microservicios, comunicados con algún protocolo rápido (idealmente gRPC, también es común que se use HTTP o directamente sockets). Es normal también contar con un sistema de cola de mensajes que sirva tb de backup por si algún microservicio se cae, cuando se instancie de nuevo pueda recuperar esos mensajes y actuar como si no hubiera pasado nada (para esto hay muchas opciones pero la que más he usado es Apache Kafka). Al ir todo esto en clusters de servidores también es usual usar bases de datos que funcionen bien en estas situaciones (la que más he usado es Cassandra, pero PostgresSQL tb es común). Luego para lidiar con los despliegues lo que más he usado es Docker para contenedores y Kubernetes/Helm para lo que son los despliegues en sí. Además los proveedores de nubes generalmente ofrecen estas soluciones o las suyas propias para correr estas aplicaciones y que todo quede en casa .
Yo normalmente trabajo con Scala como lenguaje de programación (pero es común que se use Java tb). Un framework muy común para lidiar con estos problemas es Akka (que proporciona mil herramientas para trabajar con paralelismo de manera segura, trabajar con temas de streaming, crear APIs REST, crear y gestionar clusters y nodos...). La mayoría de tecnologías que he mencionado son libres hasta cierto punto (Akka tiene módulos de pago pero en general es open source), así que si quieres trastear no deberías tener muchos problemas.
Perdona el tocho y la sobrecarga de información, pero así creo que queda resumido muy superficialmente con lo que lidio a diario . Si te interesan estos temas y necesitas que te resuelva alguna duda (ten en cuenta tb que soy normalito, ningún experto ni nada!) me comentas ok?
Taiyou
EDIT:Cordelay escribió:es encontrar un curro que tenga un horario más o menos rutinario,
Cuidao con esto, que yo he tenido épocas de locuras horarias muy heavies... incluyendo viajes transoceánicos y palizas de jetlag que no eran nada sanas .
Cordelay escribió:Por eso decía que me daba la impresión de que con el frontend todo parece ser más concreto (sin meternos a fondo con temas de frameworks, que supongo que pueden tener tremendas complejidades), mientras que en el backend los conceptos son más abstractos, al menos para un novato como yo
Cordelay escribió:Pregunta concreta, y si soy muy plasta no me respondais: ¿Cómo lidian en vuestros respectivos curros (jefes/superiores y clientes) cuando no se pueden alcanzar deadlines? ¿O cuando surgen fallacos inesperados que de repente impiden desarrollar ciertas funcionalidades o qué-sé-yo?
De nuevo, gracias por haberos tomado tiempo para responder.
Cordelay escribió:@Taiyou
Vaya tochazo !
Te agradezco la explicación detallada, hay muchas tecnologias que ni siquiera sé qué funcionamiento tienen en la cadena (bueno, en realidad no tengo claro del todo ni para qué sirve la cadena, jur)...
Por eso decía que me daba la impresión de que con el frontend todo parece ser más concreto (sin meternos a fondo con temas de frameworks, que supongo que pueden tener tremendas complejidades), mientras que en el backend los conceptos son más abstractos, al menos para un novato como yo
Pregunta concreta, y si soy muy plasta no me respondais: ¿Cómo lidian en vuestros respectivos curros (jefes/superiores y clientes) cuando no se pueden alcanzar deadlines? ¿O cuando surgen fallacos inesperados que de repente impiden desarrollar ciertas funcionalidades o qué-sé-yo?