09 May 2016

Through the fog

I'm writing (and hitting the 'publish' button) a lot this weekend; I'm trying to work my way out of a mood that's gradually been taking hold lately. One of the things that really sucks about PTSD (and mental illness in general) is that you can't just think your way through it. If you have a cold, you drink lots of fluids and get extra rest. If you hurt your ankle, you apply cold or heat and take something for pain, and you put your ankle up and binge watch Star Trek: TNG. Or whatever. One way to deal with PTSD is to avoid everything, and that's what my brain often wants to do, but it doesn't get me very far.

I can't run from myself. Trust me. I've tried.

Work, or perhaps let's say 'keeping busy', is one way to work through rough spots. Working harder and longer means using up energy faster. Energy being a finite thing means I only get so far. On the other hand I often manage to get a lot of shit done, which has its benefits too. It's also important that for me 'work' equals 'programming', so doing more work means I'm doing something I enjoy, and that improves my mental health.

It can be incredibly hard to just get started when any combination of anxiety, depression, and PTSD are kicked up. I need something to do.

For this I have several a bunch of projects/hacks that I've started at hackathons that need additional working on, including a couple that I've invested a lot of time on-- so if it's not a day when I'm at work, I still have something to work on. I have a reason to wake up, get cleaned up and dressed, and leave my apartment. There's code to be written, enhancements to make, bugs to be squished. This is a part of the reason why I don't have a work space set up in my current apartment. If I had everything I needed to hack at home, I'd stay home and be isolated, and that just makes things worse.

I'm in the midst of making the transition from student first and worker second, back to worker first and student second.  Moving to California means I'm going to be transferring schools, but part of the motivation for the move is that I want to focus more on work.  At a place like Wisconsin, there's not much room for the working adult student. I've honestly done better in school when I was working full time and taking part time classes. I was also happier, although as I'm writing this I'm cautioning myself that correlation does not equal causation. I want to spend most of my time doing what makes me happy, and that's programming.

The energy that I put towards my projects/hacks is really important. I have to face the reality that I'm not going to be able to ride my GPA (or, sadly, my bachelor's degree, yet) into a software engineering position. It doesn't matter if you dream in code if you don't have anything to show for it. It's a good thing to be able to pull out my phone (or yours) and show you something useful. And, it's kinda fun, too.

It's equally important that I get my butt out of bed and get to work, because there's code to write that matters there too. The projects I'm working on at work are also a part of what's going to get me hired somewhere else because they're not just hacks-- the software I work on for money is used by a lot of people for a lot of things. All of the people on my team are students, but if we weren't the ones maintaining our apps there would be full time staff doing the coding.

Having a lot of useful work to do really helps. Most of the time.

There are some days/nights where even having a ton of interesting work to do isn't quite enough. Depression is a bitch. Moving across the country to a new place to start a new life is a huge thing for most people, me included. Add in that I'm also trying to lift myself up from being homeless not so long ago, and that mountain I'm trying to climb looks huge. Depression can be that voice in the back of my head that's telling me I can't.  PTSD chimes in and all hell breaks loose. These are the days/nights when I need to have something else to work on that's productive, but it also needs to be structured-- something that's in steps that I can follow rather than just being in issues or user stories.

A bit of explanation about this: I've been learning over the past year on my own, and at work, to work in an agile sense. At work we're not strictly an agile team-- agile wasn't so much created for a team of students who all work really wonky schedules-- but we do borrow ideas that work for us. On my own, I'm doing what I can as a solo hacker to adopt agile practices where they make sense. So normally, having a kanban board populated with user stories is really a cool thing. Where PTSD makes it hard to concentrate, having such a structure is a huge help in figuring out what I should be working on and what I need to be doing. Still, there are those days/nights/times when nothing seems to work to get focused.

Like, kinda, lately.

It is a difficult thing to know when the anxiety and depression and PTSD have gotten together and are cooperating to mess up one's life. This goes back to the idea that you can't think your way out of it, because you don't realize you're in it and your brain's not cooperating anyway. So it's a good thing to have something that's in specific steps to follow, something for the hacker side of my brain to latch onto and subsequently start thinking in code again.

Music helps. I have a couple of specific Pandora stations that I pretty much stick to when I'm coding. It's mostly old stuff, lots of 80's and 90's music, much of it what was once kinda alternative, much of it the same kind of music I listened to in the 80's and 90's while hacking.  It is perhaps an odd twist of fate that I also often listen to KFOG FM, which I discovered back in the 90's when Windows Media Player first offered internet radio stations, and which plays a lot of the same kind of music.  (For those of you who don't know, KFOG broadcasts in San Francisco and San Jose CA. Exactly where I'm headed after 20 years of listening. Maybe fate knew something.) Ask 100 programmers you'll get 100 different answers about music-- and maybe it's history for me, or familiarity, or nostalgia, or whatever, but that's what works.

It's the dub. Which you'll only get if you've read Neuromancer.

It also helps to have some tasks to work on that are ordered, and small, and somewhat easy to complete that are not my work specific projects or my hacks. Sometimes, you can't get there from here. So I have things to do that are programming related, but are not actually programming. Reviewing and editing stuff I've saved to read later in Evernote works because it gets me looking at technical stuff. Online training courses-- I have access to Pluralsight and Udemy-- that are broken into short blocks help because they're guided and if I'm not concentrating that well I can rewind and playback until my mind gets dialed in.

Similarly, freeCodeCamp has been a huge help lately; it's an online coding bootcamp, made for people who want to learn to code quickly to get a job as a programmer. I'm confident enough to say that I already know how to code. There's always something new to learn, and I can always do what I do better, but I can sit down at a computer and fire up vim and make things happen. So in that sense, most of the first few sections of freeCodeCamp are kinda kid stuff that I did in 1995.

HOWEVER, a lot of the challenges, small things that they may be, are really important and they cover stuff that I use-- and have used-- for a long time. A refresher on specifics that I've used but not seen for a while is certainly a good thing, if nothing else because it reminds me that it's maybe something I should be doing. Practice makes perfect, and it's very true that I learn not just by doing but by practicing. The other important benefit is that it gets me thinking about coding something specific and small. Adding two numbers in JavaScript is something I should (and do) know how to do, but it's a ton easier to focus on just that than it is to sit down at my desk and say "K Opus, now open up vim and start working on that PHP function that parses that one specific kind of wonky data from the internal employee schedule into iCalendar event cancellations that..." (you get the idea).

An hour working on freeCodeCamp challenges and my brain's getting dialed in. It's also not insignificant that freeCodeCamp (as with any coding bootcamp) results in a certificate that says two things in a quantifiable way: I was willing to put in the effort to complete all of the elements of the course, and I at least know the basic stuff to do meaningful work for someone.

Writing helps too, hence the large number of words I've written this weekend. There's not always someone around that will listen to all of this, and it's even rarer  that I have someone to tell that completely understands. My world, and my battles, are not unique. The internet always listens, even if the number of people who actually hear varies-- and that's really all right. I know some of you are listening because you say so from time to time and I appreciate it. 

No comments:

Post a Comment

If you'd like your comment to stay private, please let me know in your comment. Anonymous comments are also allowed.