Project based learning

It’s interesting to see how your thinking process evolves with time. You make mistakes and learn from them. You find better ways to do things.

One of the things I have observed, is that purpose and direction in which I am going really matters. For example, the purpose of my undergraduate degree is to be exposed to a lot of material and knowledge about a subject I am interested in. The purpose is to learn with a goal of applying this knowledge in the future or ideally now. There is indeed a lot of information out there and not all of what you learn is immediately actionable. You may learn something now but realise only a year or two from now, the domain and the problem in which you can use this knowledge you were once exposed to.

Having said this. The biggest and perhaps most important lesson I have learned thus far in my degree and life, is to have a purpose with whatever I am trying to do. And often this purpose for me is a project. Or many projects. I find it really inefficient, trying to learn things, ‘for the sake of learning’. You try to consume information with no goal in sight of how you will use it. In university, you are exposed to a lot of information, but very often like in high school, you lack context. You often lack the perspective and understanding in seeing how what you are learning is used to solve some really interesting problems in the world.

For myself, I have adopted a very serious mind set switch to project based learning. Since I am a big fan of mind maps, I have a personal mind map just for that. A mind map named projects that I can very quickly open with just a single keystroke. In there I outline the projects that I want to work on and complete. Projects is the root mind map of all that I do and everything stems from it in my world. For example ‘learning’ and ‘books that I want to read’ are two projects that I love doing and allocate quite a lot of my time towards but they are still projects and since they are projects, I have to manage them smartly and allocate the correct time for these projects given the context of what I want to achieve and do. Here is a screenshot of how my ‘projects’ mind map looks currently :

It’s structure is fairly simple but very powerful and clear. I have projects I want to build and work on separated into appropriate categories. And I have projects I am currently working on with how much time I want to spend on them written down beside each one. Writing down this time is very important as this is the most important currency that I have. I can’t for example just write down these projects and not write down what time I want to spend on them because a project like ‘learning’ is endless. There is no finish line to ‘learning’ or ‘books’ and yet they are projects of mine that I do. So the only thing I can do to allocate and manage my projects is time.

Learning how much time to allocate and more importantly to which projects to allocate this time is an art. An art that pays very high dividends if you do it right. I am still learning this art.

However the other challenge we get is how to accurately measure this time? This is a really fun challenge and I am quite happy to say that I have solved it for my myself. I use three tools to track and manage my time. And the first tool is


Toggl is genuinely one of the best pieces of software that exists there for time tracking. It is incredibly simple and serves the purpose of tracking time in relation to projects really well and it does it extremely fast so there is no friction between me and the software. A quality I admire greatly in software.

I have preset number of ‘domain’ projects. These are projects that can describe any other activity that I do under one theme. For example ‘reading’ is one of my ‘domain’ projects. Under ‘reading’, I can have a variety of activities. If I for example am reading the book ‘Clean Code’, then this activity will fall under ‘reading’ project with activity ‘clean code’. If I am reading some article or going through articles in my reading list in Pocket, then this activity falls under ‘reading — articles’. Starting to track this activity is lightning fast on macOS and its Toggl desktop app. I have a hotkey that starts and completes tracking of a project :

Tracking time is amazing. What is more amazing is actually seeing the data you get back from this tracking. I review my time tracked in Toggl on by-weekly and by-monthly basis. On Sundays I check what time I spent, where and how and how these numbers relate to my predictions and allocations in my ‘projects’ mind map. Toggl actually provides really neat charts to help you visualise this time. Here is my tracked time from last month, of February for example :

Toggl tracking of projects is extremely useful but it has downsides. The major downside is that you might forget to actually turn on the tracker, or do something ‘else’ whilst the time is tracking a project you ‘should’ be doing. All of this is solved with some mindfulness and discipline but that takes time. To combat this, I use another tool to passively track all of the time I spend on my computer. Toggl is my active tracker, in that it requires some action on my part to keep the tracker going correctly. I also have a passive tracker.


