Work on interesting problems. Not interesting technologies.

When I first began learning programming with basic and pascal, our computer class started teaching us Java. As for a 10 year old it was hard for me to grasp the concept of object oriented programming. It took me another 10 years to partially grasp the concept of OOP, and another 10 years to completely understand OOP.

However, Java left a bad taste in me and I decided I’d never ever use Java for a project. I haven’t used Java for any of my projects. That was until recently where I had to work on a project that was completely made with Java. I had no other choice.

I picked up the project because I was genuinely interested in it, and because it was extremely challenging.

Therefore out of interest to the project I had to learn some Java. I haven’t done anything with Java recently, and I was feeling as a the 10 year old learning Java for the first time.

So I picked up a Udemy course, and started learning Java all over again. I refreshed my knowledge and now I’m feeling very comfortable in doing Java, and everyday I’m trying to contribute to more to the project with complex tasks.

The project has 20 people, and I was a contributor as well as a playing a project manager role. Since I had fo coordinate around 20 people, to scratch my own itch I began writing a simple project management tool. Which has now grown to a decent project management tool with Kanban boards and more.

So the point I have to emphasize is that the best way to learn something, to do something new, or build something interesting is to work on interesting ideas, or ideas that you are genuinely interested.

Here’s why,

You enjoy what you are doing

When you work on what you like, you enjoy what you’re doing. Even though I hated Java, the project made me learn Java. If I was not working on an interesting project then learning Java would have been a pain.

Tech is cool, but not useful if you don’t know how to use it

Working on things that interest you will develop the skills that you might not get by learning an interesting technologies.

For example, you might learn K8, Cassandra but you that will not help you to solve problems if you haven’t worked on a problems, or at least you might not get the chance to solve a problem in real life by using these technologies.

It’s good to learn a cool technology, but at the end of the day you will become a person who knows few buzzwords and some cool technology but don’t have the skill to solve a real problem.

I wrote this not because I’m perfect, but I come across people who know some cool tech but does not know how to solve a real problem.

I’d rather hire or work with someone who has more problem solving skills than a person who knows some tech but no problem solving skills.


I never thought this post will reach front page of HN. I wrote this in a hurry and now reading again I see I have made lot of mistakes (I was using my freaking iPad to write. It’s painfully difficult to type a blog post by using an onscreen keyboard)