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.
The Surrender Experiment: My Journey into Life's Perfection
The Surrender Experiment: My Journey into Life's Perfection [Singer, Michael A.] on Amazon.com. *FREE* shipping on…
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:
- 2 versions of my personal pet project — Quran SRS — first version using Google Sheets and simple Python and the second version using Django
Learning Python Week 4 Progress Update — First breakthrough!
Finally, I was able to implement the SRS program for Quran Memorization using Python — It felt so good to be able to…
First major project in Python — Quran Revision using SRS is Live
Yesterday on March 4, 2020, I turned on the system in production. It was such a good feeeling yesterday and I did throw…
2. A professional project to take the contents of a manual in Word Doc to upload into a helpdesk system as Knowledgebase Articles.
My first end-to-end programming project — time of celebration and humility
Yesterday, I released the first draft of a project that I was working on for the last few months. It is for one of my…
There are 2 techniques that have been tremendously beneficial:
The Pomodoro Technique® - proudly developed by Francesco Cirillo | Cirillo Consulting GmbH
No more mistakes due to lack of concentration. No more wrong estimates, rework, stress and overtime. No more long…
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:
Memorizing a programming language using spaced repetition software | Derek Sivers
I've been doing this for a year, and it's the most helpful learning technique I've found in 14 years of computer…
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.
In 1999, the term was used by Dave Thomas, co-author of the book The Pragmatic Programmer , in a bow to the Japanese…
Here are 2 key mistakes I kept making time and again throughout the year:
- 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.
- 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.
Automate the Boring Stuff with Python
"The best part of programming is the triumph of seeing the machine do something useful. Automate the Boring Stuff with…
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.
py.CheckiO - Python coding challenges and exercises with solutions for beginners and advanced
py.CheckiO - Python practice online. Improve your coding skills by solving coding challenges and exercises online with…
Though there are many great courses on Front End Masters, I loved this teacher the most for helping me advance my JS knowledge.
Learn from Will Sentance's Courses on Frontend Masters
Will Sentance is co-founder and CEO at Codesmith - a software engineering and machine learning residency based in Los…
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.
Learning Python Week 15 — Amazing Python teacher in France
This week has been an amazing week — I have now spent 4 days with a great teacher called Kevin, doing a project-based…
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.
"Test-Driven Web Development with Python" aims to teach TDD for web programming. It uses a concrete example -- the…
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:
- Vue JS
- 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.
Test Driven Development: By Example
Amazon.in - Buy Test Driven Development: By Example book online at best prices in india on Amazon.in. Read Test Driven…
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.
A Wedge of Django: Covers Python 3.8 and Django 3.x
We're happy to announce the alpha version of Crash Course Django! The Django Crash Course book is a guided walkthrough…
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.
Mastering Django: Core: The Complete Guide to Django 1.8 LTS
Amazon.in - Buy Mastering Django: Core: The Complete Guide to Django 1.8 LTS book online at best prices in India on…
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: