Why programmers should have a hobby
In this post I will talk about such simple and important thing like a hobby in our developers' lives. It is a great feeling to get lost into something whether it is your favorite book or a video game.
If you start doing something in your free time you less likely get in trouble or fall into some bad habits. Some people say 'An Idle Mind is the Devil's Workshop'. You can find friends with same interests as yours, or just people that you can talk to. I always need a particular topic for talking. I see that some people can talk about nothing for hours and be fine with that, unfortunately I can't do the same. Remember this I feel really uncomfortable around people when I have nothing to tell or nothing to ask.
When you do something you like you develop some sort of skill in this. Everyone wants to be good at what they do. I played a video game called Warcraft 3: TFT for quite a long time. I defeated some good players. Also took part in LAN tournaments in our city like World Cyber Games preliminary. Once I even won in a tournament and got some money for that. I became somewhat known in WC3 community. I had friends there and created our own team which was pretty good back then. I had so much fun! It's such a great feeling when you had been training for weeks before the important game and won the hardest opponent in your group. Also when your team plays in a league and beats somewhat famous opponents. Good times!
A hobby can enhance your well-being and can give more meaning to your life. You have relax and recharge your batteries to stay productive at your work. Hobbies are internal sources of entertainment. So I think they provide greater happiness than external ones. I believe that creative energy present in everybody. You just need discover it and to give a way out.
Some hobbies especially outdoor activities are the source of eustress. The healthy kind of stress that we all need to remain excited about life. A year ago I tried ice rink for the first time in my whole life. It was a real challenge for me. I could't calm myself down even when I was there for 2nd and 3rd times. I thought it would be a lot easier and safer. I was failing and rolling on the ice so many times. My only thought was "When does this end? I want to go home, get in the warm bed and fall asleep." I did not regret it in the end. I wanted to go there more and more because of those emotions and feelings of danger.
I don't have time for hobbies
Sometimes it's difficult to find the time for a break, but you HAVE TO. You have to maintain your work-life balance. This is important. We programmers are perfectionists and learn a lot. Every free time we have we spend learning stuff so we can do better and better at work and life in general. Some guy on stackoverflow (forgot his name) in answer to question about learning for programmers said this:
If you don't spend any (of your free) time learning, you will stagnate, and at some point may get completely bored with your profession and unable to take up new challenges.
If you spend too much of your free time learning, you won't have time to that curious but important thing called Life, thus in the long term you may burn out and/or get health problems.
So I take one day in a week (usually one weekend day) and dedicate it to my hobbies. It does not affect my learning much and keep things in balance. Software Development is a quite stressful job. A team leader in one of previous jobs told me that back in the day when they were writing Windows API code in pure C++ they would get drunk almost every evening. It helped them to shut down the brain from all those problems it was constantly working on. I do not tell you to start getting drunk here, but you get the idea. You have to find something that works for you.
I don't have any hobbies
Well you should try different things to see whether you like them or not. Let's take food as an example. You can't judge whether it's good or bad if you have not tried it before. Just find something you physically CAN do and do it.
There are no bad hobbies
Seriously. Folks like to say that playing video games is not a real hobby. You just wasting your life by doing nothing. Screw them all! I mean let them think what they think. You should not care. It is your hobby because it makes YOU happy. You enjoy it and that's more than enough.
Even if you like watching porn you can call it a hobby. But it's better not put this on your CV. They might think you would do this at work. :) If you enjoy killing animals go hunting. Do it in a legal way. But do not kill people though. That's not okay, even if they are bad.
Having a pet project will make you a better programmer by its nature. If you don't have one, you'll start thinking of programming as a mundane job rather than something interesting, challenging and fun.
People say that many things were done already and you'll probably reinvent the wheel. Let's take for example major companies like Microsoft, Apple, Google. Do they reinvent the wheel? You know how many word processors out there? Why do we(at least me) use MS Word? We already had Symbian as mobile phone OS. Why do we need iOS, Android and Windows Phone? It does not matter if the same thing was done already. Pay attention to details. Do it better, or do simplier just for your own needs. Prospective interviewers do take hobby projects into account. Stackoverflow careers website has the entire section for that.
I am familiar with .NET and Java is pretty much similar. But C\C++ seem completely different, especially when you do Windows32 API stuff and Embedded Programming(chips and microcontrollers). So I am going to learn them and share some projects with you.
As for me
I have many hobbies, though I could't dedicate enough time for each of them. I really enjoy bike riding. I bought a bike last year, and sometimes I go to some wild places with fresh air and beautiful landscapes. I hate plain sports so this is also keeps me in shape.
I like reading books. Finished Hunger Games (all three parts), The Hobbit, Alice: Adventures in Wonderland. I read them all in English because English is also my hobby, so I try to do as much as possible to improve it. The next book that I am going to read will be a popular Game of Thrones series (3rd part). I like the TV Show and some of my friends who already finished reading it don't like to avoid spoilers. :)
As you see I like online video games Warcraft 3: TFT, Starcraft 2: WoL, Vanilla WoW, DoTa 2. My best offline game was Bioshock Infinite. Maybe I'll write a short review on it.
I watch Gossip Girl, Game of Thrones, Dexter, South Park and Big Bang Theory.
Learn electronics and Embedded Programming. I believe that being closer to hardware would help you to better understand how your Software works. I want to start growing plants some day (got inspired by Mr. Hanselman) and learn psychology, and start drawing but don't know where to start because it's so complicated.