Most programmers I’ve met, not to say all of us, like what we do and enjoy our achievements everyday. Every good class written, every nice refactoring, every file we delete. Even though we enjoy our work very ver much, day to day life can become boring and you can become a complacent robot that does not care about their achievements and is not as motivated anymore. I have found myself in this situations a few times in my not very long years of profession.
We live by rules, we follow paradigms, all human beings are like that and we as software engineers are no different. Everything we do is a paradigm, our project process, our way of driving out features, be it behavior-driven, test-driven or whatever-driven development. The language we use, the algorithms, the libraries. We get used to, it we cargo code.
We do things and we stop seeing for what reason, be it the right thing or not, we just focus on the goal, without focusing on the most important part: the road. By following the same paradigm the same way over and over again we lose our capability of perception, and we minimize our ability to learn, teach, create and more important: live.
While we code, pair, we learn, at least we’re supposed to be taking advantage of every second we spend over a keyboard coding to learn new things and re-learn old things. When we’re on autopilot we lose this ability, we lose our perception, we stop learning and we stop growing. It doesn’t have to be that way.
I’m not saying change the process every day, I’m saying change the way you apply the process often and you will keep your motivations higher. Experiment different editors, experiment different meeting formats, more important: experiment life.
Whenever you receive an input, you react. Say used to play Tony Hawk Pro Skater 2 and you never listened to Papa Roach in any other situation. Every time you listen to Blood Brothers you will invariably think of skateboards. So say you always use Resque ask your job queuing library, every time you see a problem that’s solvable with a job queue you’ll want to use Resque. That apply to languages, frameworks and process paradigms as well.
If you have more reactions, you’ll have more solutions, more cards on your deck. If for some reason your solutions won’t cut it what do you do? Researching takes more time and you’ll be way out of your comfort zone if you’re not used to any kind of change.
I try to keep it alive with different side projects and exciting challenges, that also helps me keep up to date with new technologies and/or different languages. I try to do that with other programmer friends so I don’t have to stop paring since pairing, for me, is the most helpful activity for learning and practicing something.
Reading is always a good motivation tool, sometimes I read about something and I eager myself to try that as soon as possible in my current project. Read technical blogs, books, whatever. Watchings screencasts/tech talks have a very similar effect.
Blog about your experiences. Since I started blogging frequently I found that writing about what I do help me remember it better, and help me do it with more attention and care. If you are learning a new language, blog about it. If you are learning a new framework, blog about it. If you’re intrigued about how the human mind works, blog about it.
I suppose preparing and giving talks also motivates a software engineer, that is something that I’m yet to start doing.
That’s all cool. But it is all work related, you might not become a complacent robot but if you only do that you’re a workaholic. Most times you define yourself with the holic suffix you may want to change something.
I consider myself a little bit addicted to my job, my job is amazing. But I don’t want it to be everything I have. That’s why I found some hobbies, I play soccer and go skating with some friends every week. I play videogames (ok that’s not the healthiest activity but it takes my mind off of work for a little while). I just came back from a roadtrip with my dad, mom and brother that are visiting me from Brazil. I just celebrated a confederations cup title with them as well.
What do you do?
Doing different things away from your job help to create paths inside your brain, training your intelligence and your ability to learn, create and live. Brush your teeth with your bad hand, put your shirt on in the dark, make jokes, have random conversations with random people, change your comute (i.e. switch from bus/bike and vice versa). That all helps amplify your neural network by increasing the number of neural connections in your brain.