Rambling about Obsession over Computers

Lately, I’ve often found myself mindlessly scrolling through hacker news, looking for new articles about the latest tech-related news. I frequently browse /g/, reading anonymous comments about various topics related to computers. I chat with buddies about programming languages, software and hardware. We talk about the latest tech news. It seems like much of what I consider “personal time” is spent on computers. Over the past summer, I spent much of my spare time programming. Even though I went to work to sling code for about 8 hours, I came back home and programmed some more. That same summer, I read through a book on FreeBSD and assembled a computer.

Playing with computers has been a long-standing hobby of mine. This doesn’t even include the amount of time I spend doing computer science assignments and research at school. I often wonder though, what about the people who aren’t like me? What about people who just work on computers as a job? What about having a hobby that doesn’t have to do with your job?

I know a few people who study computer science and wouldn’t consider computer science a personal hobby. It seems like they generally adopt the mindset that CS is a skill for a job, and don’t think too much beyond it. But, when I think about how recruiters find new talent for CS jobs, I think about how they tend to look for experience doing hackathons and/or personal projects. As one example, Piazza Careers has a field where you can enter how long you have been programming for.

This leads to some difficult questions. Should it be expected that people studying CS should also devote their lives to it? What about getting recruited to the “top” companies? Isn’t it unfair for the people who don’t want to dedicate of their life to computer programmming?

Throughout my high school life, I thought of computer programming as only a hobby. I didn’t consider it as a career option. Well, to be fair, I didn’t think about career options at all. There were many engineers who were adult mentors on my robotics team, but I didn’t actually know what they did. It wasn’t until I was offered an internship late in my senior year of high school that I learned what engineers do. Until then, I didn’t realize that all the computer programming I was doing for fun was, in fact, useful for a career. My teachers, mentors, and parents all saw that it was something valuable, and encouraged me to study it in college.

After starting college majoring in computer science and working a few summers as a software engineering intern, I realized two things. Firstly, that I would have to make a living, and secondly, computer programming pays well. At this point, I consider myself extremely blessed. I have the privelege of my biggest hobby being the same as my career. I need to remind myself of this often when I work with others, as not everyone in my major has been programming for as long as I have and may not understand computers the same way I do. The amount of experience I have, ironically, can be the source of some doubt. At times I think to myself, “what if I’m not actually that smart and just have been doing well because I’ve been programming for a long time? Is this why my grades are consistently worse in EE courses? When I’m older, will I be replaced by some up-and-coming computer genius kid because I don’t stay up to date?” Thankfully, these doubts don’t worry me much now, but what about when I get older and want to do things that aren’t computer programming?

I want to have a life. I want to have a family. I want to pursure my other ambitions that I’ve neglected. Lately I’ve been trying to balance that more. I’ve realized that my relationships matter more than computers ever will. I want to make people laugh and feel loved. I want to counteract problems–such as depression, anxiety, social isolation, insomnia–that have been exacerbated by the very technology that I enjoy working on.

There is a pretty large distinction between recreational and vocational programming. Programming for fun is more about trying new things, doing interesting, creative, self guided projects. Programming for work is a lot of reading other people’s code, communication, reasoning about a system, writing simple code. I can program recreationally and not really get tired. One of the things that keeps me up working at night is voraciously working on recreational code. There is little to no way I would have the same level of energy for code that I write at work. Programming recreationally is one of the things that keeps it interesting. If I didn’t balance recreational and vocational programming, I would probably get pretty bored of the vocational programming.

It is very easy for me to fall into a trap of recreational programming day-in and day-out. The problem is, I want to grow in ways that aren’t just learning more about programming. I have a long career ahead of me where I can do that. It’s just so hard not to, knowing that my programming performance could be improved, and given the already high amount of enjoyment I get from programming. It just feels wrong to do sometimes. I’m still very conflicted about this.

In computer programming, to be good at solving problems, you have to be persistent, to the point of obsession. If you’ve spent a lot of time unblocking yourself over a problem and you’ll know what I mean. However, it’s dubious to say that obsessing over real life problems is good. On one hand, obsessing is what gets us to solve the hardest problems. It’s the sort of behavior that enables engineers, mathematicians, and the like to think hard about solutions and weigh options. The ability to apply logic and preservere is one that is valued in those disciplines. Take, for example, this quote from the article Dealing with Hard Problems.

Brilliant “Aha!” moments almost always spring from minds cultivated by long periods of frustration. But without that frustration, those brilliant ideas never arise.

As good as it is to make brilliant discoveries, this mode of thinking should only be applied to hard problems.

For a period of my life, I made the mistake of applying this logical thinking to real life scenarios, from a psychological perspective. I tried learning psychology as if it were an all-encompassing explanation for human behavior. I tried to reason, logically, why people acted in particular ways. This is not a very good idea, because not even psychologists can get this totally right.

The more I think about it, the stranger I realize life is. So, my simple solution is to not think about it so much. My dad once told me “don’t ask so many questions all the time.” That was some of the best advice I ever got. Leave asking hard questions to answering hard problems. When it comes to people, don’t overthink it. In fact, don’t think about it much at all. Things get simpler that way.

Thanks for reading, as always! :)

P.S.
I wanted to talk about obsession over problems but ended up going a bit off-topic. Things I wanted to elaborate on: hobbies/job and identity, money and hobbies, balancing logical and non-logical thought. This post is already pretty long so they will end up being seperate.

Revision History:

  • 9/28/18 Initial writing
  • 11/3/19 Editing
  • 2/28/23 Final edits, publishing