Title: How Can Self-Learners Learn Programming in the Most Efficient Way? a Pragmatic Approach