2 Years of Learning Python & Javascript

It just feels like a few weeks since I have started getting back into programming. Had I not captured my journey in this blog, I would have even have realized that it has been 2 years since I have started on this journey.

As I look back, I am filled with gratefulness for all the wonderful things I have experienced in this journey — both progress I have made in the form of concrete achievements and the stalemates I have encountered along the way when I hit concrete obstacles that made me pause, reflect and try a number of new things to move forward.

Before writing this post, I tried to refresh my mind by reading through some of the older entries and it was quite refreshing to see that the same themes have been recurring:

1. What matters more is slow and deep learning. Not how many materials I buy or how many of them I read/complete.
2. I don’t learn something deeply the first time around, no matter how confident I feel. Over time, memory fades, confidence wanes and you are back to square one almost.
3. Though there are plenty of materials for learning anything, very few really go beyond a certain level.
4. The best progress I have made was from doing concrete projects which were beyond my level of ability at that point.
5. There is a lot of joy in practicing the same problems over and over — this is something that gets rarely talked about. We want to solve more and more problems that are new. But when I revisit the same problem over and over, I get new insights that I could not have envisaged.

When I have read my progress update in the 6th month, the problems I face and the solutions still seem the same — 2 major problems are deep learning and consistent time allocation. The solution are simple to write, but very hard to practice.

> Learning Python & Front End — 6 Month Progress Update | by Siraj Samsudeen | Medium
https://siraj-samsudeen.medium.com/learning-python-front-end-6-month-progress-update-d36d1aea8505

When I looked at my first-year update, it looks I have achieved a lot:

> 1 Year of Learning Python & Javascript | by Siraj Samsudeen | Medium
https://siraj-samsudeen.medium.com/1-year-of-learning-python-javascript-5e8ce7fa4498

Compared to my first year, the list of concrete achievements in the 2nd year are very few:

  1. I have applied TDD and Pandas to some data cleaning tasks in my professional work in data analytics. I did not go very far with this. But this helped me to solidify my understanding of TDD with Pytest.
  2. I went back to my Quran SRS project in Django and added tests to bring the coverage to 100%. Writing tests after the fact was much harder than I anticipated. I never realized that the baby-software I wrote had grown so complex over a period of time. Refactoring the complex algorithm seemed like a nightmare when I started, but by building a safety-net of tests, I was able to slowly disentangle the complex code. I removed a number of features to bring things under control. I still need to learn more Django — I bought a number of books, but could not finish them as my professional projects had deadlines to achieve — hence the personal project has to take a backseat.
  3. This is my 2nd professional project — I have completed an integration between SAP (ERP) system and a popular SaaS product using NodeJS — When I started on the project, I was totally new to Node. Using what I have learnt by practicing TDD in Python, I was able to build a solution locally in my system covered by tests and then move it to a cloud platform quite easily. I made the switch using Jest for TDD in NodeJS and it was wonderful. I touched new territories as I had to use mocks to speed up TDD when the code had to be deployed remotely.
  4. Though it may not seem like much, figuring out the process to take notes and revise them using SRS using the Obsidian + Anki Combo was a tremendous achievement for me.

In this past year, I could not spend a lot of time going through books or video courses. I DID go through a number of courses, but none of them made any significant impact like the few materials I have used in the first year.

To me, I still want to go back and reread the TDD book by Harry and the TDD book by Kent Beck.

For my 3rd year in programming, I want to master the foundational concepts one by one — here is a short list which might grow:

  1. Linux Command Line — though this seems like irrelevant, not having this knowledge is a handicap that affected me in many ways in many projects.
  2. Git — I have gained quite a bit of knowledge in Git, but still this is an area I need to master more
  3. Regex — I delved into it for a short while and even bought 2 books which are gathering dust.
  4. VSCode — I can consider myself a power user of VSCode, but still there were a number of times when I felt handicapped not knowing how to do something fast. I still have a VSCode Pro course I have bought which I have not even covered 1/3rd.
  5. Advanced Python — I covered the first part of Fluent Python and stopped. Need to go back and revisit. Python is a beautiful language and there is so much to learn by reflecting on why certain things are the way they are in python.
  6. Advanced Javascript — This is the area I have covered the most territory in this year. I love JS for its flexibility. But as I edged into advanced territory, some of familiar problems in the JS land (like losing the this reference) came to bite me. Need to go back to the excellent JS courses/books I have gone through in the first year.
  7. HTML/CSS — I have forgotten most of this as I don’t use them in any way directly.
  8. Some Front End Framework like VueJS or React — React seem to be everywhere. Since I am very impressed with Jest, I might just as well try React to see what my reactions are as I already have a positive view of Vue.

As I realized that I needed some concrete path to master the fundamentals, I was checking out different options while suddenly an ad came up on YouTube pointing to Scaler Academy. When I listened to the co-founder Anshuman talk about his goals, it was music to my ears and I enrolled in their full-stack-developer course. So far I am enjoying the deep dive into Data structures and Algorithms and the really difficult assignment and homework problems…

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Siraj Samsudeen

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