The Pervasiveness of Alcohol in the Programming Community

Several months ago I decided to cut back on drinking. Basically I woke up in the middle of the night and just kind of decided I didn’t want to do it anymore.

I have been going to therapy for the last few months to try and work through some issues and sadly my self medication with alcohol is one of those issues. My therapist keeps telling me I am a recovering alcoholic. I dislike that characterization. I think I had a rough couple of years and I drank to numb myself and escape my problems. That might be the definition of an alcoholic, but I still dislike the characterization.

I thought I could just cut back to a normal amount, but since I gave it up I can’t drink without becoming violently ill. I blew a conference talk because I was suffering from severe illness after a night of drinking with my friends. At NSNorth I drank wine at dinner (and didn’t even go through all my drink tickets) and was so violently ill the next day that I had to spend several hours curled up in a ball on the floor in the corner because I couldn’t stand up without a great deal of nausea.

I have somewhat accepted that I probably can’t drink anymore. I am trying to adjust to a life without alcohol. Since I have abstained from it, there are a bunch of things I have noticed that I wanted to share.

Identity

When I was younger I wanted to be Marion Ravenwood. I loved the scene from Raiders of the Lost Arc where she drinks the guy under the table. I loved that she didn’t put up with anyone’s shit. I thought she was awesome.

I found a lot of alcoholic role models in my young adulthood. Lucille Bluth. Dorothy Parker. The characters in Mad Men.

I'm fabulous and will not put up with your shit.

I’m fabulous and will not put up with your shit.

Alcohol, especially whiskey and other hard liquors, is very masculine. I would try to impress guys by ordering scotch and whisky drinks. There is some feeling of power that comes with ordering whisky. You feel like Don Draper or Peggy Olson. Laymen drink beer. Executives drink scotch.

It can also be very feminine ala the emergence of the Cosmo from Sex and the City. It was fun to go to the bar with friends and hold a pink drink and be girly in a large group of men.

I felt like I could adopt a personality based on what I felt like drinking. I would relax and other people would relax too. I would have deep conversations with people who would let their guard down and tell me things they would normally not say out loud in front of other people. It felt like an intimate experience where you could be with someone who would let their inhibitions down.

I miss alcohol.

I feel like I lost part of my identity. I know that it was not good for me. I gained twenty pounds since I started programming and most of it is from alcohol.

I keep getting emails from cruise lines trying to get me to book a cruise. If I can’t spend the whole cruise drinking then what’s the point? Why does anyone else even go on a cruise if not to have an excuse to drink at 8:00 in the morning??

For a long time I had no idea how to spend the hours between when I finished work and when I had to go to bed. I realized how boring nearly all of my activities were.

I miss the taste of it. I miss the relaxed feeling I got when I had the first drink. I miss going to the store and looking at all the different options I had for wine, liquor, and hard cider. I miss trying new stuff. I miss the glassware. I miss feeling like a grown up sophisticated person and not just a hermit from rural Wisconsin who hides in her house with her pugs and her programming books.

Which leads to my next observation.

Community

It’s weird to me about how big of a part of my life it became. I never drank in college. I went to one beer party and drank soda and didn’t even process that I should want to drink alcohol. Considering I went to a party school in Wisconsin, that’s rather remarkable.

I didn’t have any sanctimonious reasons for not drinking. I just didn’t like the way it tasted. I saw my classmates drink whole bottles of vodka in an evening and black out and not remember what happened the next day. One friend broke her ankle and didn’t remember how it happened and I had to try and help drag her to the campus medical center while she tried to keep herself from throwing up from alcohol poisoning. I didn’t understand what the appeal was of doing this.

I also wasn’t really social in college. I spent most of my evenings in my dorm and later my apartment watching DVDs and doing cross stitch projects. I never really had friends or a community, so I just kind of kept to myself and it wasn’t part of my awareness.

It was probably telling that the first time I ever got drunk was at my bachelorette party. I didn’t drink until I got married. Most of my social activities with my husband revolved around alcohol. We went to dinner at hipster bars with Prohibition-era cocktails. We would go camping and drink around the fire.

I am not totally placing the blame on him. I embraced this lifestyle. I would push to go to certain restaurants over others because I liked their drink menu best. I kept drinking after he moved out and we got divorced. I just remember that most of the good memories I have about being with him revolve around drinking.

I also noticed that most of my social activities are severely curtailed without drinking. Most of my friends brew beer and make wine and mead. They spend their nights at bars playing games. A friend of mine keeps telling me I should move to a more expensive place downtown so we can randomly go to the bars on the spur of the moment and go out drinking with him.

There have been a lot of conferences I have gone to that have social activities at breweries. I was always annoyed that most of these places didn’t have wine, but they also didn’t have non-alcoholic options either.

Me at my heaviest. I would prefer not to stay here.

Me at my heaviest. I would prefer not to stay here.

I am thinking back on all of the conferences I have attended over the last two years. There are open bars with wine and sometimes cocktails but I have no idea what, if anything, they had that was non-alcoholic. They probably had mixers like cranberry juice and Coke. I am not blaming organizers. I know that it’s far more common for event caterers to just have wine or beer packages for events. I am not going to be pissy because organizers don’t make sure there are things like mocktails or better dry options. I am just saying it’s something that has been so pervasive in the fabric of the conference scene that it is like oxygen. It’s just there. You don’t think about it or notice it until you can’t do it anymore.

I have never been pressured into drinking. I have been the one pushing the whole “let’s all drink right now!” bandwagon. That was wrong. I would like to try and rectify some of the passive damage I have contributed to our community.

A lot of the conversation we have in the programming community about alcohol abuse tends to revolve around the possibility of sexual assault. It is an insulting argument that puts pressure on women to abstain from alcohol to avoid being raped. It also is like a parent who will take the ball away from everyone just because one person is being a jackass.

We’re getting better about talking about mental illness and I would like that to also include how we talk about and deal with alcohol. I would like there to be better and more prominent choices for non-alcoholic beverages at conferences. I would like people to think more about what they are doing rather than just grabbing a beer because it’s there and it’s what everyone does.

We’re all self medicating from punishing crunch times and crippling impostor syndrome. It’s an escape from the pressure we’re putting on ourselves to avoid having to confront any of the very real problems that we have with how we deal with stress in our community.

We, as young adults, don’t seem to have healthy social outlets for socialization that don’t revolve around drinking. I understand that it lowers inhibitions, but I feel like I can’t go out and do anything socially because I don’t want to drink.

I am not trying to be sanctimonious and tell people not to drink. I just would like people to have some awareness of what they are doing rather than just treating it like oxygen. Now that I can’t drink I am seeing lots of things I never noticed before and it worries me.

What Makes an Advanced Programmer?

Right now one of my side projects is learning C++. I want to write game engines and program micro controllers on robotics projects and do a lot of other work that requires a lower level language like C and C++. I already do a decent amount of work with graphics and audio programming where most of the resources are C/C++. I eventually want to learn assembly language, so if anyone has any suggestions for that, I would greatly appreciate it!!

For years I have heard people warn me away from C++. Everyone says that there are a lot of sharp edges and it was a poorly designed language and how much better a language Swift is. I haven’t delved into this enough to determine if that is the case.

What I do notice is that there are a lot of learning materials out there for beginning developers. Right now I am working through a book called Beginning C++ Through Game Programming. Even though it’s going over a bunch of concepts I already understand like “for” loops, it’s still helpful for me to actually type out the code. For me, I learn by doing stuff. I learned iOS programming by doing the tutorials in the Big Nerd Ranch book over and over again. Having some C++ typing exercises helps me to just get a feel for the language.

But this has made me think further about the nature of this book. It’s an introduction to C++. It goes over all the basic stuff you would go over in an introductory programming class. How do you go from this to advanced programming?

I know there are a multitude of books by Bjarne Stroustap about C++. There are books on C++ for the impatient, the fearful, and the overly optimistic.

I don’t understand what makes something an advanced book for a language. My starter language was Objective-C with the iOS frameworks. Any general iOS book, by its nature, is a beginner book. There are books on Swift, but we don’t have advanced and beginner Swift books. Most of the “advanced” books I see on iOS/iOS related technologies are all on frameworks and APIs. There are books on OpenGL for iOS, AVFoundation, Core Data. There is no Advanced iOS book. What would that even include anyway? The whole point of iOS is to get the programmer familiar with UIKit, one of the languages used for iOS programming, and how to look at the documentation for any other framework they would need to understand.

How do you have an advanced C++ book? How do you become an advanced C++ developer? Do my experiences with working on sustainable software implementations apply to my experience level with C++ or is there some magic thing I have to do that is C++ specific? What projects do I work on to be a better C++ developer? Is C++ like iOS and Java where it’s all about the libraries that come with C++? Are there books on the C++ libraries like there are for iOS?

I feel like we, as a community, are very competitive about who is or is not a good programmer. I think we feel that the longer you’re a programmer, the better you will be. It doesn’t matter if you haven’t progressed at all in the last five years and you don’t think introspectively about how to do better. We all want to prove that we’re a 10x developer. We spend so much time talking about how great we are at programming that I don’t know that we have any kind of consensus about what a great programmer knows how to do and how they’re different than a beginning programmer.

For a while I thought that having a great understanding of design patterns made you a great programmers. I don’t think they hurt, but I don’t think that is the be all and end all of programming. I am now in the camp of saying that having a good understanding of the problem you’re trying to solve and making sure your code is readable by beginning programmers is the mark of a great programmer, but as I grow and evolve that might change as well.

I know you can’t package experience in a book like you can a tutorial on how a “for” loop works, but couldn’t we at least have a general direction we can send people in to develop these skills on their own? What makes a great developers? Having a project that has more than ten classes in it? Maintaining a framework for five years? It used to be publishing an app on the store, but I don’t think that is the hallmark of a great programmer because I notice they tend to get abandoned after a year and so you’re not around long enough to be pissed at yourself for putting singletons everywhere and then deciding to go back and rewrite the code in a more maintainable way.

I find my skills do not develop when I am thrown on a project for two weeks where I am just trying to not break the code until I am pulled from that project and put on something else. I am not developing skills when I don’t have a problem I am trying to solve or a cohesive project with victory conditions to complete. I had those at my first programming job and I don’t have them anymore and I feel completely adrift. I have no idea how to get myself back on track and do those things for myself. Anything I do on my own feels too small for me to really learn from or else it’s entirely too large and becomes daunting to me.

I would like a project or a framework or something with a great deal of complexity that I have to maintain for a number of years and possibly have to coordinate with other people. I am trying to find an open source project I can do this with so that I can try to push myself to be a better programmer. I would like to understand why everyone hates C++ and be able to just get to the point where I can work on something and go “Oh, so THAT’S what everyone was warning me about!” I can’t do that with the abstracted books out there and I don’t think I can get a job doing C++ without having actually demonstrated knowing how to avoid getting bruised by it and I don’t see any way to get experience with it except to find a job.

If someone has a simple solution I would love to hear it. Sometimes I feel like nothing ever changes and we’re just doing the same thing over and over again in different flavors of C.

TeachYourselfProgramming21Days

My First Year Being Alone

One year ago today I went to a court house to dissolve my marriage. I was married for a little over five years to a man I have known since I was a kid. I don’t remember how we met because it was so long ago. We gave things a try and they didn’t work out.

This last year is the first year of my life where I have really been on my own.

I didn’t really have a lot of relationships. When I got engaged to my ex I hadn’t had a boyfriend in over ten years. I didn’t date at all when I was in college. When I married my ex I didn’t really have any career prospects and I was afraid that I had missed my opportunity to meet anyone and to get married.

I lived with my parents until I was 27 years old. I had been diagnosed with bipolar disorder when I was 16. I don’t think I ever had bipolar disorder. I was being sexually harassed by a number of people at the school I was attending (including the priest who taught our religion classes) and basically instead of doing anything about it, everyone just decided what I was saying couldn’t possibly be true and I must be crazy. I spoke to some of the people I went to school with over the last few years and they agree with me that something was terribly off about our school and that it wasn’t just me.

I spent ten years being medicated for an illness I don’t have. Those medications clouded my mind and destroyed my ability to function. I spent ten years being told that anything that I felt or observed that was inconsistent with what other people wanted to believe was wrong and I could be discounted because I was crazy. I was sometimes actively targeted by people who knew they could bully me and people would let them because I was the weird crazy girl. I was told to hide who I am and pretend like I was normal to avoid all the trouble people cause me. I was told not to set my sights too high because I was never going to accomplish anything and that just getting through college or holding down a job were high enough aspirations.

I am not recounting this to get sympathy or whatever. I am simply trying to explain why I didn’t have a job or live on my own until recently. There was a period of time where I didn’t think I would graduate from college. I never thought I could hold down a full time job. My self was slowly being hacked away over the years and I lost track of who I really am.

I married my ex-husband so that I could have a future. He seemed like a stable person and I had no stability in my life. He had direction and I wanted to have a better life. So I married him and we moved into our house six and a half years ago.

Things did get better. I got my first full time job. It was working at Target, but I did that job for a year. Then I got a better job and held that for a year and a half. Then I got a miserable job that eventually lead me to programming. I went back to school, I networked, and I now have a really great career.

Sometimes I forget where I came from. I forget how miserable and hopeless everything seemed in my twenties. I forget there was a period of time where I missed half of my classes because of various mental health issues. I forget that a teacher told me not to set my sights too high and I should just focus on finding a nice little town with a nice psychiatrist to settle in. I forget consistently being told I will never amount to anything and won’t do anything special or important with my life. I have a life I never thought was possible. My highest aspirations when I was 25 was to have a quarter of what I have now. It’s a miracle to me that my life exists.

Even though it’s a miracle, I still have felt a great deal of depression over this last year. I feel like I have no right to feel this way. I should be grateful for what I have, and I am. I shouldn’t want more, but I do.

This past year has been incredibly upsetting. I have never had a time where I had to figure out who I am. I have never had to pay my own bills. I didn’t know if I would run out of money because I did something stupid like buy too many books and so I wouldn’t have heat. I was afraid I would forget about paying my property taxes and lose my house. Those were the first insurmountable things.

After that, I found other things insurmountable. I am just now starting to figure out what I want to do with my house. I never decorated it or organized it because it was simply too overwhelming. I also wasn’t committed to staying here since there was nothing keeping me here anymore. I was deeply ambivalent about it. I also had a worry that if I started treating the house like it was mine that i was precluding the possibility of letting another person into my life. I know from my experiences with my ex that he treated the house like it was his house. He begrudged me any space in the house because he thought of it as his. I know that if I paint the house and bring in all of my bookshelves and I fill all the space in the house, I am basically enforcing that I have no room in my home for anyone else except me. I am afraid that the longer I am by myself, the less likely it is that I will ever feel comfortable letting another person in.

I don’t want to be alone forever. Being alone right now is fantastic. I can do whatever I want. I haven’t put my laundry away in over a year. I don’t have to coordinate what I cook with anyone else. I don’t have to spend my weekends being dragged around by my significant other when I would rather be at home working on my electronics projects. Being alone right now is great, but I don’t want to be alone for the rest of my life.

One thing I didn’t count on with the divorce was the deep depression I felt. I had fantasies about spending long glorious weekends programming and working on electronics projects. I thought that if I could control all of my time that I would have this golden productive period where I would get so much done. A lot of days it was a struggle just to get out of bed.

I miss being touched. I don’t think my husband and I were particularly physically affectionate, but apparently it was enough that I didn’t feel the overwhelming ache that I feel every day now from not being touched. I sometimes will lay on my stomach on the floor because the weight being applied helps with the pain. The pugs help with the pain too. One reason I adamantly wanted to work from home the last year or so is that if I can’t touch the pugs I fall into a massive depression because of lack of physical contact with another living thing.

I read a while ago about some company talking about doing cuddling as a service. I would be all over that. I keep having people telling me I can get guys to take me on dates so I can be touched, but that tends to lead to things I am not ready to do yet and I think it’s fraud to pretend to be into someone just because you miss being hugged. I would like it if I could just pay someone to cuddle with me for an hour and leave and know it’s not going anywhere.

People have suggested online dating, but I really don’t want to go there. I have spent a lot of time and energy avoiding the vast awfulness that is The Internet that I don’t want to open myself up to unsolicited dick pictures and verbal harassment from guys who are mad at me for not responding to their dick pictures. I would like to find someone through networking like I did with my job, but in spite of the reputation that programmers have for being antisocial neckbeards most of the men I encounter in our community are married and in long term relationships. That being said, DON’T ASK A WOMAN OUT AT A PROGRAMMING CONFERENCE!! EVER!! Those are professional events and I go to them for professional reasons, not to meet men.

So why am I writing this blog post? I am writing it partially because I have had a number of people over the last year come to me to talk about their pending divorces. I wanted to share my experiences with depression after my divorce because those feelings are normal. Even if you were the one who wanted the divorce, you’re going to feel sad. It’s okay to feel sad. Don’t beat yourself up because you have days you can’t get out of bed and the world seems hopeless. Don’t beat yourself up if you don’t do all the stuff you thought you were going to get done once you were alone. You’ve gone through a trauma and traumas take time to heal.

Also, don’t necessarily rush into a relationship immediately after getting divorced. Even though it’s painful and difficult, it’s important to be alone with yourself for a while. It’s important to know who you are and what you want from life. If you immediately jump into another relationship with someone, you don’t have time to process why your last relationship failed. I think we’re all so eager to avoid being unattached because it’s somehow socially deviant that we’re setting ourselves up for failure because we are treating being in a relationship like being in a job. You can’t be unemployed. If you are, then there’s something wrong with you. There’s nothing wrong with being alone and deciding that you’re not going to give up your freedom for someone unless they’re special. Also, get a pug. Pugs are great at snuggles.

Last thing I want to do is thank this community of people. I would not be here right now if it wasn’t for the people in this community. I thanked everyone for being awesome this weekend and someone thought I was leaving programming. That’s not the case at all. Programming has given my life meaning and direction over the last few years.

I want to thank Eric Knapp for teaching me how to program and letting me ask him the same stupid question over and over again because there was some nuance I didn’t understand that was bothering me. I want to thank Emily Van Haren for holding me in the hallway at school when I broke down sobbing because I didn’t think I could continue on anymore because life was too difficult. I want to thank Josh Smith for getting me to talk to Dave Klein about speaking at CocoaConf and changing how I thought about myself. I want to thank Chris Adamson for being one of my first mentors and for helping me fulfill my lifelong dream of writing a book. I want to thank Brad Larson for helping me to solidify my programming skills and for giving me the job I needed to be able to leave my ex-husband. I want to thank all of the conference organizers who let me speak at their conferences when I was nobody and unemployed so that I could network with people and have a future. Lastly, I want to thank everyone I have met, everyone who follows me on Twitter, and everyone who reads this blog. I spent my whole life being told to hide who I am because no one would ever accept me. The amount of support and acceptance I have received from this community is something I never thought was possible. I would not be here without that. So thank you.

The Great TV Binge Quest of 2016

The last few days I have been asking people for suggestions for shows to binge. When I am cooking or doing something where I am not just watching TV in a dedicated manner I want something on in the background that I can tune in and out of without missing too much stuff.

My go-to default for most of my life has been Law and Order. I have seen most of the episodes so many times that once when I was waiting to go to the airport from a conference I saw the end of an episode with the sound off and I not only knew every detail of the story, but I knew that was the season finale of Season 14. That’s incredibly pathetic.

Law and Order was great because for a period of time in the early 2000s it was on ALL THE TIME. There were three cable channels that had it on. There were three iterations of it in NBC. If you were trying to kill twenty minutes with the TV on, odds were pretty good you could just throw on an episode of Law and Order.

Since I cut the cord and apparently cable TV has moved on to other shows, this is no longer the case. I have spent a good portion of the last six years trying to find a replacement for Law and Order. It isn’t that I think Law and Order is the greatest show that ever existed, it just had the right combination of characteristics that made it ideal for the purposes I had.

What makes an Ideal Crappy TV Show To Binge

