The Evolution of Programming: From Early Experiences to Modern Practices

The Evolution of Programming: From Early Experiences to Modern Practices

Understanding the journey of early programmers can provide valuable insights into the evolution of technology and programming practices. This article explores the experiences of two individuals - one who started programming in the 1970s, and another who is currently engaged in game programming after a 40-year journey in the field.

Early Programming Experiences: A Personal Journey

My programming journey began in 1979 when I was just 9 years old. My first home computer was an Atari console, which, although programmable, could not match my excitement for creating my own programs. Shortly after, I upgraded to a Commodore Vic 20, followed by a Commodore 64, and then an Amiga A500. Each of these machines had a unique characteristic, but they all shared a similar blue screen with a white text prompt that welcomed me to the world of programming.

The Commodore 64 and Amiga A500 were pivotal in shaping my early programming skills. You would remember turning on the computer and loading a game from a tape deck, which often took upwards of 20 minutes. Basic was the language of choice for the prompt, and I soon found myself writing and experimenting with different programs. However, as time passed, I grew bored of Basic due to its limitations and realized I needed more advanced tools to match my ambitions.

I started writing a simple assembler, and after several upgrades, it became a more sophisticated tool with disassembler functions. This led me to create simple sprite-based games, which were a testament to my growing skills. This early experience taught me the fundamentals of programming and introduced me to the world of machine code and its intricacies.

Professional Experience: A Journey Through the Industry

After finishing my A-levels, I secured a job as a systems programmer at a bank. This role was crucial in my professional development, as it exposed me to a range of technologies including COBOL, PL1, 370 Assembler, REXX, databases like IMS DB and DB2, and middleware such as IMS DC, CICS, and various mainframe languages. My journey in the industry was not limited to the bank, but it allowed me to hone my skills and become proficient in various areas of software development.

As technology advanced, so did my career. I moved from mainframe systems to thick client, client/server, intranet thin client, and eventually to devices. This journey of reskilling was pivotal, and it eventually led me to a long-term niche in data warehousing and BI (Business Intelligence). My career path was marked by a continuous learning process, and it led me to retire from traditional programming roles and explore game programming.

The Adventure of Game Programming

Even after retiring, my passion for programming has not diminished. I found myself drawn back to game programming, a journey that has continued for over four decades. It all began when I was young and I thought, why not create my own games instead of just playing them? This idea led me to enter a “games programming” competition organized by the Science Centre, though I did not win. From there, my creative ambition was fueled, and I started using computers to imagine and create cool animations and solve complex problems, such as visualizing speed, distance, time, and acceleration.

In addition to game programming, I used computers to enhance my school work. I created programs that helped me better understand the concepts of science and math, like visualizing bouncing balls to grasp acceleration. I also developed utilities that could generate graphs based on formulas and solve simultaneous equations. These practical applications of programming further solidified my passion for the field.

After pursuing a degree in computer engineering, my journey has continued to evolve. Throughout my 40-year career, I have maintained a relentless enthusiasm for programming, which has now led me to focus on game programming. As technology advances, my programming techniques and tools have evolved, but my core passion remains intact.

Today, I am still coding, even in my advanced years. The pursuit of creating engaging and innovative games has become a defining part of my life, and it continues to be a fulfilling endeavor. This journey through the evolving world of programming, from early experiences to modern practices, has not only shaped my professional life but has also allowed me to share my skills and knowledge with others in the industry.

Conclusion

From the early days of BASIC and simple assembler to the complex world of game programming, the journey of these individuals is a testament to the enduring impact of technology and programming on our lives. These experiences highlight the importance of continuous learning, adaptability, and the pursuit of creative solutions to existing problems.