Press "Enter" to skip to content

Episodio 1: Preparando la mochila

Hola a todos. Bienvenidos al primer episodio de Ruta DEV. Me llamo José David, pero podéis llamarme Joseda. Soy un desarrollador que trabaja principalmente con Javascript y hoy comienza mi primer podcast personal. Éste no es el primer podcast en el que participo. Mi primera aparición fue en un episodio de Maratón Linuxero, donde hablaba con otros dos compañeros sobre git y los servicios basados en este sistema de gestión de versiones (github, gitlab, bitbucket, etc.). También participo en RadioDev. Podcast en el que sus integrantes presentamos una herramienta para desarrolladores en episodios cortos en solitario, y de vez en cuando nos unimos para hablar de un tema concreto relacionado con el desarrollo de software, pero de forma más extendida.

En este nuevo podcast que he creado os hablaré de qué voy haciendo para mejorar como programador: qué voy aprendiendo, mis errores, mis aciertos y mis descubrimientos. Será como una especie de diario del programador. Con este podcast, me propongo perseguir dos objetivos, que son:

  • Comprometerme en público a mejorar día a día.
  • Crear una comunidad de desarrolladores de culo inquieto como yo.

El podcast tendrá una periodicidad quincenal, ya que al no disponer de tanto tiempo, si además tengo que grabar un episodio cada semana, no podré contaros mucho de lo que voy aprendiendo. En el futuro ya iré viendo si cambio la periodicidad, pero creo que como punto de partida, quincenal será lo mejor.

En este primer episodio os voy a comentar como he planificado la gestión de este aprendizaje. Como el podcast se llama Ruta DEV, a este episodio lo he llamado «Preparando la mochila», como metáfora que os he contado en esa pequeña cuña humorística con la que he empezado el episodio.

Así que nada, ¡empezamos con el episodio!

Mejorar como desarrollador

Lo primero es comentaros mi objetivo principal, que es mejorar como desarrollador en el día a día.

¿Y qué necesito hacer para mejorar como desarrollador? Pues bien, he pensado en estos 5 puntos, que me parecen los más importantes.

Estar actualizado

Me parece una parte fundamental. No me refiero a conocer al dedillo todos los frameworks de javascript que existen. A nadie mínimamente humano le daría la vida alcanzar tal objetivo. Simplemente sería conocer las novedades que van aconteciendo en las nuevas versiones de lenguajes, nuevas tecnologías que están haciéndose ver, noticias del mundo del desarrollo de software. No es cuestión de saberlo todo, sino estar actualizado con el día a día de nuestro mundillo.

Para lograr este objetivo he pensado en dedicarle un tiempo al día o cada dos días a ojear noticias en blogs y suscribirme a newsletters sobre el ámbito de la programación.

Para ser más productivo en esta labor, he decidido centralizarlo todo en un par de bandejas de entrada donde recoger toda la información de valor que vaya filtrando: Pocket y Gmail.

Pocket seguro que ya lo conocéis. Es un software multiplataforma donde puedes enviar los artículos que quieras leer más tarde. Al acceder a este programa podrás ver esos artículos, etiquetados por ti, y puedes leerlos con una interfaz mucho más limpia y libre de distracciones. Al usar Pocket, puedo ver el listado de artículos nuevos en mi feed RSS y en otras fuentes, y enviar a esta herramienta solamente los que me interesen

Gmail sí que no necesita explicación. Es el cliente de correos del gigante Google. La he elegido porque sus filtros harán que pueda organizar las newsletters que recibo en distintas categorías. La forma de hacerlo la explicaré más adelante.

Las fuentes de información que frecuentaré a la hora de actualizarme son:

  • Artículos de blog que sigo en Feedly, que es un lector de feeds RSS. Que no es más que un software en el que añado los blogs que me interesan, y cada vez que un artículo nuevo es publicado en alguno de esos blogs, puedo consultarlos en esta herramienta en vez de estar continuamente comprobando todos los blogs que quiero seguir.
  • Artículos de blog que me van apareciendo en Daily, una extensión de Chrome que sustituye las nuevas pestañas de este navegador por una pestaña donde te muestra artículos del ámbito de la programación de diversas fuentes.
  • Información que encuentro en diversos canales de Telegram sobre programación. En el PC uso el cliente oficial de Linux. Y en mi móvil, uso Plus Messenger, un cliente no oficial que destaca por poder tener pestañas por tipo de chats (grupos, supergrupos, canales, bots, etc) y ultimamente también por categorias personalizadas. Yo tengo una de programación donde añado todos los canales de programación que sigo.
  • Hilos y enlaces que encuentre en Twitter. No soy muy dado a usar mucho las redes sociales, la verdad, y Twitter no es una excepción. Pero es verdad que aquí se mueve mucho mi gremio, y creo que debería al menos ojear un poco esta plataforma. Así que intentaré ser un poco más asiduo en ella.
  • Newsletters. En mi cuenta personal de Gmail, estoy suscrito a varias newsletters con temática de programación. Aquí hay verdaderas joyas. Si a alguien le interesa, podéis preguntarme y le recomiendo alguna.
  • Vídeos: tampoco soy muy dado a ver tutoriales en Youtube, pero me gusta ver charlas, noticias, entrevistas, etc.