Here are my criteria for what makes a good background TV show:

  • Must be at least five seasons long
  • Can’t be too engaging
  • Has to be somewhat repetitive
  • Has to have procedural elements

So far the best show I have found that meets these criteria is Grey’s Anatomy. I started looking for shows on Netflix that had at least five seasons and even though I really didn’t want to, I gave it a try. It’s actually quite a good replacement for Law and Order. It’s been on for a long-ass time and it’s going to keep going for a while. It has serialized elements in being a soap opera, but each episode has procedural elements where there will be some patient or case people are working on. There will be some kind of surgery. You can walk away for five minutes and still be able to kind of figure out what is going on.

Top Chef and Project Runway have worked pretty well too. Since they’re game shows the generalized structure of each show is the same so you can figure out what is going on if you stop paying attention for a while.

Shows That are Too Good

One problem I am having is people recommending shows that I should sit down and actively watch rather than garbage I can just have on in the background.

Breaking Bad is not a good candidate for my purposes.

Supernatural is also one that I can’t binge on. I have slowly worked my way up to season five, but it’s not something I can just passively have on for five hours.

Pretty much anything that has been on cable with abbreviated seasons like Mad Men and Halt and Catch Fire are not good candidates because I want to actively watch them.

Any prestige TV is not a good candidate for my purposes. Prestige TV is something you watch to be actively engaged. There is a time and a place for Prestige TV, but when I just want a steady stream of macaroni and cheese I don’t want to deal with prime rib.

Shows That are Too Engaging

There are so many shows that are disqualified because they require you to pay attention. One of my early candidates to replace Law and Order was NCIS. That stupid show is way too intricate for what it is. You have to pay attention to every single thing people say and do to know what is going on. I listened to an audio commentary from the actors where they got distracted for a minute about something and were like “Wait, what just happened? Why are we in this basement now?” It’s not worth the mental capacity to pay attention to what is going on to get through the entire series.

The West Wing is nothing but people walking and talking. You have to pay attention to every bit of dialog and after a while it gets incredibly preachy and irritating because it’s the world as Aaron Sorkin wishes it would be rather than the world that it is and it just makes me angry and thinking about politics and then I can’t deal with anything anymore.

Shows I have Already Seen

People have suggested some really good shows. The issue is that I have already seen those.

These include, but are not limited to, the following:

  • Battlestar Galactica
  • Futurama
  • Buffy the Vampire Slayer
  • Scrubs
  • Firefly
  • Doctor Who
  • Lost

Part of the issue is that I don’t want to just get into a rut where I watch the same show over and over again. There is scary amounts of stuff out there that I haven’t seen or read. Even if a book is shitty or a TV show goes off the rails, it’s still good to explore and absorb new things.

I find myself coming back to shows I have already seen like Alias and Chuck, but I would like to contemplate the possibility that there is an amazing show I haven’t seen yet.

That is what happened with Fringe. I tried to get into it a few times, but the first season was kind of slow. My affection for Walter got me through the rocky first season and I discovered a show that I actively looked forward to watching to see what would happen. When it was over I was so happy with how it wrapped up. It was like finishing a great book. But then I was sad that it was over and I can’t see it for the first time again. I want to hope there is something else like that out there and I won’t find it if I just keep watching Grey’s Anatomy over and over again.

Potential Binging Shows

Here is an informal list of shows that I keep forgetting exist that meet my criteria:

  • CSI (I watched it up through Season 7, so technically haven’t seen most of it)
  • Medium
  • Crossing Jordan
  • The X-Files
  • Star Trek: Deep Space Nine and Star Trek: Voyager (saw DS9 all the way through when it aired but not since, could never get into Voyager)
  • Stargate:SG1, Stargate Atlantis, Stargate Universe
  • Person of Interest

A lot of these are older shows. I think that with Peak TV come with the death of the kinds of shows I am looking for. Peak TV is similar to what is going on with film. There are lots of incredible prestige shows that demand constant attention and prompts rabid fan discussions on the internet. Then if you’re not a prestige show, you’re something like The Big Bang Theory. There is a huge amount of really bad, not funny or smart TV that is too bad to be good for having on in the background because when you do pay attention to it, you recoil in horror at the sexist, homophobic garbage being spewed.

There does not seem to be much of a demand for shows without vast mythologies and serialization that is fairly repetitive. Ironically, I am basically looking for the TV equivalent of the Marvel Movie franchise. Those movies are awesome. They are basically the same story over and over again with some variation in the setting and the primary hero.

I realize that by writing this huge blog post complaining about not finding bad TV to watch that it makes me seem like a couch potato neck beard who never leaves my parent’s basement. I think of this stuff as white noise going on in the background. It’s like trying to find a good radio station to listen to while you work. It’s hard finding music that helps you focus and doesn’t just make you flip through stations going “Nope, nope, hell no, aw this is the end of my favorite song and now they’re playing something I hate!”

I will continue my mission to explore strange new worlds. To seek out new shows and new storytelling. To boldly go where lots of other people have gone before!

Minuet in G

A few weeks ago I read this article about the right way to practice. The gist of the article is that we as human beings are able to do extraordinary things that we weren’t able to do a hundred years ago. The world record for a marathon a hundred years ago barely qualifies for a competitive marathon now. It isn’t that we have somehow evolved tremendously over the last hundred years. It’s that we’ve gotten better at learning and doing productive practicing.

Part of this resonates with me because of my experience with playing the piano as a kid. I was naturally good at it and no one ever made me practice or showed me a way to practice more effectively.

I progressed to a certain point and would play songs for fun and I just never got any better. I went to college and started taking music theory classes and I got overwhelmed by a bunch of stuff and shut down and just stopped playing.

I was still very interested in music and sound, but I abandoned music as a hobby. I moved out of my parent’s place about seven years ago and never brought my piano with me.

This topic interests me because I am seeing similar patterns of behavior with myself and programming. I am not going to say I feel I had the same aptitude for programming as I had for piano. I always felt incredibly stupid and out of my depth, which ironically is why I got good at it because I worked on it all the time.

I did targeted practice with programming where I would write a difficult piece of code over and over again until somehow my brain would process what it did and I would have an understanding of what the code does.

Unfortunately, there is not a lot of material out there for people who are not beginners. There was a great blog post about why programming is hard. When you’re a beginner, there is a lot of hand holding. There is a multitude of learn to code sites, including the one I used to learn to code, where you get walked through targeted practice that makes you learn better.

Once you get past learning the basics, however, you’re kind of tossed off a cliff to fend for yourself. My observation of the programming community has been that most people plug along until they reach a level of competency that allows them to be employed. We as a community assume that if a person has been programming professionally for 10 years then they must be better than someone who has been programming for three, but that is not necessarily the case. We tend to reach a level of proficiency and we don’t get any better unless we continue to push ourselves to improve.

