Photo of a distressed-looking man in a dress shirt and blazer standing in chest-high waves in the ocean

Where I’ve Been

Since quitting the 100 Days of Code challenge, I have realized the value in adhering to such a strict schedule of not only coding daily, but writing about it. In a way, I considered that a job, and one that I wanted to keep, so I kept showing up (because my goal was to follow that path to an actual job doing what I really wanted to do). But I found the rigor of it to be in conflict with the other things going on in my life; I began focusing on my perceived future and quit living in the now, which slowly started leading me to neglect my responsibilities. I decided that I needed to slow down and readjust my focus for the sake of my mental health as well as those who I love.

I am a Dallas transplant living in Houston with my girlfriend and our baby. I work in the legal field and have absolutely no passion for what I do as a day job. My relationship is also still pretty new, all things considered, and when I landed here in a strange city I’d only visited maybe once or twice before uprooting and permanently moving here, I found myself unemployed. It took me three months to find a job, and I drained my savings in the process. When I found a job, it was a job I hated. I know that’s a first-world kind of thing to complain about, because how many of us can truly say we love what we do for a living? I know you’re out there, but I suspect you’re in the minority.

So I found myself in a new situation, in a new relationship, with a new kid, all of us crammed into an apartment that would’ve suited me alone just fine – but with another adult, a baby, and two dogs, there wasn’t a whole lot of room to breathe. Since the relationship was also pretty new, we experienced a fair share of conflict in the process of living closely with one another and figuring out how to be together harmoniously without wearing each other out. For most of my life I’ve dealt with a waxing and waning type of mild depression which I didn’t identify until my late teens, but in retrospect it was there for much longer than I could put a label on it. The totality of the situation I found myself in caused me to fall back into depression. In the midst of my struggle with coming to terms with everything, I found solace in the logical black-and-white nature of coding. I had control over everything, and if something went wrong it was entirely my fault and within my means to fix it. Even when I’m not depressed, this is something that appeals to me very much about coding. Controlling a computer to do what you want is something that has always had a magical sort of appeal to me.

Anyway, before I go too much into my woes, I’ll sum it up by saying that I became absorbed in my mission to become a professional coder. Podcasts, articles, videos, and nearly everything else I did in my free time was aimed at my end goal of being a coder for a living. The problem is that it’s not possible to be a good father and boyfriend and dog caretaker while simultaneously staring at your computer with your head wrapped around some abstract concept (I know this, because I tried). My personal life began to suffer even more in the midst of my obsession with my career goal, so I pulled back and began focusing on the people and things that matter most to me right now. This meant less time spent coding and learning new concepts, and essentially no time for me to log my progress daily (because, as you might be able to glean from this post, I am a long-winded person with a weakness for my own tangents that usually never make it back to center). And since the whole point of the 100 Days challenge is literally to do it daily, I decided that it would be disingenuous and maybe even a little insulting to those who were really pulling off 100-plus day streaks to keep taking part in it.

I told myself I’d still post about my progress for the reflective value inherent in thinking back on your day and putting into words what you learned, but without the compulsion to do it every day, I found myself lacking the momentum to even start a post. With my coding time reduced, I opted instead to use it for actual coding and learning about coding rather than sitting and writing about it. But I did continue my journey: I continued reading, listening, and doing, almost daily, though I didn’t verbalize my progress as adamantly as I’d been doing before.

At a certain point, I hit burnout status. I didn’t give up, but I had pull back from everything and give myself some breathing room lest I get so frustrated that I give up altogether. I knew that to be a distinct possibility, because I’ve been down that road on more than one occasion. The urge to be a programmer is not a new one to me. I’ve been chasing this dream since I was a kid, with varying degrees of dedication. The difference is that this time, I really mean it. It’s what I want to do. No matter how many walls I hit or how slowly it feels my progress is coming, underneath it all I know that I want to make my living working with computers and making them work for me.

I started allowing myself leisure time in my free time rather than spending it all working (because, as much as I love to learn, learning is still work). My relationship with my girlfriend slowly started to improve, I found myself climbing back out of depression, and I worked to be more present when raising my kid, to really notice the beautiful little moments in his daily progression as a human, moments that I would not be able to get back if they passed me by while I had my back turned, engrossed in some Python program or web development tutorial.

I write this now from the comfort of our new home, which my girlfriend did almost all of the work in securing for us. It’s more than double the size of our apartment. Our baby has a room of his own now, and we have a room of our own, and my girlfriend has an office of her own from which she can work her remote night shift. I even have my own little area to work in undisturbed. The process of packing up the apartment, moving everything, unloading it, finding a new place for it in our new home, and generally balancing all the responsibilities that come with home ownership has been exhausting and required almost every free moment we’ve been able to spare for the past month or two. Through it all, I haven’t given up on my dream, but I’ve had to focus even harder on the immediate now rather than a nebulous future vision of where I want to be, though who the hell knows when I’ll actually make it there?

