Aviso de cookies

Estoy de acuerdo Este sitio web guarda pequeños fragmentos de información (cookies) en su dispositivo con la finalidad de ofrecer un mejor contenido y para finalidades estadísticas. Usted puede desactivar el uso de cookies modificando la configuración de su navegador. Navegar por nuestro sitio web sin cambiar la configuración del navegador hace que usted nos esté autorizando a guardar esta información en su dispositivo.

Entrevista en Diferido 01: Daniel Primo

13 de Enero de 2019 a las 16:36| entrevista

Cada entrevista que finalice una entrevista en el canal de Telegram de Entrevista En Diferido, https://t.me/entrevistaendiferido, la convertiré a un post en mi blog. 

Comenzamos con la primera entrevista a Daniel Primo, desarrollador web, podcaster con Web Reactiva y otros proyectos.

EntrevistaEnDiferido Hoy empezamos una entrevista a Daniel Primo desarrollador web freelance, podcaster, youtuber,emprendedor y compañero del podcast RadioDev. Buenas Daniel,la primera pregunta sería una pequeña presentación por parte del entrevistado para que los lectores puedan conocerte un poco.

¿Te podrías presentar en unas líneas?

Daniel Gracias @EntrevistaenDiferido por invitarme y estrenar este formato. Soy programador web freelance, es mi principal ocupación, si bien es cierto que la faceta de podcaster cada vez ocupa más tiempo en mi vida. Llevo más de 15 años dedicado a la construcción de páginas y aplicaciones web, principalmente con PHP, pero cada día diversifico un poco más mis conocimientos y habilidades. Vivo en Valladolid (España), así que la entrevista la vamos a hacer, estos días de Enero, a varios grados bajo cero. No todo es estar delante del ordenador, soy aficionado a la gastronomía y a la buena música, aunque confieso públicamente que "procrastino" visitando proyectos de GitHub sin mesura.

 

EED Para empezar, una pocas preguntas cortas para conocer tu entorno de trabajo. ¿Ordenador y sistema operativo? ¿Lenguaje de programación? ¿Utilizas algún framework? ¿Cuál? ¿Editor de código o IDE? ¿Cuál?

Daniel Desde hace años confío en los dispositivos Apple. Son los más fiables con los que he trabajado. Mi iMac de 27 pulgadas sigue funcionando casi como el primer día, en 2010. En los servidores siempre tengo Linux, bien sea Debian, Ubuntu o CentOS, porque muchas veces no me dejan elegir.

El lenguaje de programación de base es PHP, pero también me siento cómodo con JavaScript. Por supuesto este 2018 metí un empujón a Python y estoy francamente contento. Creo que me abrirá más puertas y podré poner en práctica todo lo que he aprendido estos años de desarrollo y programación web.

He utilizado durante muchos años Drupal. Pero desde hace tiempo navego por otras aguas, intentando modelar los proyectos desde un punto de vista más a la medida. Laravel y Slim para PHP han sido mis últimos aliados. Disfruto trabajando con Vue para JavaScript y estoy empezando con Django en Python. Pero siempre con la premisa de comprender lo mejor posible lo que se esconde en las bases de cada lenguaje de programación.

Utilizo hasta 3 editores. Sublime Text para las cosas rápidas, PHPStorm como IDE para los proyectos grandes y Visual Studio Code para todo lo demás. Es el más versátil y el que más me ayuda a seguir mejorando. En todos intento siempre manejarme todo lo posible con combinaciones de teclado. Tengo pendiente progresar en mis conocimientos sobre Vim, todo se andará.

EED Llevas muchos años en el mundo del desarrollo web y has aprendido a utilizar varios lenguajes, librerías y framework. Desde tu propia experiencia. ¿Cuál crees que es la mejor forma de aprender a programar?

Daniel Esta es una gran pregunta y daría para completar una enciclopedia. Cada uno de nosotros tenemos nuestro propio método o estamos buscándolo, esto serían las bases del mío:

La primera es que hay que practicar. Está bien leer e imitar lo que otros programan, pero hay que enfrentarse constantemente a poner tu propia idea o funcionalidad en marcha dentro del marco de la guía de aprendizaje que estás siguiendo. Por ejemplo, si estás aprendiendo a definir variables, aparte de las que te sugiere el manual, intenta crear variables con símbolos raros, nombres largos o valores inverosímiles. Y a ver que pasa.

La *segunda** es que hay que tener un "entregable" siempre en mente. Algo que consideres es el trabajo final, un proyecto que quieres construir. De pequeño me gustaban los recortables, cortabas por las lineas, doblabas el papel por las guías y pegabas los elementos para construir la torre Eiffel. En la programación no hay ninguno de esos límites y la "gracia" está en descubrir tus propias guías, líneas y pegamento para tener un producto final.

La tercera y última es compartir lo que has hecho. Gritar a los cuatro vientos: "¡Hola! ¡Esto es lo que soy capaz de hacer!". Publicando el código en abierto, escribiendo un manual sobre cómo lo has construido... Te ayudará a aprender, porque cuando enseñas, nunca quieres hacerlo mal.

Y por supuesto, leer mucho de buenas prácticas de programación, pero eso ya es otro capítulo.

 

EED Yo te he conocido como programador web en PHP y has comentado que es tu lenguaje base. Me gustaría conocer más tu opinión sobre PHP.

¿Qué añadirías a PHP? ¿Qué mejorarías de PHP? ¿Qué eliminarías de PHP?

Daniel Le añadiría tipado de datos como algo opcional, pero no como rareza. Incluiría un vínculo con la programación funcional más consistente.

Mejoraría la velocidad, aunque ya lo haya hecho en épocas anteriores. También creo que merece un trabajo de marketing para que no sea considerado un lenguaje "malo".

Eliminaría algunas incoherencias en nombres de funciones o en el orden de los argumentos, aunque esto ya se ha solucionado en parte en las nuevas versiones.

 

EED En el desarrollo web no todo es escribir código con un IDE o editor en tu lenguaje favorito, hay otras herramientas que no escriben código pero facilitan el trabajo de un programador, no son obligatorias en el proceso de desarrollo, pero su uso permite ser mas eficiente y generar un código de mas calidad.

¿Qué tipo de herramientas de ese tipo aconsejarías que debe aprender un desarrollador web?