But how do we do that? How is that measured?

It’s easy to see how you have improved with the piano. If you can tackle and master a difficult piece, then your results speak for themselves. If you aren’t getting any better in spite of hours of practice, then you’re doing something wrong. It isn’t that you have naturally hit your level of expertise, it’s that your not practicing effectively.

I also think that we tend to write off that we, as adults, are capable of learning extraordinary things. This other article talks about how impossible it is to take up chess at a later age because young children have vastly more potential to learn than adults do because their brains are flexible.

My reaction: So what?

I remember being a kid. I had no disciple. If I was good at something I didn’t work really hard at it and if I was bad at something I just avoided it altogether. I sucked at sports and running and I never thought that I could do anything to change that by working at it.

I basically squandered all of my childlike potential to be a super genius because I was stupid and didn’t do stuff. I refuse to believe that I am not capable of pushing myself now to be better than I was a year ago. I would rather believe in the first article about the effect of productive practice than be told that if I don’t start something by the time I am five that I am screwed and will never be great at anything.

So What Does This Have to Do with Minuet in G?

I am at my parent’s place today for Mother’s Day. One of my goals this year is to get my piano moved back to my house.

When you can't find sheet music...

When you can’t find sheet music…

I was curious about trying out this targeted practice thing with something I hadn’t done in a while, which was playing the piano. I was curious about why I never got any better. What did I do wrong besides not practice enough?

I picked Minuet in G because I believe it was written as a learning piece by Bach and I knew it was a relatively short and simple piece of music. I figured it was something I could sit down and get close to mastering in a few hours.

After hacking a solution to try and actually get the music in front of me, I sat down to practice for about an hour.

The first ten minutes of shaking off the rust were kind of demoralizing, but after I had warmed up a bit things got better.

The biggest thing I noticed while I was playing was that my fingers liked to overcomplicate things a lot. In the first half of the piece, the left hand does very little. It basically holds notes for long periods of time and doesn’t need to move around to hit the notes. I noticed that I had a strong urge to reposition my hand constantly even though there was no point in doing so. I would make a lot of mistakes because my hand was positioned in a place where it could not reach the notes.

Then, in the second half of the piece, where the left hand has more to do, my hand could not plan out where it needed to be. It would get very confused and keep hitting wrong notes. I think my brain felt like the only fingers that it had to work with were the thumb and first finger. Using the last two fingers on the hand always feels quite strange to me.

I also noticed that when I was working on the easier parts my brain would get distracted by being bored and I would stop paying attention and then I would make mistakes. This fits into what I remember as a kid. I liked fast pieces with a lot of movement on both hands because I would screw up easier stuff where I didn’t need to do as much because I would get distracted.

After I realized these issues, I was able to fix them. I would practice with the left hand by itself a lot and plan out how to avoid moving my hand as much as possible. I would get distracted and move it and I would force myself to only think about what measure I was currently playing.

By doing these things, I was able to improve much more quickly than I would have if I had just sat down and tried to play over and over again until I didn’t make a mistake.

How Does This Apply to Programming?

I don’t know yet.

I know there has to be some way for me to apply to programming what I did to the piano. I think it’s different in that with piano you know if you’re doing poorly immediately because you get the feedback of wrong notes. It is more difficult to know when you are programming badly because at a certain point you stop getting weird compiler warnings and stuff builds, but it’s not necessarily the best or fastest you can do.

I am going to continue to drive people nuts with my blog posts about the learning process because I find it fascinating and I don’t want to resign myself to the fact that I will never be a great programmer because I didn’t start when I was five. I think I can train myself like chess grandmasters and Olympic athletes can do. I don’t know how yet, but I have faith that it’s possible.

The Fig Tree

I have been doing some soul searching for the last six months or so. I have written on my blog about suffering from some massive burn out. I had reached a point a few months ago where I honestly didn’t think I could cut it as a programmer and thought about leaving the industry to do something easier.

I took some time off to regroup and figure out what I was going to do.

During that time I happened to have a lot of conference talks and trips that I had lined up a long time ago. While the constant travel was exhausting, it was genuinely wonderful to see so many members of the community. I got to see old friends and make some new ones.

I also had a chance to calm down and actually see what life was like if I wasn’t programming every day. Honestly, life without programming really sucks.

When I wrote my first shader program and debugged it I felt like I had come out of a coma. I knew that this was something I could do, but I knew I wasn’t approaching it properly.

I thought the problem was that I was programming too much. It isn’t that I was programming too much. I wasn’t actually programming enough in the right way.

Before when I was having emotional crises I would sit down with a programming book and actually work through the exercises. The summer I couldn’t find an internship my ex-husband lost his job. He was home all the time and that along with another situation lead to me having a nervous breakdown.

I went to a friend of mine, Stephen Anderson, and asked if I could squat at his company for a few days a week so that I would have a calm and quiet place to work. He was very kind and allowed me to work out their office for two months.

During that time, I worked through Chris Adamson’s “Learning Core Audio” book. I would come in, set up my computer, and type through all the exercises in the book. Doing that refreshed my soul and helped me learn a lot and get through that horrible period of my life.

I hit a point where I felt like I was too “advanced” to keep relying on tutorials and I tried to transition over to working on projects. But by that point I was working for people full time and working on various books and projects and sometime never came.

One of my goals in 2016 is to release an app. I quit my work at Ray Wenderlich, withdrew from my book obligations, and I put down the podcast so that I could focus all of my energy on this task. It’s May and I have nothing. So what do I do?

Focus

First thing I need to do: FOCUS!!!

I named this blog post after a quote by Sylvia Plath. The gist of this quote is that there is a woman who is privileged to have many different futures and opportunities. However, she can only choose one. Choosing one means giving up all the others and she can’t decide. As she sits indecisively she loses her opportunities because she waited too long.

This feeling of so many choices and none of them being real is a theme in many things. This theme shows up in the Harry Potter movies as The Mirror of Erised.

One of the things I have never publicly admitted before is that I do Tarot card readings. One of the cards is the seven of cups. This card symbolizes a person looking at many different goals and interests and possibilities but none of them are real because the person in the card hasn’t manifested them yet.

I talk a lot on here about my various interests. I like electronics. I like graphic design. I like audio and graphics programming. I like Swift.

I can’t do everything I want to do.

I talk about wanting to be an audio programmer or a graphics/Metal programmer, but if I am honest with myself I am not those things. I don’t have the right to label myself as such because I am not focused on it.

It feels good to say you want to do something. It feels good to buy books and put on various trappings of a person doing something. But the only way to manifest what you want is to put in the work and just fucking do it.

All of the things I am interested in require deeply focused effort and knowledge. I had a similar revelation when I was learning programming. I spent at least sixty hours a week for over a year just coding. I dropped all of my other hobbies and interests. I would have fights with my ex-husband because he wanted to go to a movie and I didn’t want to be torn away from my screen.

