Rahul Verma Chetan Giridhar A learner’s approach to understand design patterns