1 Year of Learning Python & Javascript

Siraj Samsudeen
8 min readNov 14, 2020

--

Photo by Tianyi Ma on Unsplash

It has been a year since I have started learning Python. It feels like a long time though. As I look back, I am filled with immense sense of gratefulness for this journey. Never did I think that I would make so much progress given my other work commitments. Never did I imagine that my personal pet project — Quran SRS — would be up and running so fast. Never did I envision that I would end up doing a major programming project as part of my professional work.

Getting back to programming is my journey in the surrender experiment.

When I made the intention to get started with Python, I did not have anything concrete in my mind. I did have a number of vague ideas of big things I could build, but nothing concrete and doable in the short-term. However what ended up happening time and again in the last year is a surprising sequence of topics/challenges arranged in a thoughtful way, even though I did NOT do it at all. When I finished learning a topic, something would spring up that would help me to put what I have just learnt into practice. Or some other problem/need will come up in an unconnected area (for example, in my professional consulting work with clients which has nothing to do with programming or a friend asks for help in getting more done with focus during the workday). What is surprising is that each of these unconnected situations ended up helping me advance in some aspect of programming.

As Michael Singer says in his book on page 132

Around that time, I began noticing that every job seemed perfectly sequenced to advance me to the next level in my programming career.”

He also says

“I passionately loved programming, and I loved getting to use that talent to help people”.

So, as I look back, I am filled with gratitude for the way situations have unfolded and for the inner guidance that I have received from the All-Merciful, the All-wise.

The same goes with the topics and the materials to study. I would make elaborate plans to study some topic, but something else would come up that my mind would cry as a distraction, but when “I calmly and willingly accept the challenge that is presented before me and could see what is asked of me, without the interference from my limited, personal mind as to my plans and preferences, the outcome is always pleasant in the long run”. In difficult situations, I tried to recall and repeat this phrase from this book — Obstacle is the way

Willing Acceptance at this very moment,

Objective Judgement at this very moment,

Unselfish action at this very moment

Though there are 3 parts to this affirmation, the first part (willing acceptance) and the last part (unselfish action) were the hardest — hence, they put me in a totally different state of calmness, connectedness with the Almighty and openness than what my conscious and self-focused and short-term thinking personal mind could put me in. Then, I need to see what action would provide the most service to others and what action would please my Creator the most. It was NOT that I always passed the test and was always calm. But whenever I would take this approach, it is as if peace descended on me and the path of least resistance opened upto me, even though I would realize it only after a few days or weeks.

The reason I am talking so much about the surrender experiment is that I am not such a person for the first 10-15 years of my professional life. I believed in setting ambitious targets, working very hard, making sacrifices and achieving them one-by-one. In other words, I believed that “I” was in the driving seat. But ever since, I have started up my company, I realized that “I” was NOT in the driving seat. As I have been learning to blend my long-term habit of planning and making progress with dealing with the situations as they unfold, getting-back-to-programming project has been a veritable proof of the progress that I could make calmly without getting a lot of stress.

Here are my major milestones this year:

  1. 2 versions of my personal pet project — Quran SRS — first version using Google Sheets and simple Python and the second version using Django

2. A professional project to take the contents of a manual in Word Doc to upload into a helpdesk system as Knowledgebase Articles.

There are 2 techniques that have been tremendously beneficial:

Since I was learning a lot of things, my favourite technique in language learning — Spaced Repetition System (SRS) proved to be of immense help too:

I combine my SRS system with the concept of Coding Kata — repeating the same problem again and again in order to improve muscle memory and to implement different approaches to solving the same problem as I gain mastery of the language.

Here are 2 key mistakes I kept making time and again throughout the year:

  1. Surfing disguised as Learning — Surfing and reading about possible topics I could learn and possible books and courses. Each time I read a book or a stackoverflow post, it links to many other possible places to learn and deepen the concept — It was so easy to click and see where each of these wonderful future get-away places could look like. But as I look back, I feel a lot of it was just purely wasted time. It would have been better to focus on one book/course at a time till I fully master it.
  2. Reading ahead without practising Or just reading technical books like a novel — Sometimes, there is this inner urge to just finish something. In these times, I would be turning many pages without stopping to practice and to integrate the new knowledge into my SRS system. At other times, I would finish a book or video course and think that I am done whereas it would take a few more iterations through the same course to “fully get” all the ideas. The key is patience to repeat the known material and to practice by actually typing and running the code from memory.

Here are the key topics/books/materials that I am very grateful for:

This is the book that got me started in Python and gave me so many avenues for practice and application — if you are getting started with Python and are not totally new to programming, then this is a great book. If you are totally new to programming, I would recommend Think Python first before this book.

CheckIO is a great place to practice Python using simple problems. The biggest benefit of this site is to see great solutions posted by more experienced python programmers. This month, I am getting back to CheckIO regularly to sharpen my Python skills.

Though there are many great courses on Front End Masters, I loved this teacher the most for helping me advance my JS knowledge.

Spending 5-days together with a great programmer-cum-teacher like Kevin in a nice place like Nice, France (that too just before the whole world entered into the Covid 19 Lockdown) was such a blessing.

Last but not the least, the book I just finished last month.

This book convinced about the real value of TDD and what it takes to do TDD in a real-life project. I am so grateful to Harry for writing this book in Django.

There are 2 other topics that interested me a lot, but I have not been able to spend much time in them — let us see whether I get opportunities to make progress on these 2 topics:

  1. Vue JS
  2. Functional Programming

Here are few other books/courses that I have done last month, just for the records.

This is THE book that originated the TDD movement — a very humorous, but very practical take on TDD — a rare combination indeed.

I covered 2 books on Django — this one had a lot of hype given the authors’ top-rated book on Django “Two Scoops of Django”, but it did not live upto the expectations.

This one was such a gem — I am surprised that no one talks about this book in any of the book recommendations on Django. This book’s original edition was written by the 2 creators of Django. I loved the approach the book takes by showing you a problem, how to solve it normally and how Django solves it. My respect and admiration for Django increased manifold after finishing this book.

At work, I faced another problem that just popped up which made me go back to the browser and JS. I needed to brush up JQuery, So I turned to this wonderfully organized video course:

--

--

Siraj Samsudeen

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