I miss that. I want to get back to that on something. I want there to be something that is so vitally important to me that I focus everything I have on it to the exclusion of all other things.

I had to step back for a while to figure out how to heal myself so that I can go back to being that person and to figure out how to avoid feeling like I did earlier in the year.

Work Efficiently

The biggest thing I can do is work efficiently. I need to avoid doing things that feel like work but aren’t. I need to code a lot. I need to make sure my focus is not fractured.

I also need to learn to disconnect from the keyboard. I am doing better in this regard. I bought a bunch of analog books that have nothing to do with programming. I have (mostly) stopped taking my iPhone with me to the bath tub.

I am deeply sad about abandoning my electronics shop in the basement. This post came about because I saw someone on Twitter posting a picture of their new Raspberry Pi setup and I really wanted to go out and buy a new Pi and a bunch of other stuff to do what they were doing. However, I have done this before. I have a giant nest of electronics components and Arduinos and Pis in the basement that are basically untouched.

I keep telling myself that I can work on it as a hobby. I spoke to my teacher Eric Knapp on Twitter yesterday about setting up a wood working shop in the basement. I have a weird obsession about setting up some kind of shop in the basement because somehow I think that having a non-programming hobby will solve all of my problems and life will feel meaningful again.

It’s all just me running away from reality.

I keep thinking there is some easy answer or escape from how I feel right now and there isn’t. Well, there is, but I don’t like where that route takes me.

If I want to go where I want to be, I need to embrace the hard road. I didn’t prepare myself for it last time and I ran out of food and had to go back home to lick my wounds. I know more now and I think I can do it.

I have to simply my life and just pick something and stick with it. I have to know that it’s going to be a long road and that I can’t let myself be distracted by the new shiny thing. One good and bad thing about programming is that there is not just one right choice to make. Someone who chose to learn something like Node.js isn’t kicking themselves because they didn’t learn Swift. There is a lot of opportunity in the programming world for a lot of people with a lot of various skill sets.

I talk to people who feel like they have to know everything because someone might need them to know PHP or Java or Perl.

You don’t have to do this. In fact, there are better opportunities out there if you specialize in something. I guarantee you there is a job out there for someone with deep knowledge of Perl. Choose your own adventure. Pick a path. Stick to it. Make something. Own it. Stop dreaming and manifest.

Practicing Scales

I have been rather discombobulated over the last several months. I had a number of upheavals in my life. I left a job and started another. I traveled to a new place every other week. I spoke at many conferences.

I have been running ragged for a few months now and I am trying to get myself back into a better mental state. Since I get to stay put for a while, I am trying to figure out a better routine for myself to help me shake off the last of my burnout and to prevent future burn out.

What I Do For a Living

One thing I have been struggling with is making time to code. I know this sounds incredibly stupid considering I am a professional programmer. Don’t I spend at least 40 hours a week coding? Isn’t that what I am being paid for.

Well… not really.

A lot of my job over the last year has been looking at other people’s code and debugging it. Or looking at other people’s code to learn how they did something. Or reading documentation to make a sample project to show how to do something.

I had a few large projects over the last year such as wrapping libXML2 in Swift. This project took between two and three months. The first month, at least, of this project consisted of me staring at code I did not understand and then staring off into space waiting for my brain to compile it. I had panic attacks that it would never click and I would fail and all hope would be lost. Then at some point I woke up in the morning and I understood the code. This happens to me a lot and I find the process quite terrifying. I keep worrying that it won’t all pull together for me this time and I am just living on a prayer.

Regardless, during this compile time, I did not code very much. I didn’t understand the code I was supposed to work with, so I couldn’t write anything. I couldn’t work on a tutorial or something else because it wasn’t what I was supposed to be working on. So I spent a good chunk of time walking around outside with headphones on waiting for my brain to make sense of things.

I don’t like this process.

Right now I want to learn C++. I am interesting in game engine programming, audio programming, and other low level programming that at this point is only being done in C++.

I went on Twitter and asked for some advice for resources. I got these responses:

  • Why are you learning C++? Why not just do it in Swift?
  • You can’t learn from books. You can only learn from projects.

First off, not everything can be done in Swift. It just can’t. It would be nice, but we’re not there yet, so this is a non-starter.

I have written about my personal experiences from not learning from books so it isn’t that I completely disagree with this statement. I just think that there is a happy medium between “learn from books” and “learn from projects.” That medium is the tutorial.

In Defense of Tutorials

I have heard a lot of people talk about learning code from videos and podcasts. They put a podcast on their iPhone or just take the audio track from a WWDC video and throw it on while they go for a jog.

I envy those people.

I know this is ironic from someone who used to do a podcast (and plans to get back to doing so soon, I promise!), but I don’t like listening to podcasts or videos. It drives me crazy. I need something interactive. Listening to someone else talk and not being able to have a back and forth and ask questions makes me completely insane. I have no idea how anyone learns this way.

I went to school for programming twice. The first time I dropped out because I followed the “Just learn from projects” line of advice. I would do a bunch of research into how to do my homework. I would do it once, then I would never do it again. I never learned or retained anything I did. I aced my exams but I had no fucking clue how to code.

It was only when I had the worst job I ever had that I learned to code. I was told that the team lead didn’t know what we were supposed to be doing and so he told all of us to look like we were working. To avoid having a nervous breakdown, I started doing tutorials on Codecademy.

By just typing code forty hours a week, I learned so much more than I had when I spent most of that time thinking about what I was doing. Mindlessly typing code like a monkey for a really long time was a far more effective learning tool than anything else I did.

By typing code a lot, my brain processed how it worked. It didn’t work on the first try. It took doing it three or four times before my brain processed it.

I feel incredibly worried because even though I am a professional programmer I don’t get to code enough hours in a week for me to feel I am still proficient at programming. I keep having good intentions of working through code after work, but I usually am tired and want to cook dinner and take a bath, so it never happens.

I do not want to try to learn C++ by reading the code base for the Unreal Engine. Most of C++ looks alien and terrifying. I can’t just do a project with it because I have no idea how to begin. It’s like telling someone who is interested in architecture to just build a house. You need to have some kind of practice so that you know what the fuck you are doing.

Programming is one of the only skills I have heard of people doing where we don’t emphasize practice. If you want to be a great pianist you have to do scales. A lot. You don’t just do them once and assume you’re done with them. You keep doing them. You keep practicing the pieces you want to play. You don’t become a better piano player by just reading sheet music or listening to recorded songs. You get better by putting fingers to keys. A lot.

What I am Doing About It

I have spent the last year getting more and more depressed by trying to adopt the learning style I see everyone else around me adopting and getting more and more frustrated when it doesn’t work for me.

