Been programming

Today, to get over my non-existent writers block, I write about how I became a programmer. Telling the story almost 7 years in means that you’re reading or hearing (assuming you don’t have a good relationship with your screen reader) the 7th edition. And as with every new (and improved) edition, I’ve sprinkled an assortment of Indian spices here and there so lick carefully.

I started programming in 2010 after I bought (or rather my father bought) my first laptop. It was the first computer I owned in my life even though I had been playing with them on and off since 1995. I had some fun writing Lotus and dBASE IV commands. I wasn’t programming. I didn’t even know what I was doing typing those commands from my manual.

dBASE interface (Credit: dbaseclassic.com)

A series of accidents threw me into a bad situation. In 2008 I entered the Kwame Nkrumah University of Science and Technology to study Agricultural Engineering. It turned out to be a nightmare. But I didn’t see it coming because I love agriculture (I come from a family of farmers) and I love engineering (I’ve always been fascinated by how things work). Putting them together meant I was in for double fun, right? Nope! Agriculture wore the engineering toupee in a funny way. We couldn’t talk about organic food without invoking Newton’s third law of motion or talk about the zeroth’s law of thermodynamics without invoking the triple threat of weather, pests, and atheists (they don’t believe in curses). Calculus tilled the land (instead of hoes) because our yields should approach infinity. I was in trouble but I wasn’t going to be an easy roll over. I thought it would make sense to keep an open mind.

Entrance of the ostracized Agricultural Engineering Department. Several meters away from offices of the other engineering departments

Im ‘non homo. That means I easily backtrack on my resolutions so when I decided to keep an open mind no matter what, I let the keys to the lock drown to the bottom of the ocean. It’s such a good feeling to be positive about everything and everyone. It was all nice and healthy until one young professor was cocksure that a calculator wasn’t a computer. It was a serious wtf moment. We wasted several minutes trying to convince each other (a better use of our time if you ask me, for only God knows what other nonsense Pontiff was stuffed with but he lacked time to deliver). Then I realized he had a secret weapon: a closed mind. Technically I was the only person who could be convinced because while I was locked out of his mind he had full access to mine. Since then I’ve learnt to keep an open mind only for some time not all the time. I got new lock and key for my mind.

That was some time in 2009 or so. I spent the rest of my days passing tests (in truth narrowly escaping trails) and waiting impatiently for June, 2012 when I’ll leave and never have to return. Until the biggest intervention in my life happened: my father, on June 10, 2010, paid 1,400 GHS for my first computer. He had no idea what he had done. He had, without intention, paid the ultimate sacrifice in my behalf. And for that I remain thankful. Even today I still look back to June 10, 2010 as the day he became my father.

The KNUST Library complex. Here I committed my gravest crimes, including but not limited to, well, never mind.

There were things I didn’t want to do with my new toy: movies and games. Left me very little to do. My friend Francis Addai had been programming since I knew him and he was willing to help. I pirated James Payne’s Beginning Python and started programming. You’re probably asking, Yaw, as someone new to programming how did you decide to learn Python as your first programming language? I think the programming language you start with matters so I’ll share the wisdom behind my choice, for posterity’s sake. Python is a fantastically simple scripting language with powerful libraries already included, incredible IDE support, many free resources, and an unusually helpful community. Python code is clean and easy to read by default (even more so in a beautiful color scheme or none). It can be used for everything from simple programs to complex data science and everything in between. You think it and Python got you covered. You step out and Python cleared your path. Bullshit! I chose Python randomly. I typed something into Google and Python showed up first. Nothing more than that. I didn’t care about anything. Fam, I’m lucky it wasn’t Java. I probably wouldn’t be here to write this.

I built programs out of equations in my engineering manuals and course books, fed one to the other in experiments I couldn’t try in the lab. I simulated the life into boring fluid dynamic concepts and found interesting bounds of activity. I made claims around what was possible and what wasn’t with the help of my arsenal of little programs. It will take 2 more years of tinkering before I start web development. In those two years, I enrolled in a self-taught Python for Engineers and Truants (I had more meaningful reasons to skip classes now). It was extremely fun and rewarding. In so many ways I consider myself lucky that my introduction to programming didn’t start with web development. I wouldn’t have developed my intuition and problem solving skills to a high level if I got in the easy way.

Let me get a glass of water.