Relax, it’ll be alright

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

I was incredibly fed up waiting for the chance to make a living writing code. Since I was very young, I’d wanted to program computers for a living. The years it took me to get there felt like an endless wait of learning things I didn’t care for. Looking back though, the learning I didn’t care for was perhaps the most valuable. Anyways….
When I finally was given a job as a programmer I was living the dream, my dream. I was the guitarist who got a hit record with his band, the soccer player who signed his first professional contract, etc. In other words: it felt pretty damn good!

As a person starting a career in programming it is easy to feel you’re coming up short. Especially these days when news, ideas and The Next Thing is only a social media post away from you. We measure our own lives and achievements against those portrayed in the media. Needless to say, almost everyone of us falls short in such a match-up. It’s not because we lack dedication or passion.

Why aren’t you making the next killer app?

I get this question every now and then. People who aren’t deeply involved in our industry ask me this. A perfectly reasonable question in their mind. However it’s kind of like asking the janitor at a hospital why he’s not curing cancer. After all he works in the health industry. OK, I’m exaggerating just a tad here. But, it’s questions like these many end up measuring themselves against. Why aren’t I a multi-billionaire? Why didn’t any of my startup adventures work out with me sitting on Caribbean island drinking from a coconut? Why haven’t I written The Framework which the Web relies on and everyone loves? Having never been even close to accomplishing any of these things, does that mean I am a failure?

You should redefine success

I have made a living being a programmer since I was in my early twenties. Fortune has it that I’ve started a family during these years. I live in a nice place where many of my neighbors are now my friends. It is close to the forest and the outdoors, which are both important to me. At work I can be who I am and it has many interesting challenges. I have two healthy children and an amazing wife. Is this success? For me, this is the most success I can hope for. I’m not going to create any killer apps or businesses that generate gazillions of cash. Success to me is to do what I love and be happy with what I have right now.

Being average is being normal

I’m never going to be a superstar coder who’s renown for my brilliant libraries, framework or thoughts about programming theory. My coding skills are average and I try to make up for that by having stamina and determination to never give up. You know what? Most in this industry are average just like me. It’s perfectly fine to be average, mediocre and one of the herd. You don’t have to be the Next Big Thing before you’re twenty five. Settle into a stride which suits you, take your time and enjoy your work. Don’t freak out because “everyone else is being amazing and I’m not”. The idols and stars we worship are exceptions, not the rule.

I am not “Silicon Valley material”

These days I don’t make it a priority to attend meet-up’s, I do however attend my kids soccer practice no matter what. This year I won’t attend a single conference, but I try to be at all school gatherings. I don’t think I’ve read more than a handful of programming related posts this year. If it hadn’t been for the fact I update a website on Github, my punch card would probably be empty. Does this make me a bad programmer? Surely I wouldn’t stand a chance in what is seen as the Mecca of software development, Silicon Valley. I don’t stop doing some of these things because it’s impossible for me to do it all, I just choose not to. If you’re able to all of this, great! If not, that’s also great. It means you’re being conscious about how you spend your time.

“Kill” your idols

In our industry we don’t worship people who live my kind of life. Our ideals are framed, still, by the idea of meritocracy. You should live, breath and shit coding every living second on this planet. Any spare time should be spent learning a new language, or better, write a new language. Not only that, but you should give talks and do a video blog. At a minimum you should host a meet-up, but better is to put on a conference.
Needless to say, very few of us measure up to these high expectations of what a good developer is. If you do all these things, you are amazing! If you don’t, you’re still amazing!

OK, listen up

If you’re starting out as a programmer, please don’t rate yourself according to the rules of meritocracy. You are so much more than the green squares on your Github punch card. The number of talks on speakerdeck.com. Success can be very different for you than what is portrayed in the media. Make it a priority to define what success is for you in your own context, it will help you find your own path.

Most importantly, just relax. Breath and take it easy. You don’t have to do all the things at once your first years in the industry. It’s perfectly fine to take things in your own pace. You’re a valuable programmer even though you aren’t running yourself to the ground. Everything doesn’t have to materialize itself within your first ten years of working. Everyone is different, we all learn and grow in our own pace. Don’t beat yourself up if you don’t measure up to the idols and ninja-super-rock-star-people. Those idols don’t actually exists, it’s mythical stories told bye people who need to exploit passionate people. Having a slick online presence and a killer rep in the business are superficial and very temporary.

Remeber, breath and relax

Focus on things that matter in the long run, and slow things down. It’ll be fine in the end, I hope. These things I’ve talked about are really existential questions more intelligent people have discussed at length before I wrote this. Finding happiness in the moment right her and now can be a hard. I struggle with it constantly and need to remind myself of what matters to me the most.

To read and learn more about many of these things I find reading The Book of Life website really interesting and it triggers me to think and evaluate my own perspectives.

Remember, breath and relax.

Thanks to Alexandra Leisse for input and inspiration.
Originaly posted on Medium.

Cross roads

Photo by https://www.flickr.com/photos/greenmanyyz/

Photo by https://www.flickr.com/photos/greenmanyyz/

