Como todos los años van apareciendo nuevas tecnologías o algunas se vuelven más populares, siempre tiendo a practicar algunas herramientas o temas en más medida que otras, cuando no las domino o no las conozco en tanta profundidad.
Así que en en este articulo me gustaria compartirles que tecnologías estaré aprendiendo en todo este año 2023 principalmente, cuales considero que estaré invirtiendo más tiempo, y cuales creo me serán más dificil aprender.
Las herramientas que les mencionaré no serán reemplazos a las que ya uso, solo las añadire al Stack de herramientas que uso actualmente.
Si quieres saber más de mi Stack, dejo el video, de Mi Stack web 2023.
por cierto mi area principal de trabajo es el desarrollo web a modo Freelance, pero hay veces que desarrollo otro tipo de aplicaciones como app moviles, de escritorio o administro sistemas de servidor, o simplemente asesora a profesionales de estas areas, asi que no estoy ligado a un mismo Stack todo el tiempo. Esto Me resulta muy interesante y aprendo muchisimo en el proceso.
¿Qué estarás aprendiendo?
En resumen estas son las nuevas areas y tecnologías que estaré invirtiendo tiempo en aprender este año.
- Frontend
- Svelte (SvelteKit)
- Design System
- UI/UX
- Micro-Frontends
- Backend
- Rust
- C#
- Java
- Micro-services
- gRPC
- Base de datos
- Microsoft SQL Server
- ORMS
- Prisma
- Mobile
- Kotlin
- Swift
- Cloud
- Google Cloud
- Azure
- Data Science
Empecemos con el Frontend.
Frontend
Como saben una gran parte del Frontend es usar frameworks web, asi que para este año estaré aprendiendo un poco mas a profundida Svelte, especificamente su Meta Framework llamado SvelteKit, el cual ofrece un Stack más completo (SRR, SSG, Client Side Rendering). Y aunque en el 2022 no lo llege a encontrarlo tan frecuentemente, si he visto que muchas empresas en 2022 empezaron a usarlo en algunos proyectos pequeños/intermedios, asi que este año creo que su uso aumentara.
Este sera una adicion a otras herramientas que uso como Nextjs, Astro y Vitejs el cual uso junto con React y Vue.
Tambien hay otros proyectos que se mencionaron mas este año como Remixjs, Solidjs, o Qwikjs. Sin embargo estos tiene una similtud proyectos con React y Next, ademas que no son tan utilizados, asi que no creo que necesite estudiarlos en tanta profundidad.
Este año seguire usando Typescript junto con Frameworks de Frontend. Y en cuento a CSS seguire usando el Framework Tailwind principalmente, aunque algo que tengo pendiente para este año es practicar más en la creacion de Sistemas de Diseño o Design System, los cuales son basicamente implementaciones propias de diseño, creando tus propias coleccion de tokens, practicas y compoenntes reutilizables.
De hecho relacionado a esto, este año planteo darle unos meses de estudio al diseño de Interfaces(UX/UI), para poder mejorar un poco más proyectos que ya tengo en funcionamiento. No planeo dedicarme a esto, solo creo que me ayudaria entender algunos conceptos básicos y a que mis aplicaciones mejoren en este aspecto.
Y como seguire asesorando a algunos clientes, estaré practicando un poco más la implementacion de Micro-frontends, principalmente en sus distintos tipos de configurando en cuanto a Module Federation, usando tanto Webpack como con Vite, al ser otro entorno que me llegue a encontrar varias veces el año anterior.
tanto Svelte como Micro-Frontends son temas que trato muy frecuente, asi que no creo que me tome tantas horas de estudio, pero en cuanto a UI/UX, CSS, Design System, que no lo tengo en tanta practica, si planeo organizarlo en varios meses para poder ver mejorarlo progresivamente.
Backend
En cuanto al Backend un lenguaje que estare aprendiendo más a fondo este año sera Rust, y le daré más uso a C# y Java.
La adopcion de Rust cada año avanza un poco mas y he empezado a ver más proyectos usandolo, si bien no espero usarlo como lenguaje principal de backend, si pienso explorar un poco mas su ecosistema de herramientas, ya que el año anterior me encontre algunos proyectos que lo usaban en entornos de microservicios y me tomo más horas de lo normal conocer algunos modulos.
Este ultimo año tambien Google hizo publico su nuevo lenguaje llamado Carbon, que seria como una version mejorada de C++, algo asi como lo que es Kotlin con Java o Typescript con Javascript. Carbon tambien lo voy a probar a modo de conocer algo nuevo solamente, porque ese lenguaje aun esta en desarrollo. quizas unas cuantas horas solamente para ver si en los proximos años valdra la pena aprenderlo, o seguiremos con Rust.
Porque si Carbon dice lo que es, creo que pasaria algo similar a lo que paso con Ruby cuando Nodejs aparecio.
En cuanto a C# y Java, debido a algunas ofertas de Trabajo este año, voy a darle mas practica tambien enfocado al Backend a modo de recordartorio, con Herramientas como Blazor, Entity, ASP Net Core, SpringBoot, Hibernate, y relaciondas.
Estos se sumaran a lenguajes que ya uso como son Go, Typescript y Python que tambien llego a usarlos frecuentemente, en donde desarrollo APIS de GraphQL y REST. Aunque con Java voy a estar prestandole más atencion al entorno de microservicios que es donde más lo he visto usado.
en cuanto a APIS y relacionado a Typescript, este año planeo usar un poco mas tRPC, el cual, es basicamente una forma de compartir tus tipos de datos del backend con el frontend, en proyectos FullStack, de esta forma solo el frontend pide lo que necesite, es basicamente como GraphQL pero para Monolitos y basado enteramente en Typescript, de alli el nombre tRPC (Typescript Remote Procedure call).
ademas que tambien espero usar más frecuentemente gRPC, que es un framework de RPC para comunicar microservicios, a modo de ir ganando practica un poco más en el diseño de Sistemas
Y Como Rust, C# y Java no son lenguajes nuevos para mi, no creo que me tome mucha horas de estudio repasarlos, pero si creo que sus Frameworks de todos estos me podrian llevar un par de meses poner al dia de todos estos, asi que es en estos donde necesitare organizarme mejor.
Bases de Datos
En cuanto a base de datos planeo estudiar mas a fondo sistemas de base de datos como SQLServer, este por el mismo motivo de C#. De hecho es muy comun encontrar a ambos siendo usados.
Aunque esto no algo nuevo que aprendere en realidad, solo lo tendre con un poco mas de practica por trabajo. en adicion a PostgreSQL, MySQL, Mongodb y Redis que es los uso muy frecuentemente.
Relacionado a las bases de datos en Node, ya que lo uso mucho en proyectos FullStack, tambien planeo usar un poco mas ORM como Prisma, que lo tengo como pendiente, ya que este año use otros ORMS como Knexjs, TypeORM y Sequelize.
Aqui no estaré aprendiendo nada nuevo, solo colocaré más proyectos en practicas.
Desarrollo Movil
En cuanto a movil, este año seguire usando Flutter, y React Native, pero planeo aprender Swift para crear apps moviles en los ultimos meses del año, y planeo darle un repaso a Kotlin para apps moviles. creo que estos me podrian dar una introduccion al desarrollo de apps moviles nativas el siguiente año, para ir teniendo más practica.
Swift creo que es el que más me va a costar, es decir literalmente, porque tendré que adquirir un Mac, pero es algo que me causa interes.
Cloud
En cuanto a la nube, este año seguire usando los mismos Servicios AWS, Digitalocean. Con estos tipicamente uso EC2 para VPS, S3 para object store, lambda para Serverless y asi.
Más este año quiero probar los servicios de Azure y Google que ofrecen practicamente lo mismo pero con su propios SDKS.
Aunque para proyectos comunes seguire usando servicios PasS como Heroku, Vercel, Netlify, Railway, y así. de hecho relacionado a esto, Heroku en cuanto a su plan basico no ha cambiado nada, asi que aplicaciones que ya tenia desplegadas alli no las movere porque no hay ningun inconveniente, pero si para mis nuevos proyectos voy a empezar a usar Railway.
En cuanto a Serverless, servicios nuevos que planeo probar son Deno Deploy, Vercel Edge Functions, CloudFlare Workers. a modo de conocer otras alternativas a Lambda.
Aqui tampoco estaria aprendiendo algo nuevo, solo estaria probando otros servicios asi que las horas de estudio no seran muchas.
Sin embargo algo que si le daré más practica y que me tomara más estudio, sera implementar mi propia infraestura de despliegue y adminitracion de microservicios, asi que esos meses estaré dandole más estudio a tecnologías como Docker, Kubernetes, Kafka, RabitMQ, Istio, Logstach, y asi. A modo de practica para entender la infraestura y preparar un proyecto nuevo para este año. Aunque todo esto es más a modo de practica para luego adentrarme en el diseño de sistemas distribuidos.
BaaS y CMS
En cuanto a servicios de Backend as a Service y Headless CMS, que para que no lo conoces es basicamente la forma de tener un Backend ya creado para enfocarse en el frontend o el desarrollo movil, este año pleneo usar un poco más servicios como Supabase, el cual tiene opciones similares a Firebase y es batante facil usarlo desde proyectos web.
y en cuando a Headless CMS seguire usando Sanity. quneu no descarto usar algun otro si aparece, de hecho estos son buenas opciones para proyectos de clientes.
Editores de Código
En cuanto a editores de código seguire usando Neovim y VSCode tipicamente, ademas de IDEs como los Jetbrains o Visual Studio.
Pero algo que estaré haciendo este año, es crear algunas extensiones para que se integren con mi propio sistemas, para mejorar un poco mi productivada, en NeoVim por ejemplo, esto me llevara a poner un poco mas en practica Lua, que es un lenguaje de programacion que se usa muy frecuentemente para crear plugisn aqui. Mientras que para desarrollar extensiones de VsCode se usa Javascript y Typescript.
Esto no es para trabajo sino para crear algunas herramientas en cuanto a leer mis tareas, mis notas, o mis pendientes desde el editor.
Ciencia de Datos
Muy bien hasta aqui, parece que estuviera aprendiendo mucho, pero realmente todo lo que les he mencionado son tecnologias, herramientas, lenguajes y Frameworks que estarian en la categoria de Desarrollo y administracion de aplicaciones web, temas a los que he dedicado muchos años de trabajo y estudio, es por esto no considero que me sea tan complicado aprenderlos, al usarlo muy frecuentemente. Pero este año nuevo una area que pleano darle más tiempo de estudio, sera la ciencia de datos.
Esto porque esta area es muy grande y tiene muchas herramientas, lenguajes y más importante areas de estudio que aun se estan desarrollando como seria Deep Learning.
Así que este año solo me dedicare a estudiarlo y practicar para el proximo año entre más a fondo en la creacion de sistemas inteligentes. Es decir servicios web que ejecutan modelos en redes distribuidas, que es algo que se esta popularizando cada vez más,y se eta haciendo muy comun.
Esto no será ajeno en lo que ya trabajo, de hecho creo que solo le dara un nuevo nivel eventualmente a mi trabajo. Es decir el poder crear aplicaciones web y moviles con backends en redes distribuida que ejecutan modelos inteligentes.
Quizas han escuchado de los servicios de OpenAI, como chat-gpt, dalle-2, whisper y demas. Bueno todos estos no solo son modelos ai en redes distribuidas, sino implementaciones practicas de estos, que estan mostrando el siguiente paso de lo que seria el desarrollo aplicaciones web justo ahora.
Esta sí es una nueva area de estudio para Mi, y es una inversion de tiempo a futuro. Mi ventaja es que no empiezo desde cero, y me resulta muy emocionante ver algo nuevo.
Conclusion
En conclusion una nueva area de estudio que estaré viendo este año es la ciencia de datos en general para luego aplicarla en mis proyectos, pero mi trabajo principal es seguir siendo desarrollador.
por supuesto estas no son las unicas areas, realmente hay muchas más que tambien me resultan interesantes más no me daria el tiempo para poder aprenderlas, por ejemplo areas como:
- IoT (Internet of Thing)
- Security & Hacking
- Blockchain
- Animations / 3D Design (web, mobile)
- 3d game dev
- Realidad aumentada
quizas prueba cosas nuevas de estas en algun punto del año, pero no planeo darle tanta importancia como a la lista de tecnologías que te he mencionado que basicamene si me da trabajo.
Por supuesto nada de esto podrá ser logrado sino tuviera una organizacion en mis estudios, no tuviera trabajo, o no me gustara lo que hago, o simplemente administro mal mi tiempo, asi que esta es un tema que tengo muy presente siempre, asi que planeo crear un video muy bien diseñado relacionado en administracion de tiempo para programadores, pero esto si me tomara algo de tiempo porque quiero hacerlo muy bien porque creo que muy importante.
En fin Mantenerse enfocado y mejorar en tu trabajo sin que resulte frustante es una buena forma de vivir aprendiendo y disfrutando de tu tiempo. y si aun no encuentras un area a la que dedicarte no despesperes, solo mantente estudiando y explorando nuevas areas, mejorando un poco cada dia, para que el dia que encuentres aquello que amas hacer seas un individuo competente capaz de cumplir con tu proposito.
Y si tienes un area de estudio o alguna tecnologia nueva que estaras aprendiendo este año comentalo y explicala de que se trata, de esta forma aquellos que no lo conocian, quizas les interese y puedan aprender algo nuevo.
Nos vemos en un siguiente video.