Building a Notion Dashboard to Master Data Structures and Algorithms

ยท

5 min read

As a passionate software engineer deeply invested in web applications and various technologies, I am always on the lookout for innovative ways to enhance my skills and become a sought-after professional in the tech industry. One of the strategies I've embraced to achieve this goal is the creation of a dedicated Notion dashboard aimed at improving my proficiency in data structures and algorithms.

Motivation

In today's rapidly evolving tech landscape, the significance of continuous learning cannot be overstated. Top-tier tech companies seek individuals who can not only deliver impeccable code but also exhibit exceptional problem-solving skills. Mastering data structures and algorithms can significantly bolster these skills, making a professional stand out among their peers.

Building the Notion Dashboard

Selecting Notion as the platform for my learning dashboard was a conscious choice. Its flexibility and ease of use allowed me to create a comprehensive and organized environment tailored to my learning needs.

Sections and components of the dashboard

  1. Dashboard Title: This is the title of the dashboard

  2. Links: I keep useful links here that I need regularly.

  3. Resources: This contains resources that I find helpful, like youtube playlists.

  4. Inspirational Quotes: Just a little something to keep my spirits up

  5. Today's Problem: These are problems from the database that is being filtered to show the problems whose 'Next Review' date falls on a particular day

  6. Due Articles: These are articles that are ready to be written, they are also gotten from the problems database but filtered based on if they have an article written on not.

  7. Time Measurement: This is a stopwatch timer that can be used to calculate the time spent on a problem

  8. Year Progress Bar: This shows the year, month, week and day status in the form of a progress bar

  9. Pomodoro Timer: The Pomodoro timer can be used to know when to take breaks and when to resume working

  10. Music: This is a playlist of different Spotify. You can choose anyone based on what you want.

  11. Database: This is the problem database and article database.

Anatomy of a Problem Entity

A problem entity refers to a particular problem itself. A problem entity consists of various sub-sections which are:

  • Problem statement: A problem statement is the problem prompt. Eg. Given an array of positive integers, return the largest integerโ€.

  • Coding Exercise: This section is a small code component where you can write your code without auto-completion. It is not an (IDE), but it is usually helpful for writing pseudo code.

  • Review Notes: You can add any type of notion block inside this toggle component. I like to use it for storing links to videos that explain the problem.

  • Tracking: This is a simple table that can be used to keep track of new ideas or thoughts that occur during each revision. Its columns include the current revision date, the time it took to solve the question for that day, the score and any other notes or details.

  • Solutions: I usually write my thought process here. This sub-section is divided into my initial thoughts when I first saw the problem and the plan that I later used to solve the problem.

there are other metadata on a problem entity that is used to filter or sort the problem database. These properties include:

  • Data Structure/Algorithm: These are the data structure(s) and algorithm(s) that are employed to solve the problem. E.g. "heap, array, merge-sort".

  • Source: This is the place that I get the problem from, it can be "Educative" "Leetcode" or "Blind 75".

  • Score: This can be any value from 1 to 5. I use this to score myself based on my performance at the time that I am solving the problem

  • Last Reviewed: Last reviewed is the date that you last solved the problem. This is one of the most important properties that is used to calculate when next you should revisit the problem. This is important for spaced repetition.

  • Ultimate Reviewed: In any event that you are not able to solve or visit a problem on the day it is supposed to be visited, the ultimate reviewed date is usually three days after the current date.

  • GitHub solution: I usually save my solutions in my repo so that I can revisit them later. So this property is the link to the file

  • Leetcode solution: If I saw the problem on leetcode, I can add the link here so that I don't have to search for it on leetcode anytime I want to practice

  • Article Link: I wrote a few articles on some problems. Although every problem does not have its article yet, I am working on that. So, if you are interested in doing this alongside your studying, you can use this property.

  • Published article: Using notion formulas, this checkbox indicates whether you have an article or not

  • Created time: This refers to the time that the problem on the prompt entity was created.

Implementation Details

Creating a user-friendly and intuitive dashboard required thoughtful planning and customization. I made use of Notion's customizable templates and layouts to structure the dashboard to my liking.

Benefits and Insights

Regularly engaging with the Notion dashboard has yielded several benefits. I've observed enhanced problem-solving skills, better time management, and increased confidence in tackling complex algorithms. For instance, when I wake up in the morning, I don't have to search for a problem to solve, I can already see them from the dashboard home page. It doesn't get easier than that..๐Ÿ˜๐Ÿ˜๐Ÿ˜

Results and Progress

By consistently dedicating time to the Notion dashboard, I've seen substantial progress in my mastery of data structures like linked lists, graphs, trees, and tries(I thought I would never be able to understand tries, lol).

Tips for Others

For those considering building their learning dashboard, I recommend starting small and gradually expanding the content. Consistency is key, so set achievable goals and stay committed to your practice routine.

You can get your copy and duplicate it on my GitHub profile: https://github.com/valentinesamuel

Please follow me on GitHub if you found this article or dashboard useful.

Conclusion

Creating a Notion dashboard to practice data structures and algorithms has been a game-changer for my professional development. It's a testament to the power of innovative learning strategies in staying competitive in the tech industry.

ย