Bueno, con respecto a estar actualizado, ésto es todo. Pasemos al siguiente punto.

Investigar herramientas para desarrolladores

Os cuento un secreto, me encanta descubrir nuevas apps, y si son para programadores, más todavía. Cuando estudiaba el CFGS de Desarrollo de Aplicaciones Webs, e iba en coche con unos amigos a las clases, cada dos por tres les decía «He descubierto un programita…». Y siempre se echaban a reir. Siempre me ha gustado esto de los programas informáticos, o como los llamamos ahora, aplicaciones, o apps si tienes prisa.

Parecerá una tontería, pero al ir probando herramientas para desarrolladores, he conseguido crear un workflow muy productivo a la hora de desarrollar. Un día os lo contaré, porque hoy no es el momento.

Para capturar toda la información que encuentre sobre herramientas para desarrolladres, voy a centrarme en Trello. Trello es un software multiplataforma que implementa el modelo Canvan, que no es más que añadir tarjetitas de tareas a columnas, y después ir moviendo esas tareas de una columna a otra cuando cambie su estado. He elegido esta herramienta porque no solamente hablaré de herramientas de desarrollo en este podcast. En RadioDev también hablamos de herramientas para desarrolladores. Y no solo ahí, sino también en un canal de Telegram que tengo que se llama «Recursos para WebDevs». Os recomiendo que le echeis un vistazo si os gusta «bichear» este tipo de softwares.

Entonces usaré Trello con un tablón de herramientas para programadores.

En el tablón he creado 4 listas:

  • Backlog.
  • Ruta DEV.
  • RadioDev.
  • Recursos para WebDevs.

En Backlog irán a parar todas las herramientas que descubra, pero que todavía no he probado. Una vez probadas, si me gusta para Ruta DEV, RadioDev o Recursos para WebDevs. La pasaré a su columna correspondiente para posteriormente publicarla en ese lugar.

Las fuentes de información donde exploraré estas herramientas, son las siguientes:

  • Github. El archiconocido servicio basado en git que se ha convertido en toda una red social para programadores y otros creadores similares. Seguro que ahí encuentro la mayoría de herramientas para desarrolladores que os iré comentando.
  • Canales de Telegram, que también comenté en el apartado anterior.
  • Newsletters sobre recursos para desarrolladores.
  • Twitter.
  • Product Hunt. En esta plataforma no aparecen tantas herramientas, pero muchas de las que si aparecen son verdaderas joyas. Merece la pena ojearlo de vez en cuando.

Adquirir y mejorar habilidades relacionadas con la programación

Una parte muy importante, ¿no creéis?

En este caso no hay mucho que explicar. Me serviré de Tutoriales, cursos, libros y vídeos para aprender todo lo posible sobre un tema muy concreto del desarrollo de software.

Me gustan todos los métodos que he mencionado, excepto el de vídeos. Los vídeos me parecen una forma muy pasiva de aprender. Ver a alguien programar no te hará mejor programador. Tienes que ensuciarte las manos si quieres afianzar lo que estás viendo. Pero no voy a negar que si en mis manos cae un buen vídeo no lo voy a desperdiciar. Será encontrar una aguja en un pajar, pero seguro que alguno me encuentro por el camino. Los otros métodos me parecen estupendos. es más cómodo y fácil volver a información anterior o pasar de largo información que no te interese, que como se dice, el tiempo es oro.

También quiero dejar claro que aparte de usar estos recursos para aprender, el recurso principal será practicar mucho, para ir afianzando lo aprendido.

Adquirir y mejorar habilidades no relacionadas directamente con la programación

Para este objetivo usaré el mismo tipo de medios que he comentado en el apartado anterior. Pero la pregunta es: ¿Por qué mejorar estas habilidades? ¿No sería una pérdida de tiempo?

Pues bien, mi respuesta es un no rotundo, y tiene dos razones:

  1. Trabajo por cuenta ajena como programador, 8 horas diarias. Aparte tomaré parte de mi tiempo libre para seguir formándome por gusto (como dicen: sarna con gusto no pica). Entonces creo que es bueno desconectar un poco de la programación y aprender otras habilidades distintas, aunque solo sea por eso, desconectar.
  2. Mi experiencia me ha enseñado que a largo plazo suele ser mejor aprender habilidades distintas para mejorar en un ámbito. Yo pienso que si siempre te centras en lo mismo: sumas. Pero si vas aprendiendo distintas habilidades: multiplicas. Un ejemplo: Pongamos que leo un libro de programación cada dos semanas. Si la mitad del tiempo la empleara en aprender y practicar técnicas de lectura rápida, al principio leeré una media de un libro al mes. Pero cuando mejore mi técnica de lectura rápida acabaré leyendo el doble o triple de libros.