I had my epiphany about how I learn. I learned programming by doing a lot of tutorials and practicing my coding by just typing code a lot. Just because everyone else around me tells me this isn’t the way to learn doesn’t mean that I have to listen to them. It’s possible my way would work better for them and they’ve never tried it. It’s also likely that we’re all different people and we are all capable of learning differently. I should stop trying to conform myself to another person’s learning style just because they think they are “right.”

One thing I have done since I have tried to establish my routine is I set aside two hours each morning to code. Right now I am working through Beginning C++ Through Game Programming. Each chapter has about half a dozen programs in it that you can either download from their website or you can code yourself. I have been coding each exercise and I am already feeling far less freaked out by C++. Yes, I know how conditional logic works, but just getting used to typing out all the double colons and the semi-colons at the end of each statement is really helping me mentally process how the language feels.

This is one of many things that I have not been assertive about when I go to a job. I feel like working through my scales doesn’t count as part of my job because the code I am working on isn’t production code. But it does help me keep my skills sharp and makes me a more productive worker. I may not tell people that I am doing this, but I do hope to make this a normal part of my routine in the future. I want to be an amazing programmer and you can’t do that if you don’t code. A lot.

Stir Fry My Way

This is a giant, pointless, first world problems rant about food. If you’re looking for insight into tech, this isn’t a post for that.

My dad has a lot of weird control issues, especially about food.

My dad does all the grocery shopping and cooks all the food in the house. He keeps insisting my mom can’t cook and has taken it upon himself to do all the cooking in the house. He has told me that he sees it as a source of pride that he provides for his family and makes sure we have food.

I can only imagine this is why he controls things the way he does.

One thing that he does that drives me completely insane is that he won’t let anyone serve themselves.

When it’s dinner time, everyone lines up at the counter and he serves you. He cuts giant chunks of overcooked salmon and steamed brussels sprouts and deposits them on the plate and unceremoniously hands it to you.

Prepping stir fry ingredients.

Prepping stir fry ingredients.

Being handed a large plate full of food you know you’re not going to finish is really upsetting, especially when you get yelled at for not cleaning your plate. My dad will make enough food for ten people and tell my mother to eat heartily but that he doesn’t want to eat too much because he’s watching his weight. Then he yells at her for wasting the food he made too much of that he didn’t want to eat himself.

I don’t eat a lot. I never have. I also hated both salmon and brussels sprouts until I got out on my own and found out that if they were prepared properly they could be delicious.

One of the things that drove me absolutely crazy (besides being handed the wrong fork and having to fish the right fork out from the silverware drawer) was how he would dish out stir fry.

I like to put the rice on the plate first and then ladle the stir fry over the rice. That way the rice can absorb all the sauce. Dry white rice is miserable and soulless and the only way it’s tolerable is as a sponge for sauce.

My dad would never let me plate my own stir fry. He would dump the stir fry on first then place it next to the rice. The sauce would flow all over the plate and be lost forever, leaving three quarters of the rice naked and unsauced.

I know this sounds really fucking stupid to complain about how food is presented to me. I didn’t have to pay for it. I didn’t have to cook it. I should just be grateful and shut up and eat my food without complaint.

It just bothers me to see people not paying attention to details and aesthetics. Salmon does not have to be disgusting. If you cook it properly and put some garlic and salt and pepper and some butter or sesame oil it can be awesome. Cooking it for an hour with no seasoning takes almost as much work but it completely destroys the fish.

This stir fry tastes of freedom. And ginger.

This stir fry tastes of freedom. And ginger.

It doesn’t take that much thought to think that maybe if you put the stir fry on the rice it will absorb the sauce. I have known my dad for 34 years and every single time he has plated my stir fry I have had to fix and and go grab the right fork out of the drawer.

I feel like it’s almost a battle of wills. I feel like he purposely doesn’t remember that I don’t use a large fork and that I don’t like salmon and I like my rice under my stir fry. I wouldn’t need him to remember if he would just treat me like a god damned adult and let me serve my own food.

So tonight I made stir fry. I was trying to figure out how to get the rice and stir fry ratio proper when I realized that it’s my food and I can control it and do it however I want.

So I mixed the rice and the stir fry together so that none of the sauce would go to waste and I wouldn’t have to deal with the last parts of the rice being unsauced. And I ate it with the right fork and served myself as much as I knew I could eat.

I know this is a really stupid thing to complain about, but being able to mix my rice and stir fry together is one of those things I get to do that makes me feel like an adult and makes me feel awesome because I have control over something in my life and I can do whatever I want. Whenever being an adult seems too overwhelming and I worry about paying my bills or losing my job, I try to remember stuff like this to remind myself that it’s all worth it.

Publicly Available Information

Okay, I am probably going to get a lot of flack for this blog post, but I am writing it anyway and I don’t really give a damn. If someone can give me a compelling reason to think I am wrong, I am happy to hear it.

So, yesterday I posted a few pictures of packages I have received on Twitter. I had several of my friends reach out to me to ask me if I meant to post my address on Twitter.

I didn’t post it on purpose, but I didn’t think that it was that big of a deal. I understand that one of the big things that tech feminists have been mentioning people doing to terrorize them is to “dox” them by posting their phone numbers and addresses on malicious websites where people who mean them harm can see them.

I am not in any way discounting how terrifying that can be and they have every right to be upset by that behavior, but this is my take on things…

Back in 1985…

Back when I was growing up we had these things called “phone books.” They were large books that arrived in the mail each year that had a listing of the names and addresses of every person who lived in your county. If I wanted to look up a classmate’s phone number, I could haul this stupid large book out and look up their last name. Sometimes there were a few people that all had the same name and you would have to call a few of them to find the right person.

We didn’t have caller ID, so you never knew who was calling you. You couldn’t block malicious numbers, but most calls weren’t malicious. More often than not it was a telemarketer and you learned after a while that if you picked up on the first ring and there was a long pause it was probably a telemarketer and you hung up on them.

Having your address and phone number publicly available didn’t used to be a big deal.

The new phone books are here! The new phone books are here!!

The new phone books are here! The new phone books are here!!

Today

My address is publicly available. Wisconsin (for now) has open records. I went through a divorce last year and never moved. You can go to the Wisconsin Circuit Court access and look me up and find out where I live.

Back when I was starting out I was really stupid and printed my home address on my business cards. I handed these out for a while before I realized this was a really stupid fucking thing to do and got new ones printed that only had my personal phone number on them. Then I just started handing out pug stickers with no identifying information whatsoever on them.

Point is, if someone wants to find out where I live, it’s not hard.

I know there is an outside chance that someone I don’t know will show up at my door and do something to me, but that possibility doesn’t worry me very much. I live in a town in rural Wisconsin that has no public transportation. Most of the developers I am aware of who live in my area live in downtown Madison because it means they don’t have to have a car. In order to get out to where I live they have to find a car and drive half an hour to where I am. My parents live closer than that and even they don’t like to drive to where I live. That’s just the people who live here. If you’re some asshole in The Bay Area you would have to fly and drive out here to mess with me.

