Pomodoro Technique Python Script, track your goals and shape your future

Sharing is caring!

You can have agency not just over your own life, but over a small and important part of the world. It begins by rejecting the unjust tyranny of Chance. You are not a lottery ticket.”
― Peter ThielZero to One: Notes on Startups, or How to Build the Future

Awareness of Pomodoro Technique significantly increased during the COVID period.

I was not aware of that, but it is easy to understand why.

This technique is a great way to be focused and monitor your progress.

Google Trends also confirms this recent interest on a worldwide scale.

I started using it probably in 2012 and in 2013 I wrote the first article on my Italian blog.

I suppose you are already familiar with this productivity technique, it is not the goal of this post to illustrate how it works.

Actually the goal of this post is to describe my last Python work.

It is based not only on the Pomodoro Technique but also on a “life rule” from the book “Outliers: The Story of Success” by Malcolm Gladwell.

The book states that to become an expert you need to reach 10.000 hours of practice.

There is no natural talent, but a lot of practice.

It is the same advice of Gary Vaynerchuck in his famous video “Overnight Success”.

Ok, someone can say that this is not the best proxy to evaluate an expert and I would agree with him, but in my opinion, gives great guidance.

There is no short-cut to mastery than ‘putting in the hours’.

As a Self- taught Data Scientist I used this rule as a KPI of my learning path through the time.

In order to monitor and drive my efforts, I developed a Python Script available on Git Hub, and on this Google Colab Notebook.

The script analyses my Pomodoro Logs, extracts the Python Labeled Logs, evaluates past performance since 2017 when I started learning Python, and based on these results It forecasts with different methods possible future scenarios.

My Python Script is a never-project, in fact, every time I learn something new or I found a problem (a coding bug or a theoretical one) I spend several weekends and nights to fix it.

During one of my chat on LunchClub, I discovered that there is a new cultural phenomenon of self-tracking with technology and a community of users and makers of self-tracking tools who share an interest in “self-knowledge through numbers.” That is called Quantified Self.

You can check on Wikipedia for further information.

Why You Should Use This Script

I wanted to develop something useful (and free) to track your goals.

I think It can give you some key points on:

  • How much you have accomplished
  • How much you are still missing
  • Based on different time window scenarios the probability of occurrence of them (ex. Based on my past track record how much probable is to become an expert in 4 or 5 years?)
  • Can help you define a new strategy to be more focused and avoid time-wasting
  • I set an ideal goal, three hours of practice every day and I compared this goal with the actual logs on the different time frame  
    • Absolute, since I started studying Python
    • Yearly basis, last 365 days and starting from the current year
    • Quarterly basis
    • Monthly basis, last 30 days and also starting from the current month
  • Based on the different time frames the script returns the spread between the Actuals and the Ideals hours allocated. Ideals hours are the cumulative sum of three hours per day goal, really tough benchmark because it considers also, Saturday, Sunday, Holiday etc…

Create your personal copy

You can create your copy of the script and start analyzing your personal logs, probably you have to change the header and minor issues related to how your logs are formatted.

Let me know and keep me updated if you are using it. If you have any trouble with the header I would be happy to help you.

Obviously, if you don’t know why are you doing something if you miss the purpose is a total waste of time as usual. This is an agnostic truth that goes beyond any focus/time management techniques and app.

Some Personal Audit and Assessment

In my journey as a Python Self Learner, I can states that I am halfway to become a Senior, and, obviously, getting a full-time job as Data Scientist skyrocketed my learning curve.

I am very happy about my recent results.

The absolute logs-The dotted line is the Ideal curve while the continuous one the Actual

The 2020 Python logs-The dotted line is the Ideal curve while the continuous one the Actual

Just for learning and as an exercise for me I used different estimation methods to understand and plan the future ahead.

Using my past data here some results:

  • Markov’s Inequality returned 50% probability to become an expert between 4-5 Years
  • Normal Distribution returned 50% probability to become an expert in 9 Years
  • Based on a Prophet Forecast, an open-source library developed by Facebook to model and forecast seasonal data, there is a 50% probability to become an expert in 6 years. I think this is the most reliable estimation because gives a different weight to older and newer data

Funny fact is that as Self Learner my most productive days were on Friday, Saturday, and Sunday and obviously summer was the less productive period because I dedicated all my energy to my family business, a beach resort in Gaeta.

The two main events that flattened the curve were:

  • Last summer season when I worked relentlessly to improve my family business revenues
  • The Italian Engineering National exam. In this period I had to focus only on Civil Engineering Topic
Six Years Forecast Applying Facebook Prophet On Pomodoro Technique Logs
Six Years Forecast Applying Facebook Prophet On Pomodoro Technique Logs

Working Progress

There are some issue and new features that I want to develop through the help of some friends:

  • Set a lower boundary on Prophet Forecast. The cumulative log function is a non-negative monotonous growing function, this hypothesis is not given as an input for the Prophet object, so It will also forecast a possible decrease in the cumulative hours recorded
  • All Python Logs are labeled also with “subtopic” like “Data visualisation”, “Working”, “Studying”, “Pandas”, “Prophet”. Would be really interesting to understand how to extract value from this semistructured data
  • Define a progress chart. I could use a stacked bar chart, but after reading this book, I started thinking of a new way to communicate it and I decided to use a Square chart
  • Long term, create a Data Lake on AWS where I can get all the data from:
    • Pomodoro Techniques Logs
    • Running App Logs
    • Meditation App Logs
    • Google Sheet File with some other time-series data
Sketching Progress Charts

Thank you for reading the article!

If you liked or you think is useful feel free to share. 

With just a tweet or a like on LinkedIn new opportunities can arise.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Related articles

Beware of YES Master NO

Talking about negotiation, like other people, I am not so good at handling “NO” as a reply.  I mean, after

Questions?
Let's get in touch!

Tell me about your project

I will arrange a meeting to discuss the details

we will start working together

Scroll to Top