In this engaging conversation, Volker Simonis, an experienced software engineer, shares his journey from early computing with the Schneider CPC to his passion for Java. He reflects on programming in languages like Basic and Turbo Pascal, and his fascination with L-systems and biology. Volker discusses the challenges of early operating systems, configuring Linux, and his work creating software for internationalizing Java applications. A delightful blend of nostalgia, technical insight, and a love for both programming and nature shines through.
The speaker's early exposure to the Schneider CPC and programming languages like BASIC and Turbo Pascal fostered a passion for software creation.
A significant mentorship experience during their education introduced the speaker to programming concepts, shaping their technical skills and interest in coding.
The transition to Java introduced the speaker to concurrent programming and the potential for platform-independent application development, marking a pivotal career milestone.
Deep dives
First Personal Computers and Their Impact
The discussion highlights the early experiences of using personal computers, particularly the Schneider CPC and Amstrad CPC, which were popular in Europe. These computers featured the Z-Log Z80 CPU and allowed users not only to play games but also to engage with programming through BASIC and Turbo Pascal. The ability to run CP/M as a professional operating system significantly shaped the speaker's programming journey, providing a real file system for more advanced tasks. This emphasis on programming over gaming reveals a shift towards software creation as an engaging aspect of personal computing from an early age.
Influence of Education and Mentorship
The speaker attributes much of their early programming interest to an engaging teacher who introduced them to programming concepts using pocket computers. This mentorship ignited a passion for developing small programs, including games, which fostered a deeper understanding of coding. Through the encouragement of a teacher, the speaker learned the foundations of programming and gained practical experience that contributed to their technical skills. Such educational influence demonstrates the vital role that effective mentorship plays in nurturing future talents in technology.
Exploration of Mathematical Concepts Through Programming
The conversation delves into how mathematical concepts were explored through programming languages like LOGO, which allowed users to generate graphics using algorithms. The ability to draw complex shapes, trees, and fractals using simple commands fascinated the speaker, showcasing how mathematics can translate into visual art. This intersection of art and math not only solidified the speaker's programming skills but also encouraged curiosity about the underlying algorithms that create such visual representations. The discussion demonstrates the powerful and creative potential of programming in understanding complex mathematical ideas.
Transition to Advanced Computing and Java Development
As the speaker moved into university, their programming experience expanded, leading them to Java and the complexities of C++. The introduction of concurrent programming and platform-independent networking with Java captivated the speaker, who recognized its potential in developing applications that could run across different systems. With advancements in graphics programming through Java Swing, they began to explore creating visually compelling applications. This transition marked a significant milestone in their career, paving the way for future endeavors in Java development.
Career Progression and Project Development
The speaker's career trajectory progressed from freelance projects to significant roles in established companies like Sun Microsystems and SAP. Their early projects involved database management, integrating Java applets for data accessibility, and contributing to the development of database technologies like MaxDB. Influence from real-world applications and challenges faced during their tenure at these companies shaped their understanding of software engineering and project management. This culminated in a rich professional journey that reflects the dynamic nature of technology and the continual learning and adaptation required within the industry.
early computing experiences with Schneider CPC (Amstrad in UK) with Z80 CPU,
CP/M operating system as an add-on that provided a real file system,
programming in Basic and Turbo Pascal on early computers,
discussion about gaming versus programming interests,
using a 9-pin needle printer for school work,
programming on pocket computers with BASIC in school,
memories of Digital Research's CP/M and DR-DOS competing with MS-DOS,
HiMEM memory management in early operating systems,
programming in Logo language with turtle graphics and fractals,
fascination with Lindenmayer systems (L-systems) for simulating biological growth patterns,
interest in biology and carnivorous plants,
transition to PCs with floppy disk drives,
using SGI Iris workstations at university with IRIX operating system,
early experiences with Linux installed from floppy disks,
challenges of configuring X Window System,
programming graphics on interlaced monitors,
early work with HP using Tickle/Tk and python around 1993,
first experiences with Java around version 0.8/0.9,
attraction to Java's platform-independent networking and graphics capabilities,
using Blackdown Java for Linux created by Johan Vos,
freelance work creating Java applets for accessing databases of technical standards,
PhD work creating software for analyzing parallel text corpora in multiple languages,
developing internationalization and XML capabilities in Java Swing applications,
career at Sun Microsystems porting MaxDB to Solaris,
transition to SAP to work on JVM development,
Adabas and MaxDB,
reflections on ABAP programming language at SAP and its database-centric nature