Athletes’ Routines for Programmers

Simeon Vanov
9 min readNov 2, 2020

Professional athletes have always stood as a highest order of professionalism. Usually people look up to them because of their endurance and success in their field. In pursuing greatness those athletes find themselves being worshipped by many. Athletes that are at the top of the game can certainly be people who have achieved the unachievable, so it only makes sense to try and learn from them about productivity, schedule, determination, goals and so on.

The most obvious difference when we start trying to apply the athletes schedule in programming is that athletes work with their body and mind (psychology is a very big topic for every athlete) while in programming we work only with our mind. But as a professional athlete cannot leave out the topic of psychology it is also hard for human being to be very efficient without working on his body as well. There are many studies showings the positive effect of the physical work and how it improves the brain functions. That is why the topic of Body, Mind & Emotions getting more and more attention.

Another obvious difference is that the act of doing a sport is totally different than the act of programming. But will see in this blog post whether to be a high achiever is really that different in different fields.

Okay so let’s start with the list of things we can do like professional athletes:

  1. Have a daily schedule. Athletes have a very strict daily schedule. They do not just go around the day not knowing what they will do. The routines and habits are at the core of being a pro. Every athlete knows how his schedule looks like. At what time he has to wake up to be on time for training, how many trainings he will have, on what diet he is and when he has to eat, how much sleep and nutrition’s he has to consume to have the needed energy. Having a daily schedule will help to keep yourself focused and not lose track on what is the next thing you must do. Even more you when you have a schedule you can divide your time better on different topics, like learning, working, blogging and so on. Although most of the time I do not achieve my plans even at 80% it is still driving me to have better productivity as when I have time ranges this leaves me with less chance to procrastinate. Either schedule your days at the beginning of the week or each day you can start fresh and schedule what you must do during the day. For blocking time Calendars are doing a great job. You can also keep track of the tasks with an app that is synced with the calendar. In this way you can keep track of what have you already finished or what needs to push for the future and have a reference without forgetting it. Also ticking the box that something has been finished releases the chemical dopamine in our brain which is connected to feelings of pleasure, learning and motivation. When using the calendar it is better to just stick to time boxing on a topic for a specific time than a“ToDo” list. Just target a topic for 1 hour for example and then leave it. This is something Nir Eyal makes very clear in his book “Indistracatble”. I will leave this point with a quote “Depending on what they are, our habits will either make us or break us. We become what we repeatedly do.” ―Sean Covey
  2. Sharpen your weapon. Athletes have their body as a weapon. They work out a lot just to make their body endure more and stay younger for a longer. Your brain is your weapon. If you want to be good at programming, you must be sharp and have fresh mind. Optimal brain health is the most important thing, and this implies good nutrition balance in your body. Some foods are better than others for the brain. Meditation is another way to sharpen your brain, it has been researched many times that meditation increases the gray matter in your brain and is very helpful for your mind. Another thing you can do is play chess, play an instrument, do IQ tests or learn new language. Researches showed those activities are increasing the level of creativity, focus and keeps your brain younger for longer. Another important topic is recovery. Professional athletes are notorious about their recoveries with ice baths, cold rooms and all different techniques that are in the book. For the brain it is not so simple to recover, your options are sleep, active rest and meditation. The active rest is a topic of the book “The Power of Rest: Why Sleep Alone Is Not Enough. A 30-Day Plan to Reset Your Body” from Dr. Matthew Edlund. For active rest you can do the mountain pose or you can do a paradoxical relaxation (type of mediation where you calm your mind and avoid all verbal thoughts). Athletes knows if they do too much workouts they will be injured. In programming it is harder to know when to rest that is why you should give yourself period of resting for your brain in order to avoid injury (burnouts).
  3. Training is different than playing a match. Most of the time athletes have trainings, they may have 2 training session of the day with different intensity and different focus. The time to improve and learn new moves is in the training session it is not in the match. When the time for match comes, they should be as prepared as possible. But the main point is athletes spend most of their time improving, repeating certain moves or increasing their overall skills, doing drills and so on. They don’t spend their time only playing matches. I think in the world of programming there is a big gap in that direction. All we do is practicing, we have the scrum and agile formats, where we are given backlogs that must be finished and there is never time to increase your overall skills and get better. Believe me that if you are not actively learning you are not getting so much better. You might be even repeating the same bad practices year after year. Experience is so important but not in the amount of years but in the amount of completed projects, practice on a given topic and gathered knowledge. So, try to divide you work into sessions. Try to have at least one session a day to train yourself. It might be as preparation for the other sessions of the day and research the best approach for a certain task. Maybe to investigate design patterns, look for OOP techniques how to structure your objects, read an open source project that has good practices in it or whatever else you decide will give you an edge in the next match (fulfilling a requirement). You will see that your level will increase steadily, which of course will give you the opportunity to take the right decisions from the beginning and improve you code quality.
  4. Training Rounds. After every training round or match athletes have a small break. The idea is to keep theirs body fresh. If pushed too much they will be totally exhausted and will need too much time to recover. Athletes know very well the limits of their body. But in programming it is harder to understand the limits of the mind. The quantity of the sets you must do in programming should be defined totally by you and your cognitive ability. When you do physical training there is not much you can get distracted from but in programming you need a lot more self-discipline. It is harder to stay focused on your training when the whole internet is at your fingers just waiting for you to get distracted. So, try to have rounds of quality work and then have small break in which you can check the news, or social media. Pomodoro is a very good technique of getting such incremental time periods where you work and then rest. When doing such sessions, you can see just how much quality time you have spent working. Above average results are being able to work 12+ sets of 25 minutes. This also gives you a great way to metric the amount of your quality work. Keep in mind that it is better during the resting time to do some physical activity instead of just opening social media. Scrolling different websites will only decrease your cognitive power and it will be harder to do the next round without distracting.
  5. Analyze your opponent. Before going into a match, the preparation about the game plan is very important. It is the difference between earth and the sky when a team or a player shows unprepared or prepared for a match. Needles to say athletes spend time to revisit their game plan and be sure they understand what they have to do in different situation during the match. As programmers we can look at the requirements as our opponents. The athlete has team members that helps him analyze the opponent. The person that is responsible to help you analyze the requirement is your Product Owner. Be sure to identify all the places where you have gaps in the preparation for the backlog.
  6. Match tactics. Athletes have a match tactic before starting the match. The same goes for programmers after the analyze it is your duty to come up with a plan how to resolve it. If you cannot create a good tactic how to implement the requirements it is good to take an advice from a colleague but be sure to not start unprepared. Good match plan will make a difference. After that it is time to execute the game plan. Sometimes you will execute it perfectly, sometimes your game plan will have gaps and sometimes just your execution will suck. But be sure to try your best every time with the right attitude.
  7. Match analysis. Of course, after every match there is analysis in the locker rooms. What went wrong, what went well. This data then is reflected in the next match and new decisions are taken to fix what went wrong and but also try to keep what went well. I guess you can see it is the same in programming, after every iteration there is a time for analysis. Usually this is the retrospective meeting, but it is for the team. It is a good idea to think for yourself about your work after every backlog item.
  8. Attitude. For athletes it is very important the attitude with which they are play and train. I hear all the time in interviews how they are happy when they can show the right fighting spirit in matches and training. The same applies in programming. One of the most important factors of one performance is the attitude with which the work is being done. It is not by chance that attitude is found in the formula of success ASK — Attitude, Skill and Knowledge. There is a great quote accenting on how important attitude is: “If you don’t have skills, it can be acquired. If you don’t have knowledge, it can be gained. But, if you don’t have attitude, you are in trouble.”
  9. Goals. Having personal goals that are written down and you chase will make a difference. When you know what you are after and why you are after it will bring you much more energy to execute. Revise your goals for your career, things you want to learn and ways you want to feel.

So, the conclusion is that trying to be a high achiever we can mimic a lot of things from the professional athletes. Some of those concepts are already introduced in the programming world through the Agile methodology trying to make the team performant. But it is also a responsibility of every member of the team to want to achieve more and push himself to become better. The idea of the backlog was that every person that wants to be a high achiever needs to be very deliberate about his habits and his daily routines. Things do not just happen, and we have to do our best put ourselves in best possible situation for success. Another very nice quote that wraps it up is: “The harder you practice, the luckier you get.”

--

--

Simeon Vanov

Passionate developer with .NET & cloud expertise. Sharing knowledge on SOLID, testing, design patterns, web concepts & microservices. Let's learn together!