I am fast approaching 40 years old which is pretty fucking scary in general, but even more so when you work in software. No more am I allegeable for jobs, as I’m no longer in a place where I am viewed as something for the future. These amazing and brilliant young people coming through are just so much better than I ever was. It’s a young people’s game, programming.

I have many friends who are of similar age and we share a common scare. We’re only half way through what our rulers hope is our professional career. This is a pretty scary thing, I’ve had one type of job since 1998: programming stuff for the web. Is that what I’m doing for the next forty something too if I were to have the fortune of living that long? We’ll have to work until we die as the Norwegian public pensions will be all gone. Is a move into the management tier the only option?

Full circle

Already we’ve come full circle on so many things. Everything with cloud computing is just a repeat of ideas coming out of time sharing and similar concepts from the 60-ies. The Web vs Native war is just another iteration on Web vs Desktop which raged during the start of this millennium. Listening and reading the discussions held by the new generation of thought leaders you realize that everything they see as new and amazing really just are iterations or increments of things done a while ago. The dilemma is this: how can you keep being interested and stoked about new technology when everything is just an iteration of what you’ve seen before?

What next?

Most people seek refuge in management, either as middle managers for teams or higher up. Programming is by many viewed as a young persons game, where you’re expected to work insane hours and use every breathing minute learning new things. Luckily this notion is beginning to fade and people realize that burning out all programmers and scaring them into management is a bad thing. I think the only way for programming as an industry to evolve is by making sure at every level we have a mix of newbies and veterans. Companies with more age diversity have the opportunity to actually learn from past mistakes, but also add the spirit of youth to push things forward. I hope..

Luckily I have worked at a company with a little bit of diversity when it comes to age. Seeing how some of my elder colleges are passionate as twenty year olds fills me with hope that you can actually keep doing what you love for an entire career.

So aging, funny thing. Amirite?

Gallery

On work

The first record of me interacting with a computer was a picture of me when I was three years old playing the game Pyton on a Tiki 100. I have always known what I wanted to do in life, I wanted to be a programmer and create things using computers. School was just an endless wait before I finally got to do what I wanted at the age of 19. That was when I finally got to Molde College where I could learn to program.

I am very much blessed to be able to make a living doing something I would do as a hobby if it wasn’t my job. I love what I do. However that doesn’t translate into loving my job. My job is the thing at a point in time that pays the bills and enables me to provide for my family. It is a business relationship where both parties benefit. My love is for what I do, which is being a programmer. 

The creator of the Solid Snake game, Hideo Kojima, said something I can relate to which was something like “I dislike all the work needed to create something” (not an exact quote and I can not find the original post as it was some ten+ years ago). That is exactly how I feel, that sometimes there is an enormous amount of work required just to get to create something :)

Original: http://www.flickr.com/photos/truthtodare/6916904929/

On programming

I’ve been wanting to create stuff on a computer ever since my dad got us our first PC back in the late eighties. Every year spent in school was one year keeping me from what I really wanted to do, program all the time. When I landed my first job at Norwegian Broadcasting Company (NRK) I was on top of the world, programming shit for a living!

I am not a very intelligent person and I’m an average coder. Once I took a test to see if I was suited to be a programmer, I failed miserably. It was mostly logic and mathematic questions, neither one are my strong points. Luckily you don’t have to be very intelligent nor good at math to make a living as a developer. I am living proof, working on my 14th year in the industry.

Survival of the weaker

How is it possible to build a career as a developer without having the basic skills needed? I make up for my short comings with two things: determination and passion. I solve problems by taking them on head first and work until it is resolved or avoided. Sitting down and figuring things out is not my strong point. My approach is to just never give up, regardless of how many hours or weekends it might take. Stubbornness and a love for coding are what I use to compensate for lacking in other departments. It also helped me grind to a staggering halt when I was working on a project for the Palm Pilot. My inability to stop and my determination and stubbornness cause me tonburnout. Since then I have become better at avoiding these scenarios, but I have urges for a relaps. It feels like I’m an ex-alcoholic, I can at any given point return to working my self into illness.

World collide

Being an average developer can be tiring as my approach to work is different from those with better academic skills and a more analytical nature. My view of the world collides quite often with those who enjoy programming for the intellectual challenges it provides. Me, I just want to make stuff that gets used by people. It can be tiring to not be of the engineering type, as they tend to dominate our industry, but it also leads to better solutions when you take best of both worlds I guess.

My point? You shouldn’t fear programming as there are lots of ways to do it and you don’t have to be all that smart to make a living as a programmer.

Quote

what’s in a name?

In my experience pretty much everything is in the name when it comes to the art of programming. If you start out with bad naming and a structure which does not communicate any of your inentions with writing the code you will end up having problems. Either understanding it yourself or having anyone else make sense of your code. 

When I do code reviews I often only get to this part. If I can not understand the purpose of the code it is hard to do a review which does anything but see if you follow coding convensions and don’t do anything utterly stupid. Bad names and a misleading folder/package/namespace structure makes it hard for anyone to judge what you’re trying to acomplish.