Y sobre esto nada más que añadir. Pasemos al último punto.

Hacer comunidad

Este es mi último objetivo para poder mejorar más como desarrollador. Creo que la comunidad es muy importante. Y no solo lo creo, sino que personalmente lo he experimentado. Pertenezco a un grupo de Telegram, en el que hace unos años, unos cuantos nos aventuramos a aprender Jekyll, el generador de sitios estáticos más conocido y creado en ruby. Pues bien, el hecho de ir aprendiéndolo en grupo, de ir contándonos fórmulas que íbamos descubriendo y el simple hecho de resolvernos dudas entre nosotros hizo que la forma de aprender de todos fuera mucho más rápida, efectiva y, además, amena. Así que con este podcast espero formar una pequeña comunidad para aprender juntos. Si os animáis, os espero con los brazos abiertos.

Por un lado, quiero centrar la comunidad del podcast en Telegram. He creado un grupo y un canal. En el grupo estaré en contacto directo con la comunidad del podcast, y en el canal iré publicando material que vea interesante para vosotros. También servirá para abrir temas de debate en el grupo. Espero que os guste.

Y por otro lado tengo la intención de hacerme más participativo en otros grupos de Telegram, en algún que otro canal de Slack, en Twitter, Linkedin, etc.

Ya os iré contando la experiencia.

Antes de empezar hay que hacer limpieza

Bueno, ya he declarado qué voy a hacer para ir mejorando mis habilidades como desarrollador. Ahora me queda por contaros dos cosas más:

  1. Qué objetivos específicos me voy a proponer.
  2. Cómo me voy a organizar.

Pero antes de todo ésto sería conveniente adaptar bien las herramientas que usaré para llevar a cabo mi objetivo. Y no solo adaptarlas, sino también eliminar de ellas todo lo que no me sirve. Os comento lo que he hecho en cada una de ellas:

  • Gmail. Primero me he desuscrito de todas aquellas newsletters que ya no me aportan nada o que simplemente había dejado de leer. Con lo fácil que se hace, y lo que he tardado en realizar esta acción… También he creado un par de filtros, uno para newsletters de programación y otro para newsletters sobre desarrollo profesional. Ambos filtros detectan el correo electrónico, y si está en alguna de las dos listas, lo etiqueta con su correspondiente tag y lo archiva. De esa manera Tendré disponible esos correos en su categoría correspondiente y no ocuparán la bandeja de entrada. De verdad, es todo un gustazo. Y por último, también he buscado alguna newsletter más sobre programación a la que me he suscrito.
  • Twitter. He revisado todas las cuentas que seguía y he dejado de seguir las que no me interesan. Bien porque ya no publican o porque no me interesa lo que publican. También he eliminado las listas que tenía sobre distintos temas, ya que esas listas no eliminan las cuentas que dejo de seguir. En el futuro crearé otras listas en Twitter, pero tengo que ver como orientarlo.
  • Feedly. He dejado de seguir blogs que ya no publican o que ha dejado de interesarme el tipo de artículos que publican. También he buscado otros blogs sobre temas de desarrollo de software.
  • Telegram. He dejado de seguir los canales que han dejado de interesarme.
  • Podcasts. Me he desuscrito de los podcasts que ya no sigo.

Por donde empezar

Ahora pasaré a comentaros los objetivos específicos que me voy a proponer para cumplir los «sub-ojetivos» que comenté anteriormente.

«Estar actualizado», «Investigar herramientas para desarrolladores» y «Hacer comunidad»

En ésto no hay objetivos específicos que concretar. Simplemente en el día a día iré revisando las fuentes de información y os iré comentando lo que vaya encontrando sobre estos puntos.

Para hacer comunidad sería más de lo mismo. Iré participando más activamente en los sitios que comenté anteriormente. También os iré contando mi experiencia.

Adquirir y mejorar habilidades relacionadas con la programación

Os listo abajo el orden de prioridad que he elegido para aprender sobre este tema:

Docker. Enfocado a usarlo como entorno de desarrollo.

He decidido empezar por Docker porque me he informado sobre sus ventajas al «dockerizar» tu entrono de desarrollo. Lo primero es que al usar docker con tus proyectos, éstos se vuelven exportables. Cosa que me interesa muchísimo. Ya que me gustaría dar un formateo a mi PC y cambiar el sistema operativo antes de que mi Linux Mint 18.2 deje de tener soporte. Ésto no lo he hecho antes por no tener que volver a configurar todos los proyectos que tengo.