This is a really wonderful application, albeit a little expensive. It tracks all of the activities that I do on my computer. It’s actually quite sobering and scary just how much data it can collect. It collects the amount of time that is spent in each window of each application on my Mac. It tracks how much time I spent on specific websites and when. It tracks what documents I am editing and when, what mind maps I am editing and when. The list goes on. This amount of information is certainly being collected already by the likes of Apple and Microsoft. All this app does is expose quite a lot of it to you and allows you to view it locally in the comfort of your own privacy. There is an alternative to it, RescueTime but I am very wary of allowing this kind of sensitive data being sent to some server across the globe.

So that is timing, a big brother living and running on my computer at all times, collecting information about me. How can I actually use this information to help me achieve my goals of more accurate time tracking and more mindful living? Well Timing actually has a lot of really neat functionality builtin to quantify the time spent. You can say for example that spending time in your text editor is ‘time spent on code’ and thus this time is very valuable. You can then also say that time spent on reading reddit and hacker news is ‘bad time’ and time that could be spent elsewhere so Timing will rank this activity worse. In the end, Timing gives you a percentage which it calls a ‘productivity score’. Here is my productivity score right now for example as I am writing this article :

This 58 % is calculated based on my own rules where time spent writing code, reading books is used to push the percentage up and time spent on reddit, hacker news, any other kind of social media is ranked really badly and brings the percentage down.

I hope you can see how useful having this big brother as your friend is. Timing also provides neat statistics about where you have spent your time and how much across your day, week, month or even year. Timing is thus a very powerful passive tracker that I often use on by-daily and by-weekly basis. In the evening I like to look at my day and see how I have spent it. It also helps writing my day evaluations in my journal in the evenings.

The third tool is an application that I use and have genuinely fallen in love with.


It is a task manager that is really flexible and can fit to any kind of person’s workflow. It’s so superbly well done and I might write an article on it later going more in depth about ways in which I utilise all of its power.

For the purpose of tracking time and being mindful of what activities you are doing currently and what activities are there to do, 2Do is also amazing.

I have a very complex relationship with 2Do as I use it as a kind of glue to stay on top of my large mind map, my learning, my projects and my life. Each task is an actionable atomic piece of action that I can do and each task should ideally once again has to have time associated with it.

For example, I decided to start writing this article as I was travelling on the train. So I started 2Do and wrote a task ‘write’ and gave it a tag ‘2h’ :

If I want to start working on this task. I highlight it, press a hotkey that will take this task and put it into my menu bar. I can then use hammerspoon to show me what task I have in the menu bar at any time with another hotkey. Here is gif of how it works all together :

After the task is in my menu bar and in my mind. I activate my timer workflow and type ‘2:’ since that was the time estimated for the ‘write’ task.

The semicolon in the end is used to indicate that this number is, number of hours. So ‘2:’ will start a timer that will last 2 hours. A number with no semicolons will start a timer for this number’s minutes

I can also combine it all to have hours and minutes in my timer :

As I press return on any of these tasks, the time is on. I can only do this task, and this task only. Nothing else. It’s actually very enjoyable to let go of your mind from everything and just focus on this one task, whatever this task is. It may be some subtask in a larger project of mine but for all I care, I just need to complete this one subtask and I have 2 hours to do it.

In essence, this is my workflow. I try to eradicate any kind of friction in the way of me achieving my goals and tasks and I use software and and practiced mindfulness to tame my distracted mind. I try to simplify and minimise all that I do so that I can approach it in a stack based fashion, one by one. No wandering around when I do work.

And it all starts with a mind map. The root of it all.

And each project is another mind map. I have a mind map for each specific course in my university where I collect all the information I know about the course. All the questions I have about the material. All of the assignments and tasks that I need to complete. I have a mind map for ‘learning’ which I actually share with the world where I keep all of the things that I want to learn. I have a mind map for ‘books’ where I outline all of the books I am reading now and want to read in the future which I also share with the world. And each project, big or small often has a mind map and life of its own. Be it an alfred workflow I am making, a website, an extension or any other project that I have in my life.

It all starts with a project.

If you enjoyed reading this, you can give it a 💚. And look into my other articles I have written 📚 or try out a search engine I am making to learn any topic on Earth in a guided way. I also share things on Twitter 🐦.