A few days ago, I wrote a post about how open source community help me. I’ve been thinking about it, and have realized that open source projects are one of my sources of learning what I have learnt.
In this post, I will try to put my thoughts together on what else has helped me.
disclaimer - It’s probably worth mentioning here that I like to keep discovering things I do not know about and spend some time getting familiar with it. Quite a few topics do not maintain my interest level, a handful do. The sources, methods mentioned here are my way of discovering and learning, it may not be for everyone.
Pair Programming - Pairing helps me at various levels. Sometimes, we end up talking about fundamentals of design, and some other times, we debate on what is a good name for a variable. What do I learn by this chit chat?
- One more way of doing the same thing
- Another example of what won’t work, before it actually doesn’t Pair programming isn’t just two people sitting together in front of a large screen. I have paired with folks who do their homework, and the next morning we share notes. It is twice the reading/research I can do in a night.
Community (debates/experiences) - A community is as strong as the interaction. In my organization, the programmer community is very active, on a given day we discuss close to 10 topics actively.
This is quite obvious. Right from the school days, books have been a very reliable source of knowledge. However, in school/college, we are fortunate enough to be prescribed a list of books that we should read. In professional world, we are always hunting for a good book on a topic. It becomes a discovery, when we find a book or a chapter that is brilliant.
Stephen Hawking’s A brief history of time is one of the books that I answered a very basic question during my school days. Heisenberg’s Uncertainty Principle is one of popular principles in physics. I had read various textbooks defining what it is. But it was Hawking’s two and a half page description that actually made sense to me (if you haven’t already, I would recommend reading chapter 4 of this book.
Now, I wasn’t reading this book because I wanted to learn Heisenberg’s principle. In fact, I read this book after I had completed my exams on the topic. And the fact that it made me learn the principle which I knew by heart, gave me that feeling which made me want to jump.
Online courses have taken off in the recent past. And I have been following it as well. What is wonderful about sites like Coursera is that there are a variety of course and most of the courses are concise.
I enrolled into a a few courses. Naturally, one learning from each course is about the course itself. What’s been serendipitous for me is the perspectives and side learnings. An example, I took the Machine Learning course conducted by Prof. Andrew Ng.
Besides learning machine learning concepts/algorithms, I learnt to use Octave. But my a-ha moment was when Prof. Ng demonstrated how Vectorization can help optimize nested for loops.
Internet obviously is a wealth of knowledge. A few resources that I cherish/follow