Hola. Este artículo es parte de una serie en la que hablamos con desarrolladores de software profesionales, les preguntamos cómo es escribir código para ganarse la vida y quizás obtengamos algunos conocimientos sobre la industria del desarrollo de software en el camino.
Hoy nos dirigimos al país simplemente hermoso de Dinamarca para hablar con el MVP de Embarcadero, Glenn Dufke. A menudo se puede encontrar a Glenn desafiando sin temor las ideas preconcebidas que la gente tiene sobre Delphi al exponer los beneficios del idioma y la forma en que puede resolver los problemas de todos. Si yo mismo no fuera un campeón de Delphi, creo que Glenn podría cambiar de opinión sin ayuda y hacerme codificar con eso. Te encontrarás con Glenn en varios eventos en línea como TCoffeeAndCode , así como en foros de seguridad de información y una impresionante variedad de otras ubicaciones.
Table of Contents
Glenn, gracias por participar en las entrevistas. 😊
Gracias por invitarme. He estado sobrecargado de trabajo, ¡lo siento, me tomó un tiempo!
¿Cuál sería su breve resumen de noticias de la noche sobre quién es usted y qué hace?
Dirijo mi propia empresa de consultoría, GlennKonnekt, donde presto servicios en el ámbito del desarrollo de software, diseño de electrónica para soluciones integradas y automatización industrial.
¿Qué producto (s) de Embarcadero utiliza a) con mayor frecuencia b) con regularidad?
Delphi es lo que más utilizo durante el día para las cosas en las que estoy trabajando.
¿Cómo y / o por qué te convertiste en desarrollador?
Además de escribir software, también diseño componentes electrónicos para configuraciones de automatización industrial e integradas. Quería saber cómo hacer que las cosas “funcionen” al poder escribir el software también.
Los desafíos son divertidos y hay muchas cosas en las que pensar, además de conocer la parte del hardware y el software hace que sea más fácil tener en cuenta los detalles que marcan la diferencia al final.
¿Crees que alguna vez dejarás de ser desarrollador? Si es así, ¿qué sería lo siguiente?
No, no lo creo. es un campo en constante cambio y suceden muchas cosas constantemente. Sin embargo, si tuviera que cambiar a otra cosa, probablemente comenzaría un pequeño local de hamburguesas, sirviendo las mejores hamburguesas caseras que pueda conseguir.
¿Qué le hizo empezar a utilizar Delphi / C ++ Builder?
Fue una especie de coincidencia. Cuando entré inicialmente en un poco de programación, antes de tener una comprensión mucho más clara de lo que se trataba, sucedió en el Commodore 64 con BASIC (en realidad, Microsoft BASIC 2.0 con licencia de Commodore) cuando tenía alrededor de 7 años. Alrededor de las 9, probé HiSoft Pascal en el Amiga 500 que heredé de mi abuelo. Aún así, no llegué muy lejos ya que no tenía manuales ni nada que me guiara.
Cuando crecí un poco, alrededor de los 11, estaba tan intrigado por lo que hacía que una PC funcionara y cómo el software entraba en la máquina para hacerlo funcionar. Afortunadamente, uno de los amigos de mi hermano acababa de graduarse de un programa de informática en el que se les enseñó Delphi (alrededor de 2001) y me consiguió una copia de la versión de prueba de Delphi 6, poco después de que me regalaran una copia de Delphi 7 Enterprise. Como no teníamos Internet en casa en ese momento (56k eran comunes, ISDN para aquellos que podían pagar y ADSL estaba llegando al mercado pero era caro), me quedé atrapado con el archivo de ayuda que más me enseñó. También logré encontrar un par de libros, incluido Mastering Delphi 7 de Marco Cantú .
En el medio, también estaba mirando C / C ++ porque me dijeron “Eso es lo que usan los programadores reales”, pero no se computaba en mi cerebro. Hoy en día no me resulta difícil utilizar otros lenguajes, pero Object Pascal es el más limpio, el más expresivo de todos y el que utilizo por defecto siempre que puedo. Afortunadamente, C ++ Builder hace que sea más fácil escribir o consumir bibliotecas C ++ en comparación con otros entornos y plataformas.
Si pudiera darle algún consejo a un estudiante que está considerando una carrera como desarrollador de software, ¿cuál sería?
Obtenga una copia de la última versión de Delphi y uno de los libros recientes sobre Delphi . Delphi es una herramienta invaluable que enseña buenos hábitos de programación.
¿Pestañas … o espacios?
Si hablamos de domesticar serpientes , son pestañas. Para Object Pascal también uso pestañas, sin embargo, es más por el formato y la coherencia, ya que al compilador no le importa. Dicho esto, me importa cómo se ve y se presenta mi código. Para mí, el código es arte en sí mismo y hasta cierto punto refleja la mentalidad de un desarrollador.
¿Cuál es el mejor día que ha tenido como desarrollador?
Al ver el código en el que ha estado trabajando durante meses, se combina bien y funciona según lo previsto. Por supuesto, no está libre de errores, pero son lo suficientemente rápidos para solucionarlos.
¿Qué es lo peor de ser desarrollador?
Cuando las cosas no funcionan o hay contratiempos por falta de información sobre una tarea determinada.
¿Cuál es el consejo de desarrollo más genial que conoces?
Utilice máquinas virtuales para todo y no abarrote su cerebro con las bibliotecas de [código], los lenguajes y las pilas de tecnología más recientes. Cíñete a unos pocos, como Delphi, y conviértete en excelente: enseña y comparte conocimientos, ahí es donde empiezas a crecer. Disponga de una buena solución de copia de seguridad NAS que pueda realizar instantáneas automáticas, como TrueNAS con el sistema de archivos ZFS
¿Trabaja desde casa, trabaja desde una oficina, trabaja en un espacio abierto / compartido? Que prefieres y porque? ¿Puedes elegir?
Tengo mi propia pequeña oficina para mí. Prefiero este estilo pero hay momentos en los que también me gusta trabajar en una oficina compartida con un equipo pequeño.
Cuéntanos algo interesante que creas que quizás no sepamos.
Soy una gran persona de los gatos y el inspector de mi oficina, César, a menudo viene para abrazarme. Es un rescatado del refugio local. Pasé muchas noches en mi adolescencia aplicando ingeniería inversa [en lenguaje ensamblador] a mis aplicaciones compiladas que escribí, para comprender mejor lo que estaba pasando. Eso también es algo que me interesó en cómo funcionan los compiladores y actualmente estoy trabajando en mi propio compilador de investigación.
Si pudieras agitar una varita mágica para “arreglar la industria tecnológica”, ¿qué cambiarías?
Asegurarse de que ElectronJS y todo lo relacionado con JavaScript, nodejs y Rust solo fuera una nota a pie de página en la historia. Por descarado que parezca, estas tecnologías contribuyen a los problemas de seguridad y se acumulan en el vertedero tecnológico a un ritmo alarmante, en lugar de aumentar la calidad del software, está disminuyendo.
¿Has estado en Silicon Valley? Si es así, ¿cómo estuvo? Si no es así, ¿alguna vez has querido hacerlo?
No lo he hecho, desafortunadamente. Lo más cerca que he estado de Silicon Valley es el aeropuerto de San Francisco. Por supuesto que sería interesante visitarlo, al menos una vez, pero no estoy tan entusiasmado con Silicon Valley como antes. Creo que hay otras áreas en los EE. UU. Que son mucho más interesantes desde el punto de vista tecnológico.
¿Alguna vez has conocido a figuras tecnológicas famosas o conocidas? ¿Quién fue? ¿Como le fue?
He conocido a varias figuras de la comunidad de Delphi / C ++ Builder, emprendedores con múltiples salidas y millones en su haber. Al final del día, son humanos y me acerco a ellos así con amabilidad y respeto. De las personas que me encantaría conocer es, por supuesto, Elon Musk y, como compañero danés, conoceré a Anders Hejlsberg algún día.
Si pudiera convencer a alguien de que considere Delphi o C ++ Builder, ¿cuál sería su método, cómo lo haría?
¿Quiere escribir un buen código que sea fácil de leer y al mismo tiempo pueda reutilizar el código en todas las plataformas? Entonces Delphi es la [herramienta para] ir a.
¿Qué producto tecnológico desea inventar / diseñar y por qué?
JavaScript – Pero probablemente lo hubiera nombrado de otra manera y si lo hubiera diseñado, el mundo de los desarrolladores no habría sufrido de la forma en que lo hacen ahora. Actualmente es uno de los lenguajes de scripting más usados (y abusados) para desarrollar cosas avanzadas en el navegador y algunos piensan que pertenece al escritorio y al móvil en forma de aplicaciones “nativas”, algo que está totalmente equivocado en mi opinión.
El mal diseño del lenguaje en primer lugar no habría existido si la sintaxis se basara en un subconjunto de Object Pascal y hubiera facilitado muchísimo la escritura de aplicaciones para el navegador.
La web y los navegadores no pueden evolucionar mucho más antes de que nos deshagamos de JavaScript tan rígido y contrario a la intuición como suena. Google intentó un poco con el lenguaje Dart, pero también sufre de malas elecciones de diseño y una sintaxis desgarradora (¿Por qué no se dan cuenta de que los lenguajes de llaves y la sensibilidad a mayúsculas y minúsculas son malos?). TypeScript es una solución temporal para algo que ya está roto, lo mismo ocurre con WebAssembly, aunque al menos podemos escribir un compilador wasm y usar Object Pascal como nuestro lenguaje de elección para escribir un mejor código y aún ejecutarlo en el navegador. Dicho esto, WebAssembly es todavía relativamente joven.
Si pudieras volver a vivir tu vida, ¿te convertirías en desarrollador? ¿Por qué?
Siempre es difícil responder a este tipo de preguntas, ya que siempre llevará algún reflejo del ahora. Probablemente lo haría, sí. Tengo demasiadas ideas en la cabeza.
¿Cuántos cafés bebes al día y es suficiente?
Demasiado. No es raro que beba al menos una olla, tal vez dos. Soy un conocedor del café, agradezco una buena taza de café y es mi combustible el que se convierte en código.
¿Eres un halcón nocturno que codifica hasta altas horas de la noche, una persona matutina que se levanta temprano y de inmediato o sigues algún tipo de horario regular de oficina?
Prefiero trabajar por la tarde y por la noche en la mayor parte de los casos. Hay paz y tranquilidad y puedo pensar en buenas soluciones. Intento mantener un horario regular durante el día.
En su carrera, ¿alguna vez ha “pasado toda la noche” para lidiar con algo que era absolutamente necesario hacer?
Lo hice, un par de veces. A veces, es necesario entregar soluciones críticas en el tiempo o es necesario eliminar una afluencia de ideas. Sin embargo, trato de evitar las noches de toda la noche.
¿Cuál es la pregunta más estúpida que te hacen (¡ninguna de estas cuenta!)
¿Conoce X o Y? Y la persona ha mirado mi currículum antes donde estaba en la lista.
¿Cotiza para trabajar con clientes? Si lo hace, sin revelar nada que lo haga sentir incómodo, ¿qué tipo de proceso utiliza?
Prefiero trabajar por horas. A veces sucede que los clientes piden cotizaciones, pero trato de ser muy detallado sobre el alcance de mi trabajo en ese caso.
¿Cómo se evita que los clientes / gerentes de programas / gerentes ‘se deslicen en funciones’?
Diré que necesitamos esta versión antes de que podamos comenzar a trabajar en más funciones. ¿Qué es lo esencial para sacarlo y ser específico?
¿Escuchas música mientras codificas? Si es así, ¿puedes contarnos algunas pistas / artistas / actuaciones?
Tengo una amplia lista de pistas seleccionadas que escucho cuando codifico. Desde chiptunes de mi propia colección, temas modernos de Lukhash hasta drum and bass líquidos de Metrik, London Elektricity, Wilkinson, Grafix, Seba, Netsky, Logistics, High Contrast, Degs, Pendulum, State of Mind, Apex .. Por favor, deténgame , ¡Puedo seguir por siempre! La belleza de la música en general, activa ciertas áreas en tu cerebro dependiendo de lo que quieras lograr.
¿Utiliza algún método o técnica como Agile, Scrum, Kanban, TDD? Si es así, ¿por qué? Si no es así, ¿por qué?
Un poco de Kanban y más TDD, como ha enseñado Jens Fudge
¿Rastrea los errores? Si es así, ¿qué recomiendas?
¡Sí definitivamente! ¡Y animo a todos a que lo hagan!
Utilizo varios sistemas, desde Jira, Github Issue tracker, Gitlab Issue tracker, Bitbucket Issue tracker. Creo que es importante, especialmente cuando a veces se reintroducen errores.
Ha sucedido más de una vez en algunos de los pequeños equipos en los que he trabajado. Los sistemas de control de código fuente como git, mercurial o subversion son clave junto con un sistema de seguimiento de problemas.
¿Alguna vez ha tenido una entrevista técnica que fue súper fluida? Si es así, ¿cuál es su consejo para los demás? Si ha tenido una entrevista desastrosa, ¿qué salió mal? ¿Necesita un abrazo?
Solo sé tu mismo.
Un buen desarrollador de software:
Comparte sus conocimientos: la enseñanza es la clave para hacer crecer y fomentar una comunidad.
Un mal desarrollador de software:
Tiende a hacer todo por sí mismos y no comparte sus conocimientos
iPhone, Android, otros, ¿y por qué?
Tengo ambos, aunque prefiero Android. Bueno, eso técnicamente no es cierto, ya que estoy incursionando con postmarketOS, una distribución de Linux completa para dispositivos móviles.
Para un desarrollador: ¿PC vs Mac? ¿Por qué?
ORDENADOR PERSONAL; Necesito algo que pueda ampliar y mantener yo mismo: las Mac son PC con un precio excesivo en un caparazón diferente.
¿Qué es lo único por lo que le gustaría ser recordado?
Traer a Delphi de vuelta al top 3 de lenguajes y entornos de desarrollo respetados 😊
¿Cuál es la mejor película de desarrollador / hacker / tecnología / geek?
Tengo varios favoritos en esta categoría: Hackers de 1995, Operation Takedown, Antitrust, The Matrix, The Lawnmower Man, Wargames, Tron Legacy, Johnny Mnemonic.
Ningún desarrollador debería verse sin:
Una copia de Delphi
Si se hiciera una película sobre tu vida, ¿quién te gustaría que te interpretara?
Jonny Lee Miller
¿Tiene un sitio web que la gente pueda visitar? Si es así, ¿cuál es?
Blog: https://code-kungfu.com
Sitio de la empresa: https://gkon.dk
Si usa Twitter, ¿cuál es su nombre de usuario de Twitter?
@ B1tSmurf
¿Cuál es su método preferido de contacto con los clientes potenciales?
Envíe un correo electrónico, luego programe una reunión en línea o en persona. Prefiero que la gente se comunique primero con algún tipo de texto.