It's been a while since I've written anything substantial in Python. Up until this point, I've mostly just written little toy programs here and there, as you can probably tell from my Github's list of half-finished projects (like any seasoned developer has).
For a little context, I wasn't always a dev. I started off originally going to my community college in 2003, fresh out of high school, for computer science. VB (not .net) was my first real introduction to programming, aside from BASIC when I was a child. But comp-sci sadly didn't work out for me at the time. My first semester was all A's, but by my second semester I had hit a wall.
It was a double whammy of Java and Assembly, a one-two punch! Assembly was too abstract for my eighteen year old brain, so I tried my best to throw my weight into Java. Functions, objects, if then statements- I was getting it, at least somewhat (sad to say, I never got error handling). And I made the mistake of some newbies in that I didn't find a strong mentor to show me the digital ropes.
I ended up switching my major to liberal arts in 2004 and from there went all the way through to getting a bachelors in Psychology. I figured if I couldn't understand computers, at least maybe I could understand and help people. In the meantime, I still couldn't quite stay away from technology- I just had an itch to build and explore the digital world. For the next 10 years I bounced around, always tinkering and learning, but tech was still just a side gig. It was never something I thought I could do as a career.
I got a job in the copy center at Staples part-time while making an Adult Swim-esque web-series with some friends. I then ended up working in a carpet store and writing Tweets for a social-media marketing company. I spent some time trying different things that let me express myself and I learned what worked and what didn't work for me. And I never stopped creating- I mixed music and worked weddings as a photographer. Art was always fun for me.
In 2012 I decided to pursue my Masters in Information Systems Management instead of going for my Masters in social work. I was a bit older and had come to find where my talents and interests intersected to form the right career path for me. And years of having people close to me say I should pursue IT helped me get there too.
When summer 2013 rolled around I said, "Java be damned, I won't let my story end with not knowing how to do a try-and-catch!". I'm still not quite sure what sparked it. Maybe it was pride that made me want to re-write the last page in that chapter of my life. So I started typing away, trying to make something work. It was a stock ticker app, because I was A) a little bit of a finance nerd, and B) didn't feel like paying for any of the over-priced apps to run on Windows XP. This didn't work out too well. Folder after folder, zip file after zip file- it was getting messy fast. I Google'd "How to backup Java"... "How to backup Java CODE""Use Git", some snarky commenter on Hacker News said.
So the very first thing I learned after VB and Java was... Git. Yeah, I should have given up right then and there. HA! I soldiered on- commit after terrible commit, no branches, no tags, just one ugly line. At least it didn't look like a kid's crayon drawing of a Git graph. A decade later, and I can still read the comment history-
Commit messages like "Shit I'm tired, its 1:45 am. I'll work on this tomorrow. At least I picked up how to use Maven." and "We now have a true singleton, my first,tear" still make me laugh looking back.
Around a year later I was deep into playing Minecraft with my college friends. Keep in mind, this was before it was COOL and popular amongst Gen-Z. We were playing with a mod called ComputerCraft (https://github.com/dan200/ComputerCraft), which was AND still is quite neat. We had talked amongst ourselves and decided that having a message board inside the game that you can view from outside the game would be neat, if not a little over-kill.
So I was off to build this message board. I was tired of Java this and Java that- I wanted something new, something fun. VB seemed too old school, so off to Google I went again. "What's a good programming language to learn..." Python seemed like a good start.
Off to Python
This book would become my guide book to learning this new (and weirdly formatted) programming language.
Two long weeks later I had this...
#!/usr/bin/env python2.7 """ About: A simple WSGI API server, aka take table from SQLite and make web page and API. """ __author__ = "Jesse Schoepfer" __license__ = "GNU GPL v3.0"
That was the start of my very first Python app. I hacked away for a solid 2 months, and in the end I had quite the ugly web page!
This was a big deal for me in 2014. Keep in mind that I didn't know about Django or Flask at the time and all I had was my trusty paper sidekick. I ended up deploying it on a Debian 6 VM, bare metal, no Docker yet for me.
I had a working prototype, though definitely not the first of it's kind. To paraphrase: it was too strange to live, but too weird to die. But old code never dies, it just rots away...
Funny thing, 10 years later,
apt-get install python2, some crossed fingers...
... Yes! My old bad code still works!
Jeez could I do a much better job now, but hey- it DID work.
Then and now
2014 had come and gone. At this point I was working my first help desk job, fixing printers and pulling cable. It wasn't exactly what I wanted to do career-wise, but it was at least something I actually enjoyed (sort of). I spent the next eight years tinkering at home with micro controllers (ESP8266's & MicroPython) and working on hobby projects- I just couldn't let it go.
I worked as a sys admin for a decade plus at several companies which gave me the background I needed to make the jump to programming. Career wise, I was eventually able to move into programming more, taking on bigger and bigger automation projects at work. While I did have less and less for personal projects, I still tried to keep up here and there, tinkering where I could. A billion side projects, unfinished- the classic nerd hobby problem. I was at least able to get temperature sensor logging to a SQLLite DB- silly, but it was nice to see some soldered garbage spit out real data.
I have been fortunate though to have met a lot of great folks over the last decade that have pushed me to try new things and think differently, as cliche as that sounds. Honestly, the best part of all of it wasn't building software or designing systems, but teaching those friends and colleges what I had learned, and watching them get inspired as well! Personally, I've been lucky to have the support of friends and loved ones, and to be inspired by them as well to keep on trying new things. Don't ever forget where you've come from... and don't ever forget, that no matter how many neat things you build or problems you solve, try and take a minute to breathe and take a slow sip of that cup of coffee or tea. You only get one.