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.
Nuestro invitado de hoy es un desarrollador de Delphi y C ++ Builder que tiene un conjunto increíblemente impresionante de fotografías de él sonriendo con indiferencia en las laderas de algunos volcanes absolutamente impresionantes en varios lugares repartidos por todo el mundo. Stephane Jordi, también conocido como Steve, es un geofísico suizo que pasó de ser un experto en informática a la informática aplicada a las necesidades de la vida real. Se especializó en soluciones de monitoreo, primero para actividades volcánicas, luego para vigilancia sísmica de plantas de energía nuclear, y disfruta portando todas las herramientas a las plataformas más conocidas.
Table of Contents
Hola Steve, muchas gracias por tomarse el tiempo para hablar con nosotros hoy. Creo que acaba de terminar un largo vuelo.
Sí, después de esto me voy a la cama. Me desperté hace 26 horas y tengo jetlag🙂
¿Qué producto (s) de Embarcadero utiliza a) con mayor frecuencia b) con regularidad?
Diría Delphi para mis desarrollos multiplataforma actuales y C ++ Builder para software científico. Dado que estoy involucrado en la adquisición de datos, necesito un acceso de muy bajo nivel a pizarras digitales y cosas por el estilo. C ++ está más inclinado a hacerlo, ya que es compatible con una amplia 3 rd entorno de herramientas de otros fabricantes.
¿Cómo y / o por qué te convertiste en desarrollador?
Un poco por casualidad. En 1980 (empecé muy temprano), compré una calculadora de mano en Nueva York y descubrí durante la noche en el vuelo de regreso a Suiza que era programable. No tenía ni idea de lo que eso significaba. La idea de permitirle grabar y reproducir secuencias de instrucciones era mágica. Era un HP-33C con 49 líneas (pulsaciones de teclas) que podían grabarse. Luego, mi escuela secundaria ofrecía clases opcionales como cocina, teatro y también informática. Ese mundo todavía estaba muy cerrado y no era accesible. Lo crea o no, pero llegué al desarrollo de software usando tarjetas perforadas haciendo Fortran IV en grandes mainframes. Me enganché.
¿Crees que alguna vez dejarás de ser desarrollador? Si es así, ¿qué sería lo siguiente?
No imposible. Una vez que consigas esto en tu ADN, solo querrás más. Me encanta todo lo que viene con el desarrollo: entender un problema o una necesidad, dividirlo en pedazos pequeños, imaginar qué y cómo realizarían las operaciones, escribir el código, maldecir mucho y, finalmente, ver que funciona. El camino desde la complejidad hasta la entrega es maravilloso.
¿Qué le hizo empezar a utilizar Delphi / C ++ Builder?
Fui contratado para un trabajo de verano por una empresa que solo tenía TurboC v2 en ese momento. Así fue como descubrí el lenguaje C y la línea de productos Borland, desde Prolog hasta C y Pascal. Luego se lanzó Delphi y realmente disfruté su aspecto RAD. Conocía a Pascal, así que fue un salto fácil. Luego utilicé todos los sabores de Turbo C / C ++, Borland C ++ y luego C ++ Builder, que fue una evolución natural para seguir a Delphi. Usé Turbo C ++ 3 para escribir mi primer software de monitoreo de volcanes en… Guatemala. Diseñé el marco completo de la GUI en modo gráfico DOS. Eso me hizo saltar a la programación orientada a objetos y mi vida como desarrollador nunca fue la misma después de eso. Fue una piedra angular.
Si pudiera darle algún consejo a un estudiante que está considerando una carrera como desarrollador de software, ¿cuál sería?
Seguir su corazón e intentarlo. Encuentre una meta, intente conseguir un proyecto que signifique algo para usted y luego el producto final que produzca será asombroso para usted. El desarrollo tiene mucho que ver con la abstracción, pero también con la imaginación. Es un proceso increíblemente creativo. Para mí, el desarrollo es arte. Cuesta mucho de su tiempo y recursos, pero el resultado, la satisfacción que obtiene, no tiene precio y es muy gratificante.
Manténgase informado de las nuevas tendencias y tecnologías. Descubra nuevas formas de escribir código como MVVM, Dependency Injection …
¿Pestañas … o espacios?
Espacios
¿Cuál es el mejor día que ha tenido como desarrollador?
El último día de mi primera estadía en Guatemala allá por 1993, donde escribí ese software de monitoreo de volcanes para mi Maestría en Ciencias. Pasé 6 semanas allí y todo fue teórico. Luego me registré para el vuelo de regreso a Europa y tuve tiempo de matar. El observatorio está al otro lado de la calle del aeropuerto y hice una última visita. 3 minutos antes de irme, sentimos un terremoto y vi a mi software reaccionar instantáneamente, mostrar la onda sísmica, analizarla y calificarla como no volcánica. Fue una validación de última hora de todo mi trabajo. Una bendición. Sabía que funcionaba y ayudaría a la gente. [ Esta es una de las validaciones más impresionantes que he escuchado sobre el poder de los desarrolladores de software para ayudar a cambiar el mundo para siempre – IanB ]
¿Qué es lo peor de ser desarrollador?
Ser perturbado por personas que no entienden que tienes que concentrarte.
¿Cuál es el consejo de desarrollo más genial que conoces?
En mi campo, multiproceso. Esencial para adquirir, analizar, clasificar y crear gráficos, todo casi en tiempo real. Pero es complicado de depurar.
¿Trabaja desde casa, trabaja desde una oficina, trabaja en un espacio abierto / compartido? Que prefieres y porque? ¿Puedes elegir?
Es agradable trabajar desde casa ya que, además de las obligaciones y los horarios familiares, a menudo puedes organizar tu tiempo para trabajar cuando quieras sin que te interrumpan. Pero podría trabajar en espacios de coworking o cafés. Cuando se sienta inspirado, deténgase en cualquier lugar, tome un café y comience a programar. No dejes que el momento se te escape.
Sin embargo, los espacios abiertos en las oficinas, de ninguna manera: solo distracciones.
Cuéntanos algo interesante que creas que quizás no sepamos.
Me invitaron al observatorio del volcán Mt St Helens y no me entendieron en el momento en que les dije que lo que vieron de mi software de monitoreo se estaba ejecutando bajo DOS y que yo creé todo, todos los medidores, tornillos, mapas, botones, etc … sin ningún tipo 3 rd marco del partido. Windows estaba en la versión 3.1 y no se veía tan bien.
Si pudieras agitar una varita mágica para “arreglar la industria de la tecnología”, ¿qué cambiarías?
Seguridad. Es probable que el mundo de hoy no sea lo suficientemente consciente de los riesgos. No solo para datos personales, sino para infraestructuras sensibles. Red eléctrica, hospitales, aviones … todo esto podría y será pirateado. Podríamos minimizar el riesgo pensando en el futuro.
¿Has estado en Silicon Valley? Si es así, ¿cómo estuvo? Si no es así, ¿alguna vez has querido hacerlo?
Sí, hice algunas visitas. Mi trabajo como geofísico e informático me llevó a algunas agencias gubernamentales en Palo Alto, San José, Menlo Park. Allí estaba hirviendo. Todavía me gustaría visitar Cupertino algún día …
He vivido durante algún tiempo un poco más al sur en Pasadena, CA, cerca de Caltech y JPL (Laboratorio de propulsión a chorro), donde también se hacen muchas cosas (misiones a Marte).
¿Alguna vez has conocido a figuras tecnológicas famosas o conocidas? ¿Quién fue? ¿Como le fue?
Esperaba encontrarme con David I la próxima semana en su casa donde visitaré a amigos, pero esta vez no funcionará debido al Día de Acción de Gracias. Tendrá unos chocolates finos suizos en otro momento.
Aunque me encantaría conocer a Philippe Kahn. Le debo mucho con las herramientas que me proporcionó. Pero se puso en contacto conmigo después de que publiqué un blog sobre mi carrera en mi sitio web donde le agradecí por Borland.
Si pudiera convencer a alguien de que considere Delphi o C ++ Builder, ¿cuál sería su método, cómo lo haría?
Para C ++ Builder sería su estricto cumplimiento de los estándares del lenguaje.
Para Delphi, la facilidad de uso si, como principiante, desea lanzarse al desarrollo de software. Ese lenguaje tiene sentido y funciona bien.
Y estoy pensando en algo parecido a lo que dijo Frank Lauter en una de tus entrevistas: ¿por qué usar lenguajes administrados o pseudocompilados (Java, C #) cuando puedes tener el lenguaje real? No utilice secuencias de comandos, compile en su lugar.
¿Qué producto tecnológico desea inventar / diseñar y por qué?
La computadora portátil Tandy TRS-80 modelo 100 que usamos mucho en la cima de los volcanes para calibrar y verificar nuestro instrumento directamente en el campo. Un cambio de vida para los científicos. Era resistente y tenía una interfaz RS232. Todo lo que necesita en el campo. Funcionó con pilas.
Si pudieras vivir tu vida de nuevo, ¿aún te convertirías en desarrollador? ¿Por qué?
Sí, sin dudarlo, me encanta. Tuve la suerte de poder usar dos sombreros al mismo tiempo. Ser capaz de escribir software para un campo que me guste. No creo que me entusiasme escribir software bancario, incluso si es útil. No me interesaba la informática por el bien de la informática. Pero la informática aplicada a algo que disfruto es maravillosa. Quiero decir, es una locura programar en la mañana y ver los resultados en la tarde cuando estamos en el campo, dentro de un cráter volcánico, por ejemplo.
Sin embargo, lo único que haría de manera diferente es no decirles a todos que soy un desarrollador. Para evitar convertirse en la línea directa de facto para todos los problemas informáticos de sus amigos y familiares.
¿Cuántos cafés tomas al día y es suficiente?
Probablemente dos o tres, pero no los necesito. Los salto a menudo, siendo más un pájaro tardío.
¿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?
Siempre me desempeñé mejor entre las 10 p. M. Y las 3 a. M. Me encanta sentirme activo cuando otros no lo están, incluso si no es muy conveniente. Pero soy una persona nocturna para el desarrollo. Siempre bromeo sobre levantarme de la cama a las 6 de la mañana pero despertarme a las 5 de la tarde.
En su carrera, ¿alguna vez ha “pasado toda la noche” para lidiar con algo que era absolutamente necesario hacer?
Si, absolutamente. No por obligación, por ilusión por terminar algo que me parece asombroso.
O queriendo realmente matar un error. ¿De qué sirve irse a la cama si todavía piensa en lo que podría hacer? No dormirás de todos modos.
Describe algunas otras cosas que has hecho en tu carrera que podrían brindar a los lectores una base sobre lo que hace a un desarrollador.
Siga aprendiendo, tenga paciencia y tenga siempre chocolate cerca de usted. Mantenerse al día con la tecnología es importante para comprender el mercado y las necesidades actuales. También comprenda las tendencias futuras. No significa seguirlos ciegamente, pero pueden definir su entorno y su trabajo.
¿Cuál es la pregunta más estúpida que te hacen (¡ninguna de estas cuenta!)
¿Cuántos días tardará? O peor aún, ¿cuántas líneas requerirá ese software? Francamente, ¿importa? ¿Está relacionado con la calidad?
¿Cotiza para trabajar con clientes? Si lo hace, sin revelar nada que lo haga sentir incómodo, ¿qué tipo de proceso utiliza?
Depende de los clientes. Normalmente tengo una tarifa plana para un proyecto. A veces trabajo por horas o por días para programas de ayuda humanitaria.
¿Cómo se puede evitar que los clientes / administradores de programas / administradores ‘se deslicen en funciones’?
Siempre pregunto contra qué característica se desarrollará la nueva. No puede tener ambos en el plazo y el presupuesto asignados si sigue agregando cosas, sacrifica otro. Primero obtengamos v1.0 y luego hablaremos de 1.1, 1.2, etc. En ese sentido, los conceptos ágiles pueden alimentar el avance de características si se usan descuidadamente, ya que permiten adaptarse a lo largo del camino.
Describe una sesión de codificación típica para ti. ¿Cómo empieza? ¿Tomas descansos? ¿Tiene algún ritual / hábito que lo acompañe?
Uso mucho papel. Escribo mucho: gráficos, organigramas, ideas, diagramas. Luego escribo y nunca me detengo.
Últimamente he descubierto que trabajar en sesiones pequeñas es muy productivo. Utilizo la técnica Pomodoro : 25 minutos de programación y 5 minutos de descanso, hago esto 4 veces y luego tomo un descanso de 15 minutos. Trate de lograr de 10 a 12 sesiones por día. [ También utilizo la Técnica Pomodoro – IanB ].
¿Escuchas música mientras codificas? Si es así, ¿puedes contarnos algunas pistas / artistas / actuaciones?
Casi nunca. Creo que es demasiada distracción. Sin embargo, algo de música es perfecta. Clásico y sigo escuchando a Peter Gabriel “Passion”. Solo música instrumental inspirada en la música africana.
Utilizo mucho “ Noisli ”, una aplicación que imita los entornos naturales que puedes configurar. Lo suficientemente bajo para no distraer pero lo suficientemente alto como para cubrir el ruido ambiental.
¿Utiliza algún método o técnica como Agile, Scrum, Kanban, TDD? Si es así, ¿por qué? Si no es así, ¿por qué?
Scrum y Kanban cuando los clientes me lo piden.
Siempre usé Kanban de forma natural, incluso antes de saber qué era: corté uno de esos cuadernos en 4 bandas horizontales. Conviértalo en horizontal para que las bandas se conviertan en columnas y pueda agregar listas de tareas pendientes a cada una de ellas, moviendo elementos. Tipo de Kanban. Ahora uso DayMap .
¿Rastrea los errores? Si es así, ¿qué recomiendas?
Si. Sé que los primeros resultados no serán correctos, pero sobre todo sé que no puedes ignorarlos ya que tarde o temprano aparecerán. Y será mejor que los arregle cuando se dé cuenta de ellos. Dentro de cinco años, no sabrá por qué su software se está comportando mal y no recordará la posible fuente.
La prueba unitaria es capital. Simplificará su vida y mejorará la calidad y estabilidad de su software.
¿Cuál es la mejor pregunta que le han hecho en una entrevista y cómo la manejó?
¿Porque nosotros? Mi respuesta: porque voy a ser libre de realizar mi trabajo para complacer a cualquiera.
¿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?
Sí, un banco quería contratarme. Todo salió muy bien. Una cosa es segura, siempre es mejor decir “No sé” en lugar de pretender saber algo totalmente nuevo para ti. Puede agregar “pero aprenderé, parece genial”. Demuestre que es abierto y no arrogante.
Un buen desarrollador de software:
Está abierto a otros y nuevas ideas.
Un mal desarrollador de software
Cree que sabe más.
iPhone, Android, otros, ¿y por qué?
iPhone para uso diario, me encanta el ecosistema.
Android para desarrollo multiplataforma.
Para un desarrollador: ¿PC vs Mac? ¿Por qué?
Mac. Para desarrollo multiplataforma.
Me gusta la apariencia de la Mac, pero paso el 90% de mi tiempo en mi Mac en una máquina virtual de Windows.
¿Qué es lo único por lo que le gustaría ser recordado?
Ese de mi software era parte de toda la cadena que salvó solo una vida.
¿Cuál es la mejor película de desarrollador / hacker / tech / geek?
Por lo general, envejecen muy rápidamente. Pero amaba War Games en ese momento. Ya no hoy además de la nostalgia. Fue una de las primeras películas tecnológicas.
Ningún desarrollador debería verse sin:
Un cuaderno, un bolígrafo y chocolate.
Si se hiciera una película sobre tu vida, ¿quién te gustaría que te interpretara?
Alguien totalmente anónimo.
¿Tiene un libro, producto o servicio que le gustaría mencionar?
El que cambió mi vida: Programación Orientada a Objetos usando Turbo C ++ de Robert Lafore .
Como dije, permanezca abierto. Siempre puedes aprender. Agregaría la mayoría de los webinars de David I. , Nick Hodges o Malcolm Groves . Bastante famoso en el mundo de Delphi / C ++ Builder. Pero aprendí mucho de ellos. Incluso después de haber sido desarrollador durante tantos años.
¿Tiene un sitio web que la gente pueda visitar? Si es así, ¿cuál es?
Sí, www.tiltsoft.com para el lado profesional, www.sjordi.com para el personal.
Si usa Twitter, ¿cuál es su nombre de usuario de Twitter?
¿Cuál es su método preferido de contacto con los clientes potenciales?
Correo electrónico. Esto no es invasivo y no se preocupa por las zonas horarias. Viajo mucho.
Gracias por participar, Steve, ¡algunos excelentes consejos también! Realmente me cautivó lo que dijo de su experiencia en Guatemala; escribir código que puede impactar vidas, positiva o negativamente, es a menudo una parte pasada por alto de lo que significa ser un desarrollador. Puede leer más sobre las experiencias de Steve en Guatemala aquí: https://www.tiltsoft.com/goblog.php?post=from-fortran-to-the-world
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition