Hello, my name is Eric, and I'm addicted to coffee.
My brain somehow thinks it can't cope without it, especially when it comes time to sit down and engage in what is perhaps my single greatest passion - coding. I'm actually drinking one right now, while I sit here wondering where to truly begin my foray into the world of blogging; I figure I should start with a little about who and why I am.
Way back when.
For all intents and purposes, I've been a hobbyist coder for somewhat more than 15 years. But the first steps upon the path my coding journey actually started about a decade before that.
My first exposure to computer programming was way back when I was in primary school (or 'elementary school' for some), perhaps around 8-9 years old; my mother's best friend in university was a programmer who had a part-time job repairing arcade/pinball machines, and I was lucky enough to have him show me the ropes on an Amstrad 'plugs into the telly' machine. He showed me how typing a bunch of special words and numbers into it could create (for the times, at least) pretty pictures on the screen and I was enthralled. Several years later, my mother married another programmer specialising in the fledgling world of what we now know as the modern PC, and he continued my computer education. From the tender age of 10, I was hooked, line and sinker.
Over the next few years I played a few games, learned how to use pseudocode to design simple logic systems, fiddled a bit with BASIC on both the PC and Commodore platforms. As I progressed to high school, I was able to take the odd look at coding on the Apple IIC/IIE's, with the usual turtle graphics and solid introductions into constucts like 'IF ... THEN ... ELSE' and 'DO ... WHILE'. All of this was in dribs and drabs, grabbing the time to delve into computing as much as I could whilst trying to survive childhood and adolescence.
My first exposure to computer programming was way back when I was in primary school (or 'elementary school' for some), perhaps around 8-9 years old; my mother's best friend in university was a programmer who had a part-time job repairing arcade/pinball machines, and I was lucky enough to have him show me the ropes on an Amstrad 'plugs into the telly' machine. He showed me how typing a bunch of special words and numbers into it could create (for the times, at least) pretty pictures on the screen and I was enthralled. Several years later, my mother married another programmer specialising in the fledgling world of what we now know as the modern PC, and he continued my computer education. From the tender age of 10, I was hooked, line and sinker.
Over the next few years I played a few games, learned how to use pseudocode to design simple logic systems, fiddled a bit with BASIC on both the PC and Commodore platforms. As I progressed to high school, I was able to take the odd look at coding on the Apple IIC/IIE's, with the usual turtle graphics and solid introductions into constucts like 'IF ... THEN ... ELSE' and 'DO ... WHILE'. All of this was in dribs and drabs, grabbing the time to delve into computing as much as I could whilst trying to survive childhood and adolescence.
First forays into code.
Whilst I'd owned several computers over the years, it wasn't until I was around 20-ish (give or take a year - my memory is somewhat fuzzy on that) that I wrote what I class as my first real code. Rather than just typing in stuff from books (or reverse engineering saved code, as many machines I'd used compiled thier code at runtime) and altering the values to produce 'interesting' results, I somehow came up with the idea of creating a program that would take a list of words, check them against an in-built copy of the English dictionary and create a crossword or 'find-a-word' puzzle from the validated list automatically.
Strangely (and as I still think now, rightly) the first issue I saw in my plan was this: how do I take tens of thousands of words, store them on a hard disk (at the time, a whopping 20Mb cradled in an aging 8088 Intel PC) and retrieve them somewhat at random, using as little disk space as possible? After some thought, I came up with an algorithm that would theoretically compress the dictionary into a format that would translate to around half the size of the original data, based on the premise that -- by virtue of being a dictionary -- the words would all be stored in alphabetical order. For the moment, I'll leave it as an excercise for you to figure out how I might have solved the problem; I will say that the algorithm did work in practice when I tested it later, naive as it was, although my input dataset never did get past the words beginning with the letter 'A', because manually typing every word in the dictionary...insane idea...
Not only was I using the computer equivalent of a block of concrete (yes, those beggars were heavy), a DOS text editor served as my IDE and my brain as the compiler and debugger. But of course that didn't stop me; I'd found a mental exercise that both challenged and excited me, the pursuit that essentially became my life's passion - the creation of something from nothing but pure imagination.
Strangely (and as I still think now, rightly) the first issue I saw in my plan was this: how do I take tens of thousands of words, store them on a hard disk (at the time, a whopping 20Mb cradled in an aging 8088 Intel PC) and retrieve them somewhat at random, using as little disk space as possible? After some thought, I came up with an algorithm that would theoretically compress the dictionary into a format that would translate to around half the size of the original data, based on the premise that -- by virtue of being a dictionary -- the words would all be stored in alphabetical order. For the moment, I'll leave it as an excercise for you to figure out how I might have solved the problem; I will say that the algorithm did work in practice when I tested it later, naive as it was, although my input dataset never did get past the words beginning with the letter 'A', because manually typing every word in the dictionary...insane idea...
Not only was I using the computer equivalent of a block of concrete (yes, those beggars were heavy), a DOS text editor served as my IDE and my brain as the compiler and debugger. But of course that didn't stop me; I'd found a mental exercise that both challenged and excited me, the pursuit that essentially became my life's passion - the creation of something from nothing but pure imagination.
More to come...
...I'm just not going to do it all at one sitting.