Life Hacking: Phase Two

I finished my second week on my schedule. My first week was a little rocky, but the second week worked better. I only missed one day of yoga and meditation.

I am really surprised, but my house is coming along a lot faster than I thought it would. After I started breaking it down into manageable tasks, I made a lot of progress. Knowing that I was going to give away or throw away a lot of my junk really helped.

After the initial excitement of getting house clean subsided, I was still left with an empty feeling. I thought maybe I was just lonely, but I tried interacting with other people and it didn’t go so well.

I’ve felt rather empty since I went to CocoaConf San Jose. I couldn’t really put my finger on why. I still really can’t. It might just be a new phase of the depression, but I am trying to figure out what to do to fill the hole in my soul.

The meditation and getting my house clean is helping, but I still feel a lot of melancholy about the direction my life is going.

Doing What You Love

I saw Brent Simmons talking about his reflections on getting older at CocoaConf San Jose. One thing that he said specifically really connected with me. He said to do what you love.

He said that he loves working with text and HTTP. I have things that I love that I don’t get to work with because I don’t know them well enough to really make a go of them.

I met my mentor Brad because I wanted to learn OpenGL and work with GPUImage. He hired me to come work for him, but we didn’t work with those things. We did this really amazing project where we rewrote our robotics software in Swift. It was an incredible experience and opportunity, but I felt like my iOS and Cocoa skills were atrophying. I also had to drive sixty miles a day and I had no time or energy to work on the things I loved.

I started working for Black Pixel recently. I work remotely. It’s been really nice to not have to drive two hours a day and never see my pugs, but I am still not working on the things that I love. This is to be expected. I am a new programmer and we all have to work on things we don’t necessarily love. I am not trying to be bratty or anything, I am just trying to figure out how to balance out what people need me to do with what I want to do with what I need to do to keep from falling into a depression.

I like to dream about just quitting my job and spending three months doing whatever the hell I want, but I know that wouldn’t happen. I would be okay for a day or two, then my lack of structure and deadlines and accountability would throw me into a depression and I would get nothing done. I dream about taking a coding cruise where I spend a week working on whatever I want with no distractions, but I know I would go crazy not being able to check on Twitter every five minutes.

I might be able to get to this point at some point in the next few years, but I am not there now.

I need to figure out how to put myself on a path that I want to be.

One thing a lot of people ask me is how I wound up working for Brad. I got to work for him because I was very targeted and focused on what I wanted. I had a list of five companies (including Black Pixel) that I eventually wanted to work for. I decided I would not take any job that did not further that goal.

I talked to so many of my classmates who would not just specialize and get good at one thing because they felt like they had to know a little of everything in case someone wanted to hire them to do any of them. So there are lots of people who I talk to who complain about being stuck working on Java because it pays the bills and it’s too hard to make the move to something they didn’t invest capital in, like iOS.

This scares the crap out of me. I am terrified of becoming an expert in something I hate and then being too apathetic to make the move to something I love because it’s too lucrative for me to stay with what I am doing. This is trap. This is the path to the Dark Side.

So what do I do?

Getting Back on Track

I need mental discipline. I need structure. I am starting to work with this by setting up a schedule for myself. Now that I am through the first few weeks of my schedule, it’s time to evolve it a little.

I want to be a graphics programmer. I need to spend time learning how to do it and doing projects. This is what I am adding to my schedule.

My plan is to do something every week and write it up on Sunday. I have a tentative list of things that qualify for that something:

Learning Project List

  • Make a decent OpenGL Template
  • Write custom shaders for GPUImage
  • Analyze and write-up an explanation of the math and code in a shader in GPUImage
  • Read a chapter in a book like “Metal By Example” or “iOS Drawing” and then do a sample project based on what I learned in there
  • Work through a tutorial on Core Animation, Sprite Kit, Scene Kit, etc…

I noticed that people tend to want to talk to you about things you talk/write about. Right now I am talking a lot about cooking and depression and getting my house clean. I am afraid if I don’t talk about tech that people will stop thinking of me as a tech person. I want to talk about tech that I want to be an expert in, so I need to make time for it because it is important.

I have a few larger projects I would like to work on, but I don’t want to write them here. I think last year I said I was going to spend this year building an analog synthesizer and it bothers me that I haven’t done that yet.

My goal here is to have several talks ready on graphics programming for the Spring conference tour. I would also like to be able, six months from now, to plan a vacation where I go on a cruise for a week and I actually have the mental discipline to get a sizable chunk of work done. I want a plan of attack on one of my projects and I would like to be mentally at a point where I can take advantage of that situation and be productive.

Shout Outs

I want to give a shout-out to my boss Janene at Black Pixel. I tried to talk her out of hiring me because I am a mess and she told me that she knows and wanted to hire me anyway. I am going through some issues right now that I have been avoiding for a while. I feel like running away from my life sometimes. It’s helpful for me to get toxic thoughts out of my head and she’s been very kind in letting me just get them out even though I know they sound really bad.

I was worried when I left SonoPlot that I would lose my mentor, but I gained another one. I gained one that I need right now and I appreciate her helping me figure out what I am doing with my life.