Every one of my neighbors has a gun. I have had my neighbors call my parents when my ex husband and I got home early from a trip and they saw someone moving around in my house.

If someone intends to harm me, it would take a lot of trouble and money for them to do so. My not publicly posting my address somewhere is not going to prevent someone who is intent on harming me from doing so. I also will not hesitate to call the cops if someone shows up that I don’t know and didn’t invite.

Risk Assessment

Of all the things I worry about, having a stranger show up at my house is pretty low on my list.

I worry about my house burning down while I am at a conference. I worry about my pugs choking on something and dying. I worry about losing my job and having to relocate to San Francisco because no one will let me work remotely.

I am willing to accept the possibility that at some point in the future someone could show up at my house with the intention to harm me. Someone could send a bomb in the mail to hurt me and my pugs. Any number of things could happen.

I just think the odds of that happening is so unlikely that I don’t think it honestly matters that much if I inadvertently post a picture of my address on Twitter.

I don’t want to spend every waking moment of my life worried that someone out there is out to get me.

My personal experience with this community has been that it has been incredibly supportive. I wrote several blog posts recently during a bout of depression and I had at least five people reach out to me personally via phone and email to support me and give me helpful advice.

I know a number of people have been poorly treated by strangers on the internet and I empathize with them. I know that a well known female developer in Madison was stalked by another developer in Madison and that was completely not okay. She went to a lot of trouble to hide her address, which was not publicly available, and had it revealed by the police to someone who had presented a clear and real danger to her. I am not trying to discredit her experiences by saying that because nothing bad has happened to me so far that her fears are irrational.

I took down the photos because enough people seemed worried about it. But I just find it strange that a bunch of people acted like I posted my social security number and my credit card number on Twitter and just trusted people to not steal my identity or show up at my house and murder me. I have found 98% people to generally be decent and respectful. I would prefer to focus on that percentage rather than judge on the smaller number who make life difficult. If I am proven wrong I will be the first to admit it. But I would like to give people the benefit of the doubt that they are not planning to attack me just because they can find out where I live.

Self Destructive Tendencies

I have a problem and I am writing about it because I want to know if anyone else has the same problem.

When I start a new project I get really overwhelmed.

My dream project for the last few years has been to write a synthesizer application. Every time I start to think about writing this application I get incredibly overwhelmed by a lot of things:

  • How much math do I need to know how to do?
  • What kind of synthesizer do I want to write?
  • Oh shit, everything is in C++. How much C++ do I need to know?!
  • Can I use this audio programming book that’s in C++ if everything in it assumes you’re using Windows?
  • How do I do the user interface?
  • How do I fit all these little elements on an iPhone? Can I lay it out differently?
  • Do I need to know OpenGL to do a decent user interface?

So I get super overwhelmed and I sit down to try to figure out one of these things.

I sit down to learn C++ so I can read the book on audio programming.

I figure out that I don’t understand the math and I get freaked out and I try to learn the math.

Then at a certain point I get overwhelmed, feel stupid, and curl up on the floor crying because I am stupid and will never amount to anything and I should just give up on programming because I am a failure and should just go back to working at Target.

This doesn’t just happen with my personal projects. Sometimes this happens at work too.

At my previous job I had to learn a bunch of stuff about network programming. I have never done network programming and I honestly never want to do it ever again. I had people telling me to play with Paw to learn network programming. I don’t know what Paw is supposed to do. If I don’t know what it is doing, how do I play with it? I have no context for anything I am doing, so I wind up in this creepy, paralyzing mental mode where I am grappling with a bunch of unfamiliar terminology that has no context and if I can’t do my job I will get fired and I can’t pay my mortgage and I will be homeless and it makes me curl up on the floor breathing into a brown paper bag.

How do I avoid this?

Learn by Doing

I know from my own personal experience that I learn better by doing.

For a really long time I learned by doing a lot of tutorials. The first time I would do a tutorial I would have the overwhelming paralyzing feeling of not knowing what I was doing, but then I would do the tutorial over and over again a few times until I got the feel for what I was doing.

Back when I was a full time student and had the luxury of time, I could do this 60-80 hours a week. It was kind of magical about how by the third or fourth time I totally understood what I was doing.

Then I went out into the job market and started to mentally feel like I couldn’t do this and have tried to find ways around it. I used to keep trying to do tutorials, but I would only have time to do them once and I would be stuck in the paralyzed overwhelming stage, so I stopped doing that.

The only way to learn and grow is to write code.

You start with a blank project and you ask yourself how to make something work. That gives you the first step you have to take to find your answer.

I know this. I have experienced this. So why does it always take me by surprise when I figure this out for the fortieth time??

Lazy Information Initialization

I noticed I tend to get overstimulated and unfocused when I have to start on something. I tend to shave yaks.

I think that I can read a book on math for 3D graphics programming and learn all about that before I start a project rather than going in and just learning what I need to know to do what I need to do.

I do things that seem like work but aren’t actually productive.

I know on some level that trying to learn this difficult way by reading math books in the bath tub is not helpful and actively causes me mental harm. But I feel guilty if I am not working and I have adopted a lot of destructive behaviors that feel like work and make me feel like I am being productive that are making me less productive.

As I have gotten more and more burned out I have worked harder and harder on these self destructive tendencies because I haven’t known how to break out of them.

I have noticed at most of my jobs there is an implicit feel that working on code that does not directly go into a project is considered wasteful. Saying I am going to set up a sample project to learn a concept sounds unproductive and people would really rather that you work directly on the code base or read documentation. (Except when I worked for Brad. He did this stuff all the time and this is where I got this idea from and I finally started getting it through my thick head.)

In my experience, those things don’t work nearly as effectively.

I am trying to be better about asserting what I need to be a productive programmer even if it’s not what people want to hear. It’s not enough to just say “I need to do these things.” I also have to put them into practice.

And part of putting those into practice is to stop doing these destructive behaviors that make me feel like I am doing something when I am actually destroying my ability to function.

I think it’s important to understand how we learn and to stick to it even when other people don’t want to hear about it. It’s really easy to do a bunch of things that make you feel busy but aren’t getting you anywhere.

I am sick of feeling tired and burned out all the time because I am doing things that I know don’t actually help me. I am trying to figure out how to be a more productive person because my career and my mental health depend on it. This is too important to ignore and wait to resolve itself.

So I am not going to exhaust myself reading programming and math books with no context. I am going to do more sample projects and I will only learn what I need to know to solve a problem with my code. I am not going to expel a lot of energy on something that causes mental friction and generates heat that burns me out. I will only use energy on things that are actively productive. I will be less tired and less hurt this way.