Ícono del sitio Embarcadero RAD Studio, Delphi, & C++Builder Blogs

¿Qué se siente al ser un desarrollador Dalija Prasnikar?

smartmockups kthovtu2

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.

En nuestra silla de entrevistas hoy tenemos a la simplemente maravillosa Dalija Prasnikar. Dalija tiene su sede en la maravillosa e histórica ciudad de Zageb en Croacia. Escuchará más en un momento sobre los antecedentes de desarrollo de Dalija, pero también es una fotógrafa consumada y una autora respetada de algunos grandes libros de codificación. Puede decir que es una codificadora adecuada: ¡es la única hasta ahora que ha devuelto sus respuestas usando MarkDown !

Table of Contents

Dalija, ¡gracias por aceptar participar en las entrevistas!

Gracias 🙂

¿Cuál sería su breve resumen de noticias de la noche sobre quién es usted y qué hace?

Desarrollador de software, consultor, autor de libros, Embarcadero MVP. Bloqueando el software de otras personas y escribiendo el mío desde el ’85.

¿Qué producto (s) de Embarcadero utiliza a) con mayor frecuencia b) con regularidad?

Delphi, por supuesto.

¿Cómo y / o por qué te convertiste en desarrollador?

Cuando era niño, quería ser astronauta. Realmente me gustaba el espacio, la astronomía, la ciencia … y todo lo relacionado con ellos. Cuando tenía unos nueve años, la primera serie de ciencia ficción que recuerdo haber visto fue Blake’s 7 . Y mi personaje favorito era Kerr Avon. Un genio informático muy inteligente, sarcástico. Al comienzo de la serie, dijo “Quién controla la computadora, controla la nave”, y este fue el momento crucial en el que “Quiero ser astronauta” se convirtió en “Quiero controlar las computadoras”.

Por supuesto, en la vida real, ser desarrollador y saber lo que sé ahora, controlar las computadoras y la nave es realmente una ilusión. Más a menudo es al revés. Es también por eso que nunca confío plenamente en nada relacionado con la tecnología.

¿Crees que alguna vez dejarás de ser desarrollador? Si es así, ¿qué sería lo siguiente?

Probablemente podría ser un granjero … pero sería un granjero que escribe código como pasatiempo. [¡ Yo también! Ambos deberíamos hablar con su colega desarrollador Alister Christie – él vive en un bloque de estilo de vida – IanB]

¿Qué le hizo empezar a utilizar Delphi / C ++ Builder?

Aprendí Turbo Pascal en la escuela secundaria y rápidamente se convirtió en mi idioma favorito. Podía hacer todo lo que podía hacer C, y era mucho más rápido, no solo para escribir código, sino también para compilar.

Comencé mi carrera como periodista de TI en BYTE Croacia (un licenciatario de McGraw-Hill) y editor de la revista MIPS Computer. Con el auge de Internet y la publicación en línea en los años 90, pasé al desarrollo web. Estaba usando Java y JavaScript antes de comenzar a usar Delphi. Viniendo de Turbo Pascal, que también había estado usando todo el tiempo para escribir varias utilidades y generadores de páginas web, Delphi era una elección natural para desarrollar aplicaciones de Windows.

Dalija, in full-on MVP mode!

¿En que estas trabajando actualmente?

Como saben, ya he escrito dos libros de Delphi: Delphi Memory Management y Delphi Event-based and Asynchronous Programming.

Me gusta escribir libros. Es una oportunidad para compartir conocimientos, pero también una oportunidad para aprender. No importa cuánto sepa sobre algún tema, siempre hay algunos rincones oscuros sobre los que necesita arrojar algo de luz para poder explicarlo adecuadamente a los demás.

Después de escribir el segundo, fue bastante fácil cambiar a quinta, así que estoy escribiendo más libros de Delphi. Todavía no tengo más detalles para compartir.
Pero sí, hay nuevos libros de Delphi en el horizonte.

¿Qué lenguaje de programación recomendarías aprender primero?

inglés 🙂

Si pudiera darle algún consejo a un estudiante que está considerando una carrera como desarrollador de software, ¿cuál sería?

Empiece a aprender leyendo libros. Primero, aprenda sobre conceptos y algoritmos. Los idiomas son secundarios. Todos están limitados por su implementación, y el aprendizaje de conceptos a través de un idioma comúnmente conduce a malentendidos. Debido a que diferentes lenguajes implementan los mismos conceptos de diferentes maneras, los patrones de codificación que se usan normalmente en un idioma no necesariamente funcionan bien en otro.

No dejes que las reglas te gobiernen. Las buenas prácticas y las reglas son más pautas que reglas codificadas. Están destinados a ayudar a los desarrolladores a realizar tareas comunes. En el momento en que una regla se convierte en una carga, debe dejar de aplicarla. Sin embargo, esta es una espada de doble filo, y la gente lo interpreta con bastante frecuencia como un permiso para romper las reglas en todas partes porque no comprenden completamente el razonamiento detrás de una regla en particular. Además, con el tiempo, las reglas y las prácticas evolucionan, por una razón u otra, y lo que alguna vez fue una buena práctica podría dejar de serlo.

