Ever caught in the endless treadmill of not being able to pick up a skill, learn a new language, tool? We’ve all been there. In this article, we shalll see how we can try better. It might or might not work but it took a lot of time arriving such an observation. Let’s jump right in.

1. Goal-oriented course of action

Honestly speaking, I wasted a sh*t-tonne of time while studying Computer Science in college(or so I think). Without clear goals mind, one “wings” everything, what used to be fun becomes a chore and to an extent, a means-to-an-end.

One way of picking up a skill is to have a goal-oriented course of action then work towards that. One way of achieving this is to ask oneself a question: What should be the end result?

2. Full immersion

Wanna learn native mobile development (Android, iOS)? Fully dip your feet in the water for months to come. Have a daily goal, put in some effort, hours, days, months and a life-long of learning and unlearning. Mobile development becomes a full-time affair and not a part-time chore. Ever had of part-time doctors? police officers, nurses? It’s better to put in 4-5-hour long consistent hours than 12-hour days once every 3 months. Learning is a self-commitment affair, one does it without being told.

3. Cancel everything

Cancelling everything during that time of full immersion comes with one benefit: focus. Cancel everything, Tv shows, favorite English Premier League team, video games, social media any time-consuming activity that would lead to being defocus. The world can always wait. Watching Tv is a form of entertainment that fills ones head with garbage. Happily feel free to swap out these with something useful such as listening to a tech podcast, reading a software engineering book.

4. Practice, practice, practice

Practise is the most primary way of improving skills in any area of expertise. An amount of practise everyday goes a long way for the skill being acquired.

5. Build, build, build

Build tiny throw-away projects (to completion) that gear towards learning a subset of a concept. Learn in incremental steps(never in one big shot), after some time things will begin coming together. Build as a way of learning, it does not have to be the next Facebook or Reddit.

6. The “beginner mindset”

One will never learn “everything”, that’s even impossible. By developing a beginnger mindset, we can constantly evaluate ourselves and reflect on what we have been doing. This mindset sets us to learning more consistently, picking up new tools, languages etc. One can never be an “expert” or “guru”, in fact, one discovers new things everyday.

7. Commitment to life-long learning

At no point will one fully learn whatever they are learning. We learn in small bits instead of one big shot.

8. Eliminate the “need to rush”

Ever read or seen a Youtube video: “How I learnt software development in 6 months and land a job at Amazon” or “Learn Java in 2 weeks?” The “need to rush” is one big morale killer. It leads to “instant gratification” mindset which is detrimental.

9. Have a support system

Join a community where you can access code listing, videos, seek help(meaninful help) join discussions. This acts mostly like a support system you can passively fall back on.


Learning is a self-goal, no one needs to be told. Cancelling everything and fully immersing is one way to get started then build and commit oneself for months to come. Cancel Tv time, video games, meaningless waste of time and immersing provides a life changing way to learn a new skill. Happy learning!