Work ‘Smarter’ not ‘Harder’ as a programmer
I’ve just come across a question posted on Quora which I tend to peruse through daily out of interest, and I can across the question:
One person gave a list of answers which were very interesting and tickled my fancy. In short before I explain my personal experiences, here they are:
- Learn to say “No.”
- Sleep at least 8-9 hours
- Don’t be a night Owl. Work in between 5am-10pm not from 10pm-5am
- Stop multitasking.
- Take more breaks: respect your natural attention spans
- Spend time in nature
- Move around and work in blocks
- Limit your to-do list
- Measure your results, not your time
- Build “getting ready to work” routines
- Track what you’re wasting time on
- Exercise daily even if you think you have no time
- Believe that you can do it
And being employed now for a while as a professional programmer after a lifetime of being a hobbyist here’s my thoughts on those points…
Learn to say “No.”
This is probably one of my failings because I’m quick to tell others they ought to ‘learn to say no’, it’s hard to actually do it yourself. There are times when I need some wind down time and I’m needed elsewhere at other times which doesn’t help me get that proper chill time at the weekends especially.
Sleep at least 8-9 hours
On average I get about 7 hours. Usually at the weekends, I fight the urge to sleep during the day in order to keep my sleep pattern regular.
Don’t be a night Owl. Work in between 5am-10pm not from 10pm-5am
Going from a hobbyist programmer to an employed programmer has seen a huge change in the hours I code. Years ago I would work through the night until the sun came back up. Now, I get home and just read stuff online and do no coding in my spare time.
A programmer needs to focus on the project they are working on. Ask them to do something that doesn’t relate will throw them miles off track. Just just distractions can take them right out of the zone just for saying ‘hi’ to them.
Take more breaks: respect your natural attention spans
I’ve found that taking breaks regular helps immensely. I used to often find myself getting stuck at points and clock watching before I left the screen. That was counter productive to progress. Now when I get so far and need to give my thoughts and brain a rest, I get up and go for a quick wonder around.
Spend time in nature
Oh… Errr… Maybe I’ll plan for this one.
Move around and work in blocks
With working on large projects, I now tend to break it up into many smaller chunks and work through each piece.
Limit your to-do list
Just like the above, but when it comes to planning, I never set too many targets for the next days worth of coding. It’s usually just about two things I plan to get through and if I do manage more then it makes me feel better for it.
Measure your results, not your time
This is learning patience too. Working on large project is extremely time consuming. As I mentioned above, by breaking the project down into many smaller parts, it makes it easier to see progress being made.
Build “getting ready to work” routines
I do… I get to work… Make a brew… Read some interesting stuff for at least half an hour… Then within an hour after work starts, I am getting into the zone. Sometimes I get quickly zapped out of it when other members of staff start having loud conversations.
Track what you’re wasting time on
This is definitely another matter that I’ve learnt over the past couple of years. There’s been times when I’ve tried out something and dumped all the code only to start again a few times. Now I make small unit tests to make sure I know what I am doing before it gets implemented into the project. So much time can be wasted by having to backtrack a shed load of junk code.
Exercise daily even if you think you have no time
I don’t have time… I really need to but I haven’t yet got around to it. I will do as soon as I possibly can.
Believe that you can do it
This is not an issue with me. When I first started at the position I’m in now, I was thrown in the deep end and I had to create my own paddles and floats. Nowadays, it seems that after a few unit tests per awkward section, anything is possible.
As you can see, I’m not perfect, but I still very much enjoy day to day coding…