El popular libro de Dalija “Programación asincrónica y basada en eventos” se puede pedir aquí: https://dalija.prasnikar.info/delphiebap/index.html

El código simple es mejor que el código inteligente. Si no puede lograr algo con un código simple, entonces, y solo entonces, puede aplicar trucos ingeniosos. Es importante anotar qué hace el código inteligente y por qué, porque lo olvidará muy pronto. Y, por supuesto, explicar permite que otras personas comprendan su código más fácilmente.

La experiencia no le impedirá escribir código idiota y cometer errores tontos. La experiencia le ayuda a detectar y reconocer tales errores lo antes posible, y ese es el primer paso para corregirlos.

Nunca dejes de aprender.

Lema del desarrollador

Los desarrolladores no son maestros Jedi. “Hacer. O no. No hay intento ”, no funciona. Es “Si al principio no tiene éxito, intente, intente, intente, intente … intente, intente, intente de nuevo”.

¿Pestañas … o espacios?

Espacios.

Estilo de sangría

Allman para lenguajes reforzados, GNU para Pascal. La diferencia está en la sangría del bloque donde el comienzo … el final necesita una sangría adicional para una separación más limpia.

¿Cuál es el mejor día que ha tenido como desarrollador?

Ha habido muchos … es difícil elegir uno.

¿Qué es lo peor de ser desarrollador?

Nunca dejas de codificar en tu cabeza.

¿Cuál es el consejo de desarrollo más genial que conoces?

Si te quedas atascado, báñate, camina, duerme… haz cualquier cosa que te relaje.

¿Trabaja desde casa, trabaja desde una oficina, trabaja en un espacio abierto / compartido? Que prefieres y porque? ¿Puedes elegir?

Trabajar desde casa. Configuración más cómoda. No pierde tiempo en desplazamientos. Tu propio baño. Puede sobrevivir a la pandemia sin cambiar sus hábitos.

Cuéntanos algo interesante que creas que quizás no sepamos.

La primera versión de Turbo Pascal que usé en la escuela secundaria se ejecutaba en CP / M. También estuve en la primera generación de estudiantes de secundaria que no tenían COBOL en su plan de estudios.

Si pudieras agitar una varita mágica para “arreglar la industria de la tecnología”, ¿qué cambiarías?

¡Crearía un byte-bat más grande! (Para aquellos que no saben de lo que estoy hablando, había una especie de bate de béisbol de goma en los años 80 con el que podías golpear tu estúpida computadora sin romper nada).

¡El sitio web de Dalija te da una pista sobre su personalidad efervescente!

Si pudiera convencer a alguien de que considere Delphi o C ++ Builder, ¿cuál sería su método, cómo lo haría?

Lo que siempre me gustó de Turbo Pascal y más tarde de Delphi, es el hecho de que es un lenguaje bastante universal, no solo en términos de ser adecuado para desarrollar aplicaciones muy diferentes, sino también en términos de permitirle programar en niveles muy diferentes de abstracción. .

Puede usarlo como una herramienta RAD, para un rápido desarrollo y creación de prototipos. Puede escribir y usar marcos de alta abstracción, donde puede lograr cosas con solo unas pocas líneas de código. Y, sin embargo, puede ir hasta el nivel del sistema operativo e interactuar directamente con las API del sistema operativo. En la plataforma Windows, incluso puede profundizar y escribir código ensamblador directamente.

Realmente me gusta esa pieza de ensamblaje. No lo uso demasiado hoy en día, pero en las raras ocasiones en que lo hago, estoy muy contento de que esté allí.

No estoy seguro de si este sería exactamente un argumento muy convincente. Tal vez esto sea una reliquia del pasado, cuando la capacidad de ir al nivel de montaje era una ventaja extrema, pero me encanta esa flexibilidad.

¿Qué producto tecnológico desea inventar / diseñar y por qué?

Cuando era niño, después de ver Blake’s 7 , pensé que sería genial tener su computadora, Zen, dentro del reloj, así que tenía numerosos dibujos que mostraban cómo se vería ese reloj. ¿Eso cuenta? [ ¡DEFINITIVAMENTE! – IanB, ¡también soy fan de Blakes 7! ]

Si pudieras vivir tu vida de nuevo, ¿aún te convertirías en desarrollador? ¿Por qué?

Si. Controlando el barco …

¿Cuántos cafés bebes al día y es suficiente?

Mucho. Nunca es suficiente.

¿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 que llegue la inspiración!

En su carrera, ¿alguna vez ha “pasado toda la noche” para lidiar con algo que era absolutamente necesario hacer?

Si. Pero no tantas veces como lo hice cuando estaba publicando. Mi recorrido más largo fue de unas 30 horas.

Describe algunas otras cosas que has hecho en tu carrera que podrían brindar a los lectores una base de conocimientos sobre lo que hace a un desarrollador.

