I learned to program at 13, and I am so grateful to my father for helping me do that.
Note I originally posted this on Facebook. I posted it days before my birthday, so 10 years is slightly understated. I admit to not remembering the exact date I started.
I just took the annual Stack Overflow Developer Survey, and one of the questions was about how many years I have been programming.
The answer is 10 years. I started learning LabView when I was 13 (QWICK MATHS: I am 23). The story I started telling people a few years later about why and how I started programming is as follows:
When I was younger, and around the time I started learning LabView, I was 13 (and honestly, I might have started when I was 12 or 14; who remembers these things?), Dad was always on his computer in his office working on side-hustles like for iBike or just random projects like a computer assistant for some strategy game he liked to play I can’t remember what it is.
He still, by the way, uses LabView to create projects that have no business being created with LabView, but it’s what he knows, so it’s all fine and good and I do (try to) not judge.
Anyway, as you can see, LabView is a colorful, pretty little thing, ain’t it? Bright colors, virtual wires connecting virtual boxes… Momentarily forget what you know about how electricity actually works. Doesn’t it just look like that pink wire could cary words and sentences from one place to another and the blue wires could carry around numbers that don’t have decimal places? That’s exactly what they do!
Anyway, something prompted me (and I can tell you assuredly that it was not my father) to ask my dad to teach me about this magical thing he was doing on his computer, and he did! He did teach me. Then, after a while, I taught myself, with heavy assistance from StackOverflow. That’s no joke; I made my account 9 years ago.
I know I must have grinded incredibly hard for such a long time through the learning processes of LabView then iOS development, because I did not have my father standing over my shoulder after a while. He didn’t know Objective-C, how could he help???
After a few basic lessons from dad, I got started on my own projects that involved a ton of trial and even more error, and to this day, there is immense joy in making a program that does something ridiculous like print the words “poo poo pee pee” on screen, and if you can get that program to SAY those words OUT LOUD??? That’s a keeper right there, bud. Add one more thing: Set the computer speakers’ volume to 100% before it says the words, for extra impact.
So anyway, I enjoyed a few projects-worth of time making really dumb stuff and moved on to make less dumb stuff. One of the less dumb projects I remember (and I have asked my father to help me dig this up, so we’ll see if he can drudge it out of the bowels of the numerous computer files stored on numerous memory discs around my parents’ house) was a program that created random photos.
The way that the program worked was that, for each pixel in a photo, the program would come up with a red, green, and blue value and assign those values to the pixel. It’s just a simple way of generating a color; the idea is that the right combination of red, green and blue can create any color, including black and white.
The result was color static, as depicted in that photo above. Random pixels thrown together creates… noise. Who would have thought?
Well, then I tweaked the program to be biased toward blue colors, to be biased toward grey tones, to pick only pastel colors (that was the beginning of my obsession, tbh), to pick only colors that were either very dark or very light… If I take a step back to think about this program, it is very obvious that it is very dumb, but it was a thing I made and could change to get different results, and that was absolutely fascinating and kept me interested.
Today, I still love this more overtly creative programming that is less utilitarian but satisfies a creative itch, but my interest has evolved to also derive satisfaction out of creating things that are 1. useful and 2. interoperable so other people can use them.
But, I still am fascinated with the idea that sparked the random photo program. If you run keep running that program, over and over, how long will it take to generate a photo that is actually recognizable? As in, you show it to 10 people and they all say, “Ah yes, that is a picture of a ____” where ____ is something everyone sees in the picture.
I’m not super deeply interested in the answer partially because I just like the sense of mystery, and I know this will never happen, but I want one day to run that program (or another just like it in a different programming language) and get out of it a photo that really does show something undeniably discernible because that would be silly and fun.
Anyway… The moral of this story is: Always be creating! Unless you’re tired; then go take a nap.
Another moral is that I am eternally grateful to my dad for feeding my curiosity about programming when I was very young so that I could start mastering the art of programming from a very young age (and later get an internship programming in high school that helped me pay for college).
It is a privilege to have the skills that I do in the realm of programming (and, really, in all skills in my life that I have developed) and to have been raised by a father who could teach me about it (and so many other things), and there is something just super special about building tools that help me do my job better, that help me have fun (either by doing the programming or from what the program itself does) and that help me connect with other people who speak the language, as it were.
Programming was truly my first love, and for better or for worse, it has shaped the way I see the world, the way I consume information, the way I talk (!!)… and it is among the things in life that has interested me since the day I found it, 10 years and going.
made with ❤ on a Mac