- Talha Tahir
- linkedin @thetalhatahir
Being 90's kid, we all have seen the Matrix movies. It is a system which is above the understanding of Zion humans, they can see the code on their screens but they do not fully understand it. Only the One can understand and modify/write the code as he sees fit effortlessly.
Would be swell if you could become the ONE!
Coming to reality, today’s softwares are complex programs with huge chunks of codes and branches spread across the system. Each function governs an area of the system and they all work in harmony to make the whole system work.
Working on such huge software repositories, makes you feel like you are part of the Matrix. You can see the code but you do not fully understand it on first glance. Ever thought that if you could become the One? Where you simply get it how the system works and you churn out beautifully written code. Wouldn’t that be great!
Lets get to the point… THE ZONE
I am not here to teach you how to write syntactically better code, you might already be writing better code than me. I want to tell you a method and the tools you need to get in that ZONE where code flows through you like you are the ONE!
Statistically speaking, 7 out of 10 programmers confess that its those late hours of night when they magically arrive to that perfect algorithm which solves their problem. Scientifically speaking, its not magic, its just that their brain and their environment went in a ZONE which made their coding nodules flow and churn out that Algorithm. It is this ZONE which i would teach you to achieve as quickly as possible so your productivity as a programmer increases 10x times.
STEP 1: Ergonomics
You need to make your work environment ergonomic. If you are used to working on a table with a high back chair at office and at home you do not have these, go GET THEM!
Especially working from home, you need to realise that you are still working for the same office so you should keep your work style and environment similar to the office. This helps in getting in that ZONE.
We fail to realize how important ergonomics is. Initially i used to slouch around my home wherever i could find a space but rather than being productive, i became unproductive. If you are sitting in a chair which comforts your back and your table is of the appropriate height with enough leg space below it and you can directly stare at your screen at the height you are used to then this is the first step done right. Some people are used to working on two screens or even three and even that is fine.
Ergonomics is important!
Being a programmer, having an ergonomic environment is important to your health as well, stats show that if you have a desk job with an uncomfortable chair then their is a 65% chance that you would develop chronic backpain within 5 years of your job.
STEP 2 : Kill distractions
Nothing kicks you out of your ZONE faster than distractions. Social media, Lunch breaks, Coffee breaks, staring out of the damn window for no reason or responding to that funny meme your friend tagged you in.
In order to get in the ZONE quicker, start killing of smaller distractions first and then keep moving towards the bigger ones. For example, when you are well settled in your ergonomic chair and desk , you crave coffee and then you get up again. You just got distracted by Caffeine urges! To counter this, simply bring coffee along with you to the table in the first place.
I used to get up every 30 or 45 mins to hydrate so rather than allowing water to distract me from my work, i bought a water bottle and kept it on the desk infront me. Distraction killed! 😈
Kill Social Media!
This is a tough one to kill and even i struggle sometimes. The internet is all the buzz nowadays, especially Social Media. It innocently starts with a notification where a friend of your’s have tagged you in a meme and then 40 mintues later you watching funny CAT videos on Youtube!
Start gently on this one, i started muting all notifications using do not disturb mode on my phone which immediately turns off all notifications. You can further customise that mode to allow notifications from a selected few Apps like Gmail or WhatsApp. When you are on your break, simply turn on the notifications.
For your laptop, just make a habit of closing all links related to social sites when you are working or make a separate desktop space for those tabs. Both Linux and Mac offer desktop spaces where you can open up completely different Programs. Just open socials and interesting articles in a separate desktop space and then promise that you will only check them in your spare time. Once you start getting in the habit of only checking them in your time off, you will not feel the urge.
STEP 3: Organise you time
Trust me, i find it very hard to do this on my own but it helps. Start organising your time of work. Work for 2 hours and then take a break. Or work for 3 hours and then take a break. Find your rythm. But you need to realise that work hours cannot be lesser than 1.5 hours in a go. A study shows that 73% of people need to spend atleast an hour on something mentally strenuous to fully grasp and understand it.
Programming by default requires you to burn a lot of brain power so keep this 1.5 hours as your floor number before you get up for a break. Once you get up from your work, do everything other than thinking about work : check social media, talk to a friend, whatever you like, you earned this break!
If you are getting regular intervals of solid 2 hours of work with full concentration, its a much better output than a full day of small sprints of 30 mins work with distractions and breaks. Once you start seeing results of this, you will get tuned to this way.
STEP 4: Focus
Programming requires focus and attention, good code requires you to think the solution into your brain with all the variables, loops and switch statements. For this you need to be able to focus. Some people, quite a few actually, have this gift where they can easily focus onto something, normal people like me require time to focus on something. I used to struggle with focusing, the best tool which helped me in the focus department and which i recommend for any programmer out there is :
Noise Cancelling Headphones
Trust me, they work!
They get you in the ZONE quickly. They numb out all unnecessary sounds and background distortions and you feel like you are in a calm space where its just you and your thoughts. Good Noise Cancelling Headphones are expensive but think of that expense as an investment to your professional career of coding, similar to that of buying a good laptop for doing software development. Do keep this in mind that this is just the tool and you are the enabler of this tool. If you do not want to focus then no headphones out there can make you focus!
Both are equally good and although XM4s are the latest, XM3s are right up there when it comes to noise cancelling and you can get them on a discounted price. I use XM3s and they are fantastic for work and entertainment purposes.
If you find that they are way too expensive, start with smaller ear buds or wired headsets with Over-ear cups. They would work fine too.
Step 5 : Super Focus (Bonus)
If you are following the above steps then this is a bonus step which will help you to enhance you focus further.
There are certain frequencies which if your brain is exposed to vastly enhances its thinking capability. These super frequencies increase neural activity in the brain which increases your overall attention, creativity and focus. Meditators and Yoga instructors regularly use such frequencies in their sessions to stimulate brain activity in certains regions which attribute to calmness.
A cool website which works for me is myNoise.net
This is a great website where you have so many calming background sounds where each sound wave can be adjusted to your liking. All sounds are playing at an adjustable frequency and volume which soothes your brain.You have several hundreds of environments to choose from.
These surreal sounds with Noise Cancelling Headphones is a perfect recipe for focus. In no time you would be like The One! Dodging bugs and exceptions like a Pro!
I hope my experiences teach you a thing or two about being productive and writing efficient yet beautiful code.