También soy fotógrafo. Creo…

Dalija, definitivamente ser fotógrafo

¿Cuál es la pregunta más estúpida que te hacen (¡ninguna de estas cuenta!)

¿Cuánto tiempo tardará?

¿Cotiza para trabajar con clientes? Si lo hace, sin revelar nada que lo haga sentir incómodo, ¿qué tipo de proceso utiliza?

Cuota por hora. Las tarifas fijas funcionan solo para la personalización de la “plantilla”, cuando tiene un producto que se puede personalizar y donde la personalización consta de pasos muy específicos, conocidos y predecibles.

¿Cómo se evita que los clientes / gerentes de programas / gerentes ‘se deslicen en funciones’?

Diciendo cuánto tiempo tomaría terminarlo.

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?

This EXCELLENT book can be ordered from here: https://dalija.prasnikar.info/delphimm/

Depende de lo que esté haciendo, si estoy escribiendo código nuevo, depurando o escribiendo un libro. El tema más común es que busco mucho en Google y leo mucha documentación.

Tomo descansos cuando escribo, porque a menudo necesitas detenerte y pensar antes de escribir algo. Un breve descanso te da la oportunidad de repensar y asegurarte de que no vas en la dirección equivocada.

Por otro lado, a la depuración no le gustan los descansos, especialmente cuando estás rastreando algún Heisenbug escurridizo. A menudo es necesario realizar un seguimiento de grandes cantidades de lógica de código en su cabeza, y cualquier distracción o interrupción borrará fácilmente todo eso y tendrá que empezar de nuevo.

¿Escuchas música mientras codificas? Si es así, ¿puedes contarnos algunas pistas / artistas / actuaciones?

Algunas veces. Temas de películas, pop y rock de los 80 … Cuando mis hijos eran pequeños y yo trabajaba y cuidaba niños al mismo tiempo, eso incluía escuchar música de Age of Empires o Settlers IV todo el día.

¿Utiliza algún método o técnica como Agile, Scrum, Kanban, TDD? Si es así, ¿por qué? Si no es así, ¿por qué?

Respuesta corta: sí. Depende del proyecto.

Respuesta larga: esta es una pregunta tortuosa. [¡ Bien, manchado! 😈- IanB ]

Cualquiera de las técnicas mencionadas tiene muchas variantes (o, al menos, la gente las aplica de forma libre). Decir que sí a cualquiera de las anteriores no significa que sigas un proceso determinado al pie de la letra. Y no significa que usar uno sobre el otro sea mejor. Así como las buenas prácticas de codificación no existen en un vacío, y su propósito principal es ayudarlo a lograr el objetivo final, las prácticas de gestión de proyectos y calidad también son solo parte del mismo proceso. Si el proceso se convierte en su propio propósito, entonces ha perdido la capacidad de lograr su objetivo final: completar software funcional, mantenible y de calidad.

Por eso odio nombrar las partes del proceso, porque nunca está escrito en piedra y se adapta a los requisitos del proyecto y del equipo.

¿Rastrea los errores? Si es así, ¿qué recomiendas?

No, los mato en el acto. A veces eso los convierte en bichos zombies.

Un buen desarrollador de software:

Un revelador contundente, de lo contrario hacen un lío sangriento.

Un mal desarrollador de software:

Yo ayer 🙂

iPhone, Android, otros, ¿y por qué?

Sin teléfonos. Demasiada distracción.

Para un desarrollador: ¿PC vs Mac? ¿Por qué?

PC, porque Turbo Pascal y Delphi se ejecutan en PC. Hoy en día, uso Mac para el desarrollo de iOS y macOS, pero nunca me gustó mucho. No estoy diciendo que Windows sea perfecto, ni mucho menos, pero estoy más acostumbrado a sus peculiaridades. No puedo acostumbrarme a los de macOS

¿Qué es lo único por lo que le gustaría ser recordado?

¡Mi sombrero! 😛

¿Cuál es la mejor película de desarrollador / hacker / tecnología / geek?

¿Qué tal el mejor libro para desarrolladores? La guía del autoestopista galáctico .

Cuando se trata de películas, probablemente diría Regreso al futuro y Star Wars: Una nueva esperanza , pero las series de ciencia ficción son las mejores. Es difícil calificarlos, porque todos los que me gustan son bastante únicos: Blake’s 7 , Battlestar Galactica , Star Trek , Stargate …

Ningún desarrollador debe ser visto sin: _____________________________

¡Un ordenador!

Si se hiciera una película sobre tu vida, ¿quién te gustaría que te interpretara?

Angelina Jolie de 1995. 😛

¿Tiene un sitio web que la gente pueda visitar? Si es así, ¿cuál es?

https://dalija.prasnikar.info/

Si usa Twitter, ¿cuál es su nombre de usuario de Twitter?

dalijap

¿Cuál es su método preferido de contacto con los clientes potenciales?

https://dalija.prasnikar.info/contact

Salir de la versión móvil