La otra razón es no tener todos los servicios ejecutándose en todo momento. Al usar Docker, podré lanzar de una sola vez los servicios que necesite y parar también de una sola vez los servicios que no vaya a necesitar para trabajar. Así no utilizaré recursos de más en mi portátil.

Fundamentos base de Javascript y Node

No me refiero a los más básicos, sino a otros fundamentos, funcionalidades, utilidades, etc. más avanzadas de Javascript y Node. Ya que uso Javascript y Node todos los días en el trabajo. Seguro que investigando más sobre ellos termino sacándoles muchísimo más partido.

Patrones de diseño

Es otra forma de mejorar mis habilidades como programador. Aprender sobre estas estrategias predefinidas para resolver ciertos tipos de problemas que podemos encontrarnos los programadores.

Testing

Es mi gran asignatura pendiente. No es que sea la menos importante, pero creo que las anteriores me urgen un poco más. En mi corta vida de programador apenas he hecho testing. Estoy deseando llegar a este punto. Seguro que una vez empiece a probarlo, nunca más programaré como antes.

Habilidades no relacionadas directamente con la programación

Mi primer objetivo es aprender y mejorar la técnica de lectura rápida. Sé que una vez perfeccionada le sacaré mucho partido.

Después tengo pendiente leerme algún que otro libro, como el de «Como ganar amigos e influir en las personas». Que pese a que el título puede parecer que va dirigido a gente antisocial y sin amigos, no tiene nada que ver con eso. Tengo entendido que aparte de relaciones humanas habla sobre psicología, marketing y liderazgo. Es uno de los libros más conocidos y recomendados a emprendedores. Hace tiempo que lo compré y apenas he leído tres capítulos. Así que antes de empezar a leerme otro libro, quiero sacarle partido a éste.

Otro pendiente que tengo, quizás el siguiente, es el de «La semana laboral de cuatro horas», de Tim Ferris. Este título parece un poco «vende-humos», pero tengo entendido que más que prometer lo que pone, es un libro sobre productividad que es obligatorio leer si te interesan estos temas.

Después de ésto me gustaría practicar y aprender sobre más temas de productividad, como timeblocking, GTD, etc.

Y por último también me encantaría mejorar mi forma de comunicar. Es uno de mis puntos flacos y me gustaría solucionarlo.

Cómo me voy a organizar

Llegamos al último punto de este episodio. Ya solo queda ver cuanto tiempo voy a dedicar a cada parte y como me organizaré en ese tiempo.

Mi idea es levantarme temprano de lunes a viernes (sobre las 6:00 de la mañana). Y media hora más tarde comenzar con mi aprendizaje diario, antes de ir a natación y comenzar después mi jornada laboral.

  • Empezaría con unos 10 minutos captura de información sobre herramientas de desarrollo, cuentas de redes sociales, artículos de blog, etc.
  • Los 20 minutos siguientes serían para consumir la información capturada en Pocket, Trello, etc.
  • Después vendrían unos 10-15 minutos para desarrollar la habilidad no relacionada con la programación. Que inicialmente será «lectura rápida».
  • Luego, unos 40 minutos enfocados en desarrollar una habilidad relacionada con la programación. Por ahora, Docker como entorno de desarrollo.
  • Y para terminar, sobre 10 minutos para escribir o programar publicaciones, contestar mails y comentarios, etc.

Quiero dejar claro que toda esta planificación no es inamovible. Ésto es un planteamiento inicial. Es más, estoy seguro de que este planteamiento lo modificaré varias veces hasta que termine de adaptarlo a mí.


Bueno, pues esto ha sido todo. Y éste ha sido el primer episodio de mi nuevo podcast. Espero que no os haya parecido muy pesado. Nos vemos en la próxima parada de Ruta DEV

Enlaces de interés

  • Canal de Telegram de Ruta DEV.
  • Grupo de Telegram de Ruta DEV.
  • Pocket: software para guardar artículos y leerlos más tarde.
  • Daily: extensión de Chrome que te cambia la vista de la nueva pestaña por una sección de noticias sobre programación.
  • Plus Messenger: cliente de Telegram no oficial para Android. Te permite agrupar los chats por tipos y por categorías personalizadas.
  • Trello: software que implementa el modelo Canvan.
  • RadioDev: podcast en el que junto a Daniel Primo y José Jiménez, os presentamos herramientas para desarrolladores en episodios en solitario.
  • Recursos para WebDevs: mi primer canal de telegram donde también te presento herramientas para desarrolladores.
  • Product Hunt: web app donde puedes descubrir muchísimos tipos de productos «cazados» por los mismos usuarios.
  • Docker: proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software.

Créditos de música:

Run Amok Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/

Loopster Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/