On top of all that, I quit the job I was miserable (and frankly, pretty bad) at and began working at a new law firm. It’s more in line with my experience, but I still don’t really enjoy it. I get by well enough, and the pay is good enough, and health care is actually provided, but the first month was unbelievably stressful. I’m not exaggerating when I say that they expected me to do the work of two people when I started; I did my very best, thinking that if I just put my mind to it and worked hard enough that I could find a way to succeed, but I quickly had to put my foot down and tell them that no matter how much experience I have, no matter how fast I type or how good I am with technology, there was no way I could get the work done short of pulling 70-hour weeks (on salary, with no overtime). So they gave half of my work to another employee, which helped greatly, and installed a piece of software on my computer which made generating batches of documents unbelievably faster than the previous process I had to follow (saving me hours of work a week), and I find myself starting to level out again.

I don’t hate my job, but I know I am in the wrong line of work. I don’t have any real interest in or passion for the law, but it’s a path I’ve been following for over half a decade since I landed my first legal assistant gig simply because it’s something I can do and it’s what I know. But this is not what I want to do until I retire, and I think about that almost every day (when I have the luxury of finding time to think about such extraneous things).

So things were bad, then they got worse, and now they’re steadily improving and approaching what I’d consider to be pretty great. I know without a doubt where I want to end up in my future career, even if I’m not currently there (or on a direct track with my present line of employment). I see the way forward. It’s going to take a lot of work and, most likely, a lot of time. But if it takes another year or two for me to secure the skills necessary to build up a portfolio, line up a job interview, and land the gig, so be it. That’s just the price of admission, and I’m willing to pay it to end up where I truly want to be.

But I’ve got to be a dad and a boyfriend first. The coding and dream career aren’t going anywhere. I have the desire and the will to make it happen, but maybe it’s better after all not to rush it.

I’ll check back in in a week or ten. 😉


Shitty First Code

I got my degree in English Literature, and there have been a few brief periods in my adult life when I made attempts at “being a writer” (a phrase that’s as nebulous to me as “when I grow up”). To that end, I’ve read a couple of books by a couple of writers that have more or less stuck with me. The first, which I recommend to anyone who writes in any capacity, is Stephen King’s On Writing. The second, Bird By Bird by Anne Lamott, contains a particular chapter that I may never forget. It’s called “Shitty First Drafts.” (You can read the excerpt in PDF format online here, if you’re so inclined – it’s about a 5ish minute read, and it’s rather funny.)

I revisited Ms. Lamott’s advice on writing such first drafts tonight after I had worked through some coding problems on a new website I just discovered called Codewars – if you’re interested, you can sign up here. It’s fun, it’s free, and I’m finding it to be a great way to flex my mental muscles! I made it through the first several problems before getting stuck on one (which is why I’m taking a break to write this post now).

One of the truly great features about this website is that, after you submit your answer, it shows you some of the more optimal and clever submissions by other users – in most cases using obscure code or tricks I’d never even thought possible. It’s a great way to learn, certainly, but for someone as competitive as I am, it’s also daunting in a way. Part of me always wants to be the best at what I’m doing, to excel, and so it’s easy for my inner critic to convince me that, even though I came up with an answer, it just wasn’t good enough. Why hadn’t I thought of that? I’m a smart guy, is the most basic solution all I’m really good for?

In my particular case, I’m solving the problems using JavaScript (though, if time permits, I’d like to revisit them using at least one other language). I’ve been casually familiar with JavaScript for years, but I am not yet an expert and have still only barely scratched the surface of what is possible with this language. I should really be proud that I’m coming up with solutions, period. And so I started thinking about that when I stepped away from my apartment to take the dogs out. I need to be okay with shitty first code.

According to Lamott, “[a]lmost all good writing begins with terrible first efforts.” I believe this is true, and I believe that it extends beyond writing fiction/nonfiction to writing computer code, as well. I think if I intend to get anywhere with a career in development, I need to start by accepting that my first efforts are going to be imperfect and suboptimal. Accepting shitty code doesn’t mean settling for being a shitty coder; it means understanding that my first attempts will likely be laughable to a more seasoned developer, but also knowing that I will eventually hone my skills and improve my knowledge of what can be done within the constraints of the language. The most important thing at this point is actually doing it without giving up, so that I can come to an understanding of the fundamental algorithm for the problem I’m trying to solve. As I progress, I’ll take note of what others have done, and I’ll admire and appreciate their ingenuity, but I’ll also do my best not to let the superiority of their methods intimidate me. I’ll see their more optimal code as an opportunity to learn. Instead of beating myself up, I will slowly start to build myself up instead.

So here’s to shitty code.