My first exposure to programming was all the way back in 1985 on the Sinclair ZX81 in the days before the internet and easy access to programming materials / tutorials. Those of you that remember the ZX81 must recall the flaky 16K memory pack that affixed to the main body of the device with what seemed like Velcro. One sudden move and the connection was lost along with all your hard work typing over that tiny keyboard!
By the 1990’s I had moved up to the wonderful Commodore64 that included the cassette deck for saving and loading your programs. A vast improvement on the ZX81 but still painfully slow.
The language I was learning at that time was Basic and I recall watching the DOS sample game QBasic Gorillas with two Gorillas standing on opposite skyscraper landscapes taking turns throwing bananas at each other. At that time I was so new and was (still am) terrible at mathematics I had no idea how they worked out the trajectory of the thrown bananas!
Still I persevered by programming simple games for my infant son at the time and had an inkling that perhaps programming was for me when in order to add a certain style of music to the game I taught myself to read sheet music in order to code the notes into the app. Don’t ask me how I did it or if I still can because…..I can’t!
A strong memory of that time is the countless visits to the local library in the desperate hope of finding a book that would teach me the things I needed to know and more often than not coming home empty handed.
By the mid 1990’s computers has advanced somewhat and I slowly moved from those with processors 286, 386, 486 etc and I had migrated to learning C which at that time more material was becoming available from publisher such as Wrox Press and Sams Publishing, the latter being my preferred choice as I found their style more easy to get along with.
I spent a lot of time writing small meaningless programs like for example enter the number of batteries, their size and the dimensions of a box and it would tell me the best fit to hold the most number of batteries. Pointless maybe, but fun all the same.
I also spent a large amount of time learning about graphic file formats and how to modify them. I recall the format I used most at the time was PCX and writing a program to alter the header information of the file and write it back out as a new file format of my own making. In doing so for the most part only my programs could read these files although it was not rocket science and am positive there were many programmers in the wild that could ‘crack’ my code!
By 1995 I was well entrenched in the idea of writing a proper game and the game in question was a Space Invaders clone. For the most part I did complete the game albeit for my own use, I still have the program to this day, (see image below), but never released it to the world…not good enough as it had now real level progression.
However this one program was the turning point for me in that up until that time I looked upon myself as having no real skills, no real educational qualifications and in a run of the mill manual job.
The turning point was the problem that arose when trying to control the player via the keyboard which had a very visible lag between pressing the left or right key and the player actually moving. This was very annoying and after some research I learned that I could if I put my mind to it write a Keyboard Interrupt Handler that would in effect run my code before it got to the higher level part of the program.
In order to do this I had to learn another programming language, a much lower level language, Assembly Language and it is this that made me realise I had the ability to learn if I put the right effort into it.
I remember spending many hours over a Wrox Press book on the subject and at the end I had programmed the required interrupt and the players movement was instantaneous – my Space Invaders game for me anyway was complete!
My programming journey took a change in direction for some time from 1996 to 2008 due to my role at work changing and spent all my programming time developing warehouse management programs using Visual Basic, Visual Basic for Applications, Transact SQL to name a few.
This left little time for the real fun stuff of earlier years but I continued to follow along via such publications as PC_Format which provided monthly CD content of cool and fascinating programs. To date from the early days of reading this great magazine my all time favourite example of what really talented programmers were capable of was Second Reality and I still to this day blast it out on my 55″ TV via YouTube, I recommend you give it a try!
Late 2008 saw a complete change in direction with my developing on the Apple Mac for the iPhone and later iPad using Objective-C. This language although loathed by some was and still is my favourite language to program in.
I wont go into the many apps I developed for work, there were numerous, and although the enthusiasm for developing my own apps was there….I spent all my programming time on work!
Then came 2014 and my introduction to Unity, C# and Vuforia. Prior to this I knew of Unity but as it is a huge development tool you really need a goal in order to start learning to use it and before 2014 no such goal existed for me.
Again from 2014 to the end of 2018 my entire programming time was spent developing Augmented Reality apps for work leaving little energy for my own projects. But during this period I learned a vast amount about how to develop in Unity, C# and Vuforia.
And then at last we come to the beginning of 2019 and retirement! I found myself thrust into the world of Windows 10 and Android mobile phones/tablets, I made a conscious decision upon retiring I would turn my back on Apple. Its taken me this last 7 months to get into the Windows 10 and concentrating on my own ideas and interests.
I thought coming back to Windows after being on MacOS for so long would be hard, but I find I really enjoy Windows 10 just as much as I enjoy my Google Pixel 2XL phone. For me Apple is an expensive distant past!
And so here I am half way through 2019 and have one Android app released on the Play Store which was just a little fun starter to get me truly into retirement mode. Unity works just as good if not better on Windows and I can now develop apps for both Windows and Mac desktops and Android phones. Yes, I do target MacOS because for now like Windows I can distribute apps on my own website without the need of the Windows or Mac Stores, if that ever changes…well that will be the end of that!