Month 15 — I have hit my first plateau — Time of doubt and questioning

Siraj Samsudeen
Nerd For Tech
Published in
4 min readFeb 16, 2021

--

This month has been a bit unsettling. There were a number of things that I am coming to realize slowly:

  1. I am surprised at the amount of knowledge I forget. When I tried to go back to my personal pet project — Quran SRS — after a gap of 8 months. I have even forgotten what virtualenv manager I was using and how to even activate it. Since I installed Minconda when I was studying the Django Crash Course, it somehow messed up my python installation (or at least that is what I think). Hence, I could not even start the Django server. I could not believe that I have completely forgotten something that I was using multiple times per day for a number of months.
  2. Spaced Repetition System like Anki and Flashcard Deluxe have been helpful. But once I hit a certain number of flashcards, the downhill starts. There is not enough time to review all the cards as they become due.
  3. I think that I have reached “The Tutorial Hell” — a plateau you reach after consuming a number of tutorials/books on a given topic, but still not moving out of the Beginner zone. I have faced it with Django and Javascript earlier and now I am facing it with Pandas. Each new tutorial/course on Pandas I do adds very little new information and more importantly, they still not help me to get ahead with applying Pandas in my projects. I was hoping that somewhere I would find some comprehensive material that would give me the knowledge I am looking for. But I am yet to reach that “Tutorial Heaven”.
  4. With those gaps in knowledge, then google and stackoverflow are the places to go to find ways to move forward. However, every answer to the question I have, touches on a topic that I don’t fully understand e.g. python regex, linux concepts and commands, etc. — should I stop to understand them in detail? Or should I move forward without fully understanding?
  5. So far, I have used my SRS system as the single place where all my knowledge goes. However, this makes it very difficult to have a linear top-down view of the material. Random review of different ideas is helpful, but I still miss the linear view of having all my notes on a single topic in a single place.
  6. When someone else asks me about a topic, I find it hard to share the knowledge/resources I have accumulated in an easy way as they are all buried in my Anki flashcards, which is very cumbersome to search or to share with others.
  7. Reading advanced books before I have used those ideas — this is a classic chicken and egg situation. Last month, I started going through Fluent Python book and enjoyed it, but at a certain point, I felt that the concepts were becoming too technical — this means that I have not had opportunity to program using the constructs that are covered there hence they seemed like theory to me. So, I decided to stop reading.

So, I started thinking about my approach to learning again. Reading the Ultralearning book one more time gave me a lot of hints for the kind of changes that I could do.

  1. The book says that the best way to learn is to do the thing that you have to do ultimately from day 1 (Directness principle). So to learn programming, I have to code on a daily basis. Though the tutorials do seem like a good way to do that, there are far better approaches to being direct in my learning. The author compared Duolingo app vs speaking from day 1 in the target language. These 2 approaches are extremely different. When I reflected on my last year, the most learning I have had came from the 2 projects I have done — though I did not know a lot, but since I had a concrete problem to solve, I did climb the mountain. I think that I should do more of that, rather than trying to read one more tutorial or one more book.
  2. After the project, it is a good idea to read some books to fill the gaps and to reflect on the ideas I may have used without fully understanding.
  3. I need to take time to learn some fundamentals like Linux command line, Regex, etc. which seem to come up often. For areas like these where I do not have much prior knowledge, I need to go through 1 or 2 books/courses and then try to apply the ideas in my project.
  4. I need to take the time to take better notes as SRS flashcards have proven to be insufficient as a learning log over a long period of time. I came across the Zettelcasten system and started using Obsidian. I would write more about this as I experiment on this.

So, to summarize, the focus for the next few months is
1. to learn by doing projects
2. to learn the core underlying concepts like Linux and tools like VSCode at a deeper level
3. to take time to create better notes to document my knowledge

--

--

Siraj Samsudeen
Nerd For Tech

An entrepreneur who is coming back to coding after a gap of 16 years due to love of coding.