What Influenced and Inspired Me to Learn Code

Why Program?

Of Screens and Stereotypes

Why be a programmer? Well, before I answer that question, perhaps we should look at why that even is a question. Why do we still need to justify our decisions to sit behind computer screens, presumably wear pocket protectors and thick-rimmed glasses, and speak in nasally voices? Because let’s face it: that’s exactly what the stereotype of ‘the programmer’ has been for decades. My answer to that question is a multiple part one, and it begins with my love of building things back when I was but a wee lad.

The History of Dave

I have had many what one might ostensibly call ‘career ideas’ in my school career, but what they’ve all centered around is the desire to construct and to present information to others.
As I’ve mentioned, my school career is diverse. In 2009, I graduated from Lafayette college with a degree in biology, which any scientist will tell you has about as little to do with programming (or indeed, math in general) as anything that’s still in the field of ‘science’ possibly could do. Biologists love dealing in fuzzy logic (or fuzzy creatures), and the only math the traditional biologist is ‘comfortable’ with is the relatively tame world of statistics. I mention this because it’ll help me explain later why I translated into programming eventually. I wasn’t the traditional biologist, and I would often observe particular pieces of the natural world – the structure of DNA and its relation to RNA, protein, and even binary code; the ecological interaction of different levels of a trophic web, and the ‘self balancing’ nature of a mature ecosystem, for example. So it was only natural that I started to apply myself to some basic coding techniques to try to emulate these systems. I learned JavaScript, and dug up my old memories of HTML and CSS (I’d pretty much stopped learning anything web-related back when the font tag was still in vogue!).

Teaching

Meanwhile, in my non-computer-related life, I took up the pursuit of teaching. I studied at Drexel University, graduating in 2011 with a Masters’ degree in science education at a secondary level. Again, dear reader, you may be wondering “Dave, what the heck? You were just talking about biology vs. programming, and now you’re onto teaching? Get your mind on track!”. But bear with me. My love of understanding how to model natural systems, how to build, and, let’s just face it, programming in general, extended to the world of teaching. It was all very well and good if I could build a website to translate DNA to RNA and protein, but unless the site could explain why this translation worked, it was useless. Paradoxically, this meant designing a program that could both explain the biological, chemical-related world of transcription and translation – mRNA, tRNA, codons, and all those good buzzwords high schoolers hate – and the oft more strict world of programming. Here’s a brief example:
1.DNA is a chemical code comprised of differing combinations of A (Adenine), T (Thymine), C (Cytosine), and G (Guanine).
2.Its counterpart RNA (the mid-step to conversion into a protein) basically copies that code (think of DNA as the master blueprint, and RNA as the copy of the blueprint taken to the job site).
3.But wait, there’s more! Unlike DNA, RNA has no “T” (that’s thymine, folks). Instead, it uses Uracil (U).
4.So in a very simple programming exercise, I needed to replace every instance of ‘T’ in the input string with ‘U’.

So What?

So in short, I guess what made me want to program was both a love of web design (and hey, let’s face it, the ‘tricks’ you can do with it’) as well as a desire to take advantage of yet another medium to help in the education of science.

Another Observation

Perhaps not directly related to the question itself, but here’s a bit of an interesting observation: DNA is a full-fledged programming language, in the same way any other programming language is. It’s reactive, in that the ‘programs’ it generates are reactive to their environment (we call these programs “living things”). It is moderately self-correcting, containing error-proofing mechanisms that any programmer should be jealous of. The major two differences stylistically between DNA and, say, JavaScript are:

DNA is based on a quaternary (four-part) code, while computer programming languages are at some level influencing a binary system.
Its development cycle is a bit slow, on the order of centuries, millennia, or eons. Waiting for the next program update to come out is not advised.