Coding: A Creative Discipline

I first started coding when I was about 8; it was around this time that my dad had a job with newly formed Zeneca, now AstraZeneca, following it's split from ICI Pharmaceuticals. The culture surrounding IT hardware disposal back then was very much different to what it is now, and he would bring home old, tired 286 machines for me to play with exactly like this one;

For the record, this is a Compaq Personal III, released in 1987 it boasted an astonishing 12MHz 286 processor, 640kb of RAM and 20mb hard drive. Beggars, as they say, cannot be choosers.

One thing to note though is that this machine is pre-windows, and ran purely on MS-DOS command line. To navigate even the most basic functions required some rudimentary programming knowledge, but this wasn't my true playground. Inside the depths of this OS, was a little program called QBasic; an IDE for the BASIC programming language.

Here, my imagination ran wild. I created little applications that would answer (very specific) questions, draw patterns on screen that would render at different speeds and even indulge in a game of Gorillas where the objective was to throw a banana at the opposing Gorilla using angle and force modifiers whilst accounting for windspeed. But the coolest thing to do, was get the computer to sing.

Using the PLAY command it was possible to compose simple musical arrangements through pure code and have the computer play it back to you. Below is a snippet I've pulled off qbasic.net to illustrate the syntax;

'Play scale in 7 different octaves
scale$ = "CDEFGAB"
PLAY "L16"
FOR i% = 0 TO 6
  PLAY "O" + STR$(i%)
  PLAY "X" + VARPTR$(scale$)
NEXT i%

In my youth I composed minute long masterpieces (or so I thought) using the same code, often trying to copy the music I heard on my Sega Master System games like Sonic the Hedgehog and Alex Kidd in Miracle World. I wish I'd kept the code from that simpler time, if only for posterity and hilarity.

As it turned out, this was a sign of things to come on two counts. Firstly I took up music not long afterwards, the first instrument being the recorder which I am certain is mandatory in primary school. This was followed by the guitar when I was 12, partly influenced by a desperate and misguided attempt to impress my then high school crush. That futile endeavor came to naught, however 22 years and a music degree later I still play the 6 string.

Secondly, I took up IT as profession in my early 20's. I started in support and administration however I quickly found my niche in dealing with pesky and persistent problems that needed someone to dive deep into the OS to find the solution. From there it was a natural jump into software development and I specialised primarily in database systems, learning T-SQL first before picking up C# and VB. net later.

That's all fair and good, you may say, but what on earth does all this have to do with the subject of this missive?

Well the point is this. I've written songs and tunes for as long as I've played an instrument, and always within the western classical tradition; this is the set of notation and scales that just about every pop, hip hop, rock, metal, dance, classical etc. piece uses within our western culture and beyond.

It has established patterns and progressions that are considered best practice when trying to achieve specific moods or conforming to genre archetypes. There a patterns that could be considered sub-types such as cadances, and using a repeated phrase known as an ostinato throughout a piece is a common composition technique. In notation there are coda's which basically act as "for loops" in the music in order to prevent repeated notation of the same part in the score.

For those code-monkeys out there, this should all start to seem familiar. Objects, classes, functions, parameters and variables all have their home in both camps - they just have different names and contexts. To code is to create something from nothing, writing a structure by building on the shoulders of those that have come before using rules and standards laid out ready to help frame your idea.

Like music, coding is best done collaboratively, with the collective wisdom of all involved coming together to make the art created greater than it could have been alone. And like music, this collaboration can lead to heated debate and conflict (and not just the merge kind), but this is how we learn; by challenging assumptions that are often internalised and long held.

That creative flair, that spark that let's someone see the potential for something from what is just collections of keys, be that a piano or a keyboard, is a fundamental part of being a programmer. The love of creating something from nothing is nascent in both disciplines, and I don't think it's acknowledged enough. Too often programmers and IT specialists are typecast as anti-social emotionally crippled nerds hiding in the corner, and whilst in recent years this has improved I believe great programmers should be celebrated, like a virtuoso musician regaling audiences with renditions of Rachmaninoff's Piano Concert No.2 in the key of C++.

It's no surprise to me that 80% of the team here are musicians; among those instruments played are the guitar, drums, viola, harmonium and piano. I keep a guitar at the office that I play to help me clear my mind when I hit a locked door, giving time for my subconscious to find the key.

Coding is a creative discipline, and it's time for that fact to be more widely acknowledged.

Ben Bartle

Head of Architecture

6 年

100% Agree. Remind's me of Linda Liukas' great quote: "If JavaScript is the new lingua franca, we don't need more grammar classes, we need poetry classes". The great thing about coding and music is than anyone can pick them up and have a go, but mastery follows the same path.

要查看或添加评论,请登录

Kristian Keep的更多文章

  • Innovation: It's a relative thing...

    Innovation: It's a relative thing...

    Innovation, its an interesting word couched in context. It's one I have an affinity with, so much so that it's a part…

  • AI & Matchmaking; A Match Made in Heaven?

    AI & Matchmaking; A Match Made in Heaven?

    I do like a good conference, or exhibition, or trade show, or whatever you want to call the whole affair. They're a…

  • Latent Talent: Curiosity is King

    Latent Talent: Curiosity is King

    I've been lucky in my career, and I'm not afraid to admit this. Having benefitted from a series of dedicated and…

    2 条评论
  • Bring on the Bots: Deep Learning & Conversing

    Bring on the Bots: Deep Learning & Conversing

    Google created quite the stir recently with the newest party trick their Google Assistant platform can now do; call a…

  • Drowning In Data: Fundamentals First

    Drowning In Data: Fundamentals First

    Right now, this very second, there are billions of data transactions happening. It flows freely in a maelstrom of…

    1 条评论
  • Blockchain, GDPR and the elusive Single Customer View

    Blockchain, GDPR and the elusive Single Customer View

    "What we need is a single view of our customers, a 360 degree, all encompassing, de-duplicated perspective. One that…

    1 条评论

社区洞察

其他会员也浏览了