Learning Python & Front End — 11 Month Progress Update — Time to master Test Driven Development

Siraj Samsudeen
3 min readOct 2, 2020

Last month, I wrapped up my Javascript project and completed some of the more advanced functionality. Since I was edging into advanced territory, I really wanted to have automated test-cases to help me not to make mistakes and to really have the confidence each time I add new code or refactor existing code.

Hence, I took a look at 2 testing courses by Kent Dodds in Front End Masters, but I did not feel that I got what I wanted — it was covering way too much internals and was not beginner-friendly. Even after watching these videos, I did not feel confident to start writing test-cases in JS for my project. Given the tight timelines, I parked the idea of automated test-cases and tested manually and finished the project.

Since I was interacting with APIs a lot, I needed to deeply understand how async works. Hence, I took the time to finish another course from Will Sentance on Front End Masters which not only covered the internals of Promises and async, but also the generators. I was exposed to generators in Python and it was quite nice to see how they work in JS. What is beautiful about Will is that he made us build the implementation of await using generators and then finally said that you don’t have to go through all this pain — just use the new await keyword. Being able to code await on our own really gives a deep idea of how it works under the hood. I am so grateful for this amazing teacher and his beginner-friendly explanations of very hard concepts.

Since it has been 3-months+ since I started working on the JS project, I took it easy for a few days so that my mind is completely at rest. No technical work, just some errands and admin work at office. This helped me to start this week with a lot more energy.

When I did a review of my last 3 months, here are my key realizations:

  1. I should do ONE THING at a time. That means that I should deep dive and master a topic really well, rather than moving from topic to topic. Though there are a lot of items to learn, it is much more productive to do ONE THING at a time. Otherwise, there is a lot of stress generated when moving from one topic to another topic without really knowing anything deep.
  2. I should write a summary of every course I do — this would help me to really internalize the key messages. I realized that I keep forgetting even the most impressive ideas after a while. Though I was inputting a lot of questions into my SRS system, given the pace at which I was learning new ideas, there were a lot of cards to review which led to fatigue. Rather than creating flashcards as I do the lessons, I decided to wait till I finish a full course or a book or even a topic — then decide what is worth putting into SRS system for long-term retention.
  3. I should take the time to document the problems I encounter and how I solve them. As I was spending more and more time in VS code, I took the time to read various articles and set up VS Code to improve my productivity. And I encountered a number of problems when setting these tools up. But I did not document them — recently, my son asked me to set up his VSCode to do some of the things I was doing, I realized that I had even forgotten what all tweaks I have done.

My focus in this month is going to be only one topic — Test Driven Development (TDD). I love many of the ideas of Test-Driven Development, mainly very small incremental style development, that is almost dictated by tests. It looks quite promising on the surface.

During my down-time, I also read a great book on Pomodoro to improve my implementation of Pomodoro and I got a lot of ideas to tweak and improve my process. Here is the book if you want to check it out

https://www.amazon.in/Pomodoro-Technique-Illustrated-Pragmatic-Life/dp/1934356506

Since I have started with the excellent book on TDD with Django long back, I am gonna restart the book and finish it off.

--

--

Siraj Samsudeen

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