Dementor – Harry Potter reference
My personal journey into computing goes back to playing with construction sets like Lego and Meccano. I loved the vast variety of combination one could find to produce an object (a new toy). However, two things frustrated me about construction set.
1) I would eventually run out of pieces, first of a particular colour, then of a particular shape, and finally, altogether.
My initial solutions where a) to swap out pieces of the colour I wanted from places that would not be seen and b) to combine pieces of all manner of shape into bigger pieces I could include in my model. Eventually, however, I would fall foul of the ultimate obstacle and run out of pieces completely; even after raiding some of my brother’s. This leads to my second frustration – oh for a 3d printer 40 years ago.
2) In order to continue building models I had two options:
a) Buy more pieces or b) deconstruct the models I had already built. I requested additional sets for birthday and Christmas presents, but there is a limit to how much money one can spend and how much space you can consume with old dusty and, later, rusting toys that never get played with again.
Soon I realised two things:
1) I questioned the futility of building a model only to break it down again.
2) It was the act of constructing the models, rather than playing with the produce, that I found most rewarding.
I was in my early teens when the home computer trend took off in the UK. I was not a good student at school, in those days schools did not understand dyslexia; a condition that held me back in formal school education. I was good, however, at mathematics and had a particular interest in geometry and was fascinated by the patterns produced by spirographs and artwork like pin boards.
Until I was able to get a computer of my own (Sinclair ZX 81), I made use of the school’s RML 380Z. It ran the CP/M (Control Program for Microcomputers) operating system and supported the BASIC (Beginner’s All-purpose Symbolic Instruction Code), and later Structured BASIC programming languages. The RML had a screen with only one colour ( green) and all data and software was stored on 5.25 inch square floppy discs. I shudder to think now what their storage capacity was, or the number of computational operations the computer was able to achieve but it served many of us well in those days.
I have long held the opinion that programming (coding and designing) is a creative act. This was firmly demonstrated to me when I taught a class in programming and had 20+ students each submit their own solution to a coding assignment. Most of then work and whilst there was considerable commonality in the answer they all differed in the approach taken and coding style; as the French say “vive la différence”.
As a professional software developer (engineer) there are standards to be observed. For those that question this straight-jacket of creativity I suggest you try debugging some else’s undisciplined code. When reviewing other developer’s code, I love to see different approaches taken. Some examples I shamelessly copy and use myself (usually subconsciously and without citation). Other times I challenge the developer to help them identify flaws in their implementation of the design or strategy. Either way I hope one or both of us learn from the exercise, with better code the product.