When did you start writing software?
For me personally, I have been doing it professionally for 13 years.
It is easy to start feeling like you are stuck in a rut. I’ve been there too many times.
Then I got to thinking, “Why is that?” Why do programmers sometimes feel like they are doing the same thing every day, day in and day out, for years on end?
Well, it’s because programmers generally do the same thing every day, day in and day out, for years on end.
I’m here to say that it’s not your fault. Many programmers never get to choose the language they code in, because they only learn the language that was offered when they started studying IT. If they taught themselves to code (which many do), they perhaps chose the language that was the easiest to grasp.
Whatever the reason, if you feel like you’re stuck in a rut, you probably need to re-evaluate what you do every day.
Don’t give up yet
No, don’t give up your job and go live in the mountains (unless of course, that is what would really make you happy).
The reality is that most programmers write code as a full-time job to support themselves. Some are motivated by the desire to impart knowledge and become teachers. Some might enjoy the ability to improve people’s lives with the software they write. I know programmers who make a living improving systems written by others. The common thread linking all of these people is the fact that they started doing whatever they do because they enjoy writing code.
How is it that something they loved so much becomes so mundane?
I remember when I decided to study IT. I saw an advertisement from one of those ‘fly-by-night’ teach-you-to-code schools that illustrated a young man in a tuxedo standing on the tarmac next to a private jet. Next to him (standing beside the Ferrari) was a smartly dressed girl.
The caption of the ad read something along the lines of: “Live the life of James Bond, consider a career in IT.”
Luckily for me I studied at a very reputable university instead of the one on the advertisement. Needless to say, I still don’t own a tuxedo, and my life doesn’t resemble that of 007. I do, however, love my job and I still love programming.
Even if you’re not taken in by the delusive promises I encountered in the Bond ad, it’s still a challenge to stay out of the rut and remain present in whatever you do.
How I get out of the rut
To keep the spark of writing code alive, I decided to learn another programming language. (Sounds almost like being married, doesn’t it?)
I chose Swift. I’m by no means a Swift developer (yet), but teaching myself a language that I have no reference to from a .NET perspective helps me think things through. It helps me figure out stuff and mull things over. Believe me, googling “How to display a notification in iOS” kind of feels silly when you know that it’s so easy in .NET.
This, however, is exactly the point of learning another language. It makes you think and revisit concepts that you already know in your first language.
Another thing I do is write. If you don’t think that you are a creative person, I beg to differ. Writing code is a creative and difficult process.
What I needed however, was a different creative outlet. I decided to start a blog and write about technical topics. I believe all programmers need to have a blog, by the way. You might decide to write about something other than programming, but I find it better to write on technology because it’s what I do. It also helps me stay up to date on the latest tech news and current affairs.
Writing a blog also sparked an interest within me in helping others. I recently wrote the C# Programming Cookbook which focuses on some of the new language features of C# 6.0.
Being a writer keeps the creative process inside of me alive.
A third option is to research new technology concepts you don’t generally use at work. Still working on that old .NET 3.5 app? Check out async and await in the new .NET Framework and see what it can offer you. It might just give you enough reason to suggest upgrading the old project to the latest .NET Framework. Do you spend time every week deploying web applications to a UAT or Live environment? Research something like Octopus Deploy and see where it can help you streamline your current release cycle.
Lastly, have a pet project. Do you play with code after hours? Do you write software for yourself to make your life easier? You should. You have this incredible ability to automate your life—to speed up tedious processes by writing apps to manage them.
Someone I know was complaining the other day that they have to compile a weekly report from several different Excel documents received from area managers. He then sends this up to head office. He has been doing this for the past couple of years, and it is the worst part of his job.
I helped him smooth out the process a bit, because Excel is incredibly powerful. Unfortunately, he isn’t a technically minded person. When he started working, they used typewriters in the office.
This made me realise that as a technical person, we have the luxury of being able to fix issues like this for ourselves, our friends, or family. Consider making your pet project something that will make life easier for you or someone you care about.
Staying out of the rut
The real trick in all of this is to keep the excitement going. If, as a programmer, you’re excited about something, it sparks that creative part of your psyche. I have found that the best way to stay excited about writing code and the world of tech is to share what you know with fellow programmers.
You can join a programmer user group. There is a Microsoft User Groups Portal where you can look for UGs in your area that focus on the tech you are interested in. If there are no UGs in your area, why not consider starting one yourself? This is an especially great idea if you live in a small community. Gather folks who are interested in the same tech as yourself, and meet once a month to discuss whatever is on your minds. We all grow through sharing.
The flip side is therefore equally important. You need to receive support as well as give it and there is no better way than by listening to podcasts.
You can quickly consume a lot of information by listening to podcasts on various topics. Listen to these during your daily commute to work. If you don’t need to commute to an office space, make time for yourself during a morning routine. If you like, you can also listen to podcasts as you work.
I can’t think of many programmers who don’t listen to some form of music while they work. Just look at how many programmers are wearing headphones in the office. For a great list of podcasts on various programming technologies, head on over to The Ultimate List Of Developer Podcasts.
Something I also do is read a lot. When I say ‘a lot’, I don’t mean that I read 50 pages a day. I read often in short bits of time. Reading a book on programming or focused on programmers is especially good, because it will spark different ideas about how to do things better. Take a technology or topic you are not familiar with and read for a few minutes each night before bedtime and reflect on the new concepts you’re confronted with.
Own your own space
Breaking out of the rut doesn’t need to be a difficult process.
Doing things like taking time off, going on a vacation, or taking up a hobby can alleviate the problem. Unfortunately, the problem will probably still be there when you go back to work.
What you need to do is make programming exciting again. That’s where the magic lies that you need to break out of the rut.
I like to call this owning your own space. What does that mean, exactly? It means that you should construct your world in such a way that you are constantly stretching yourself to ask new questions and find interesting solutions. Just because the work day has ended, doesn’t mean that you stop being a programmer.
This means that you need to surround yourself with your achievements, not in order to rest on your laurels but as inspiration to reach further and grow even more.
If you achieved an award (a Microsoft MVP award for example), display it in your office. If you completed a course (online or full-time), display the certification on your wall and any titles that are attributed to you in your email signature.
If your blog reaches a million views, post a notification on your blog and let the world know about it.
When you write a bulk import routine that cuts down the processing time from minutes to seconds, share it with your colleagues.
Writing blog posts, researching new technologies, learning new things, sharing with fellow programmers, reading and helping others is all part and parcel of what it takes to break out and stay out of the rut.
The space you surround yourself with is your own creation. You are in many ways the designer of your own IT career destiny. Own it and be proud of it.