6 Great Ways for Programmers to be More Effective at Work
Every programmer has his or her own working style – sometimes more, sometimes less perfect. Hopefully this article might contain some handy tips and tricks on how to improve your habits to help you work faster, better and stay less distracted.
The topics described below aren’t rocket science discoveries, but it’s good to refresh your memory with these concepts from time to time.
1. Stay Focused
E-mails, calls, notifications, chat messages – all of them are your enemies. Why? Because they absorb your attention when you try to focus on code-related problems.
Is anything going to change if you read this facebook event invitation just 1-2 hours later or if you check your emails later? Most of the time – I don’t think so. If it is very important, someone will call you, or start to spam. Only then should you consider reading your messages.
Mails with ASAP subject? Great, as the acronym says, I will do it when it is possible.
Why it is important to stop paying attention to all those distractors? Because humans are not good at multitasking. Sounds wrong? Here’s a simple example: surely you can write an email while you talking on the phone, but try to ask a constructive question and keep on writing the mail. The quality of one, or both of these things will be terrible. Need more? Just let me help you.
When not being focused, you cannot get something what is called “flow” in psychology. As engineers we need it for most of our time. What is flow you ask? Here is my list of all elements which are necessary for a flow to occur:
- intense and focused concentration on the present moment
- merging of action and awareness
- loss of reflective self-consciousness
- sense of personal control or agency over the situation or activity,
- distortion of temporal experience, one’s subjective experience of time is altered
- experience of the activity as intrinsically rewarding, also referred to as autotelic experience.
Flow is characterized by the lack of self-awareness, loss of sense of the time, complete freedom from fear and anxiety. It’s classified as a positive feeling, and described as being excited by the present. Need more? Here’s a pretty thorough article on wiki.
Every time you pause your thinking process to read an incoming e-mail, somewhere out there one panda dies.
2. The Importance of Breaks
Breaks can help you improve your concentration and ability to solve problems. Even a short break is enough to stretch your muscles or just relax. What is more, you can talk to your colleagues, expand horizons, maybe learn something new, chill out or just clear your mind.
Some studies have proved that people are able to solve problems more effectively while being relaxed. Engineering professor Barbara Oakley explained that when you’re focusing, you’re actually blocking your access to the diffuse mode. And the diffuse mode, it turns out, is what you often need to be able to solve a very difficult, new problem.
There is this story about programmers and designers (or just two teams whose work is somehow related) who share one kitchen where they meet for a cup of coffee and chill out. One day the company moves to another building and the two teams receive brand new yet separate kitchens. Sounds good? Shorter breaks, closer to the kitchen, … but the real problem was that the teams got seriously split by internal disagreements. Why? Because they no longer shared the same room where they could discuss their current problems.
3. Planning your Day and your Working Hours
Everyone has got a different life clock. Some of us are night owls and some are early birds and we shouldn’t fight against this. Some of us can easily focus during daytime, while others only at night, and there’s nothing wrong with that.
You should work when it’s convenient for you. It is beneficial for both you and your employer, or, more precisely, you will become more motivated, focused and will get into flow mode more easily, and your employer will have a happier developer who delivers code, structures and ideas faster and of better quality. One of the pros of working as a developer in the majority of the companies are flexible hours. So, make use of it.
How? For example, I start my day (~9:30 AM) with meetings and daily newsletters from HNdigest et cetera. Why? Because I’ve found that I like to read, absorb knowledge and brainstorm in the morning. It’s good for my brain for it wakes it up and enables me to get on the right track. Around 10:00~10:30 AM I start programming. I don’t check my mailbox or phone calls then – some people tend to hate me for it, but they understand the reason and, after all, they support that.Then, around 12:30 PM I check my mailbox, phone and I go to eat the dinner and take a 25 minute break to clear my mind. From 1 PM to 3 PM I stay focused, then a short break without the screen and another 2 hours of programming block. I’ve found that after 6 PM my productivity goes down dramatically. Surely, I can do simple things, but if I have to do something more that day I just go home and after 10 PM I go back to my Sublime. It’s the best time during my whole day – I get revelations which stay with me until I get very sleepy. I have also learned that 10 AM and 10 PM are the best hours to undertake complex tasks, or sketch out a solution.
My project manager knows my work schedule and preferences. It’s a win-win situation. I can do my work when it suits me best, and my project manager knows when it is the best time for meetings and questions.
4. Dealing with Problems
We’re programmers, we solve problems all the time. However, sometimes it happens that we face extremely difficult ones. Surely, you can handle them and spend the next few hours or days sorting them out, but it’s not the most efficient way: you get frustrated and try really hard to find solutions, but the truth is that the solution gets farther and farther away, and you start to narrow down your vision. Basically, I use some of these methods for resolving problems:
- googling for error code/phrase, documentation reading
- rubber duck / trial and error / divide and conquer / reduction
- problem sketching on a paper
- have a break and clear my mind, or go to another ticket, finish it and come back to the problem with a fresh approach
- talk to my lovely mentor who, no matter what, always knows the answer.
Mostly, if I don’t move forward in any way within 20 minutes, it means that I won’t resolve anything. The best thing is to choose the next ticket and come back to the problematic issue later or ask a mentor for help.
5. The Importance of Sports
Sport is beneficial in many ways, I will share the two most important ones for me.
The first one is that people who participate in marathons, gym group activities etc. find it relatively easy to speak in public, take exams and face challenges. It is mostly because they are determined and eager to raise their standards.
The second one is more about the body. When we have low level of red cells in our organism, our ability to stay focused decreases. The easiest way to increase the level of red cells is to do aerobics, swim, run, or cycle. Those activities are also good for your brain. Thanks to exercise, brain cells called hippocampus, which are responsible for memorizing grow.
Sport affects our sleep and ability to relax. People who perform sport activities are able to fall asleep more easily and are less likely to wake up in the night. We need to keep in mind that the quality of our sleep is also important. While sleeping, our brain makes connections between nerve cells. People who sleep long enough can focus & do things faster.
6. Great Music
Smashing magazine has a great article on this case. So, I think it’s pointless to copy or make any references. Just read this article.
Hopefully this list will get you started on your new and improved efficient I!