Daniel De momento no han inventado el editor que programe solo, así que nos vamos a tener que conformar con algunas otras. Hablamos mucho sobre estas herramientas en @RadioDev o en @webreactiva pero ahí va la lista de algunas, aunque seguro que me dejo alguna:

  • Git, sistema de control de versiones. Si no tienes esto en tu día a día es como comer sopa con la mano.

  • iTerm2 y Oh My Zsh, consola con superpoderes para macOS.

  • Atajos de teclado, cada vez los uso más y me permite ser más eficiente.

  • Postman, para hacer test y pruebas sobre API's de forma independiente. Cada vez es más frecuente tener que trabajar sobre sistemas remotos que nos dan una respuesta después de una petición.

  • Sonarqube, mide la calidad de tu código. No lo utilizo a diario, pero a veces es bueno ponerlo en marcha para que te de un buen "repasito" a tu trabajo.

  • Webpack, Laravel Mix y ESLint, para proyectos de frontend JavaScript. Pone orden en lo que estás haciendo.

  • The Silver Searcher (https://github.com/ggreer/the_silver_searcher), mejora notablemente las opciones de búsqueda desde la consola.

EED En la programación se debe estar constantemente aprendiendo y/o actualizando conocimientos, hay muchas tipos de recursos disponibles, como libros,cursos,tutoriales,artículos,videos..etc.

¿Qué tres recursos recomiendas para aprender o mejorar tu conocimiento en programación?

Daniel

  • Perderse en los repositorios de GitHub. Revisar el código, descargarlo, probarlo, tocarlo. Si quieres ir más allá, subir tu propio código o participar en proyectos de otros.

  • Laracasts de Jeffrey Way. Un sitio donde teóricamente se aprende a programar en Laravel (PHP), pero donde realmente aprenderás buenas prácticas, trucos y un montón de cosas de la mano de Jeffrey.

  • Si tienes acceso a un grupo local en tu pueblo o ciudad donde se reúnan programadores, pásate por allí (busca en Meetup). Si participas en katas de programación, hackathones o programación en pareja (aunque sea de modo remoto) aprenderás siempre.

EED ¿Qué librería, lenguaje o framework recomendarías aprender en el 2019?

Daniel Mis mejores deseos están con Python. Creo que es un lenguaje de programación versátil, potente, sencillo y que nos deparará muchas alegrías en próximos años.

Dentro de Python, aunque mi pasión sea el desarrollo web, si creo que hay que intentar dirigir los pasos a la ciencia de datos (data science) o el aprendizaje automático (machine learning), pero sin volvernos locos. Para estas materias también hay que conocer aspectos matemáticos en profundidad, pero siempre nos aportará valor para nuestro desarrollo profesional. TensorFlow, Pandas, PyBrain son solo algunos de los nombres relacionados con estos temas.

Por último todo lo que tenga que ver con una web más duradera y sostenible, como por ejemplo, los sitios generados con herramientas como Gatsby o Hugo.

EED Tienes mucha experiencia en Drupal , has desarrollado muchas soluciones en ese CMS y en tu podcast has hablado de él varias veces. Como has comentado en tu podcast, Drupal tiene un ámbito de uso diferente a WordPress o Joomla. Para tenerlo mas claro , en tu opinión.

¿En que tipo de proyecto acconsejas su uso? ¿Y en cuales no?

Daniel En todos y en ninguno. Toma respuesta 😜

Bromas aparte aconsejo el uso de Drupal en todo proyecto donde se considere que es muy importante algunos de estos puntos:

  • No se puede contar con programación a medida o desde cero para todo el proyecto, bien sea por presupuesto o por limitaciones de tiempo.

  • La interfaz de gestión de usuario es una parte relevante.

  • Algunos usuarios tendrán roles superiores, donde se les permitirá gestionar permisos, usuarios, pedidos, contenido.

  • Es una web multidioma.

  • Es una web multisite o multidominio. Para entendernos, que hay una versión diferente por empresa o por país alojado en un subdominio principal.

  • Va a exponerse el contenido o la estructura para aplicaciones de terceros a partir de una API.

  • Se preveé una gran funcionalidad dependiente entre sí (aunque esto tiene muchos matices).

  • Se tiene experiencia previa con Drupal.

No recomiendo tanto el uso de Drupal cuando se combinan ciertos factores:

  • Si el proyecto web es un blog o una pagina estática.

  • Si los procesos que se van a ejecutar en la web son muy específicos.

  • Si te gusta mucho programar a medida o controlando la programación a un nivel más bajo que el que ofrecen este tipo de frameworks.

  • Si no se tiene experiencia previa con CMS o plataformas de alto nivel en general.

EED

Si tuvieras que escoger entre backend y frontend, desde el punto de vista de tu carrera profesional ¿Cuál crees que es mejor aprender?

Daniel Cualquiera de las dos es buena opción. Ambas tienen una carga de trabajo grande, y están muy solicitadas. La parte de frontend siempre es más bonita, porque tienes un resultado que casi se puede tocar: estilos, animaciones, efectos, interacción con el usuario. El backend es mucho más serio en apariencia, con lógica de programación y persistencia.

En un mundo ideal conocer los dos te da un espectro más amplio de la ejecución de proyectos de software. Sabrás cuáles son los problemas del frontend cuando trabajes en backend y viceversa. Eso es un plus y a mi me gustaría llegar a ese nivel.

EED Llevas bastante tiempo trabajando de desarrollador web, has trabajado tanto por cuenta ajena como (en el presente) de autónomo. Si tuvieras una máquina del tiempo y volvieras a tus comienzos de desarrollador, conociendo lo que te ha deparado el futuro. ¿Qué hubieras cambiado?

Daniel Lo tengo bastante claro, hubiera empezado antes.

Así habría atesorado más experiencia y más conocimientos.

Una visión global para centrarse en lo específico es por lo que lucho ahora. Otra de las cosas que cambiaría sería el haberme centrado tanto en un nicho muy concreto por un tiempo muy largo. Siempre he defendido la necesidad de dominar una técnica pero conocer al menos un poquito cuantas más mejor.

Y por último me hubiera gustado ser cinturón negro de judo, pero me quedé tirado en el tatami demasiado pronto. No es metafórico, es tan cierto como duro está el suelo.

EED Eres la primera persona que participa en una entrevista en el canal, y yo estoy aprendiendo a realizar entrevistas. Como última pregunta y que me sirva en mi aprendizaje para mejorar en futuras entrevistas.

¿Qué te hubiera gustado que te preguntase? Evidentemente debes responder a la pregunta que escribas.

Daniel Dices que es la pregunta fácil, ¿no? Esto es como pedir el tercer deseo al genio de la lámpara cuando sabes que ya no te van a quedar más. ¿Qué pides?

Has hecho un recorrido muy interesante por aspectos técnicos y profesionales. Quizás una pregunta que entrelazara estos mundos con aspectos más personales. Algo así como, "¿cómo es el día a día a de un programador?". O también, "¿cómo compaginas el teletrabajo con tu vida diaria?"

Porque existen varios mitos alrededor de los que trabajamos con el ordenador y somos autónomos (freelance). Uno de ellos es que siempre estamos tomando una taza de café (o de lo que sea) mientras estamos sentados en el suelo, en la cama o en la terraza y haciendo click a un botón para completar la tarea.

Sé que algunos estaréis horrorizados con la respuesta pero no, no es así. Puedes elegir las vistas y lo que hay dentro de la taza, pero muchas veces no ves ni las olas y otras se te enfría el café.

En este trabajo hay momentos duros, de soledad, donde no puedes compartir tus dificultades con nadie. También cometemos el error de dejarnos absorber tanto por cuestiones laborales que descuidamos la familia, los amigos o la salud.

Así que sí, hay que conservar buenos hábitos y perseverar con ellos: dormir bien, hacer ejercicio, socializar y apuntarse a talleres de punto o creación literaria.

EED El último día de la entrevista no hay pregunta, simplemente es la despedida y promoción.

Primero me gustaría agradecerte la participación y apoyo a este proyecto, me has servido como "conejillo de indias" para pulir el formato . Pero antes de la despedida , me gustaría que me recomendaras a alguíen que tú creas que le puede interesar participar como entrevistado.

También me gustaria que comentaras donde podemos seguirte y si quieres promocionar cualquier evento, proyecto ,podcast, canal... Puedes utilizar ahora este canal para ese fin.

Muchas gracias por todo.

Daniel Gracias a ti por brindarme la oportunidad de estrenar el formato. Me ha gustado la experiencia, esperando con ganas la siguiente pregunta, a ver si me ponías más contra las cuerdas.

Me gustaría que entrevistaras a Marco Bellido (marcoocram en twitter). También es programador web, especialista en Docker, PHP y JavaScript y con una visión de negocio y desarrollo interesante y poco habitual.

Para saber que hago, a qué me dedico y qué publico, es fácil, a partir de https://www.danielprimo.io podéis encontrar todo lo que hago en la red y como contactar conmigo.

Os recomiendo mi podcast, Web Reactiva, con temas sobre programación y tecnología cada martes. Tiene su propio canal en telegram @webreactiva, twitter https://twitter.com/webreactiva o encontrarme en la web https://www.danielprimo.io/podcast

También un newsletter semanal gratuito, cada domingo en la bandeja de entrada tendréis una colección de recursos o una reflexión sobre desarrollo, programación, tecnología y negocio online. https://www.danielprimo.io/newsletter

Si os chifla todo esto aún hay más. Podéis escucharme cada lunes en @fenomenomutante , el podcast sobre negocios mutantes en el que soy el 50% racional junto al otro 50% emocional que es mi colega Óscar Martín.

Al reloj de algo GRANDE le quedan pocos minutos. Se está cocinando una gran novedad. Suscribiros a cualquiera de estos medios y estaréis enterados de que es lo que estoy preparando.

¡Gracias por estar por aquí y espero que os haya gustado! ¡Hasta la próxima!

 

Generar PDF de Entrevista en Diferido 01: Daniel Primo