We are living in an era of rapid technology changes. New frameworks and programming concepts are being developed to improve the productivity of the coders and at the same time reduce complexity and clutter. In order to thrive in this era we as programmers have to continuously renew our skills to stay relevant. However, the challenge is how we can effectively support our learning after fulfilling our professional and personal commitments?
According to my experience of working as a developer as well as a team lead for more than 12 years, we generally tend to spend more time in our full time job due to lack of proper skillset necessary to do the work efficiently. Having exposure to proper tool sets, frameworks and scripting languages can reduce our efforts to a great extent. However, in order to do that we have to embrace continuous learning. This is not an option anymore, this is a must to advance your career. As Benjamin Franklin said “An investment in knowledge pays the best interest”.
In this article I will share a few ideas I have benefitted from in learning new technologies quickly.
When all your efforts are focused on a single subject, you can achieve tremendous feats. However, getting focused is not so easy unless there is a deep purpose to achieve some goal. This is because, if you know why you are doing something you can always figure out how to do that. Same principle applies to learning as well. If you just google for the best books on a topic, purchase them and start reading cover to cover, you will get bored quickly. So, you will probably give up after a few days and also will forget whatever you have read pretty quickly.
Therefore, I always start with a side project that interests me. Whenever I have any new idea, I note that down in Evernote account in my mobile as a side project so that I don’t lose the idea. This is not necessary that your project has to be unique. You can start with simple applications like a To Do list or personal expense tracker. However, you have to implement something concrete that will solve some real problem. That will give you a sense of purpose, the WHY.
Once you have selected a side project, you have to find out how the topic you are learning will be able to help you build the application. You may develop a mobile app or a web application on the cloud connected to a database. You may even develop a desktop application if that is the area you want to learn. It can also be a part of an existing application that can be improved with new frameworks or programming techniques.
First get an overview of the topic by going through the contents of at least two to three popular books on that topic in Amazon. Try to get an idea of what you can accomplish using that language, tool or framework. You don’t need to learn HOW at this moment. Now do some basic design and start coding straight away. Keep the books and other online resources (API documentation etc.) open so that you can always refer to them when required. When you need to use any particular feature, go deep to learn in more detail.
Learning in this way will keep you engaged and you will remember more what you have learned without any conscious effort. You will save a lot of time as you are only focusing on what is necessary. Famous 80/20 principle is applicable for learning as well. 20% of the information present in any book or tutorial will enable you to accomplish 80% of the work you will need in a real project. If you encounter something you don’t know you can always refer to the documentation. Another advantage is that your confidence level will be much higher as you have actually created something real with your knowledge.
That’s all for now. I have benefitted a lot from this learning approach. Please let me know your views in comments section. Also let me know if some other approach has helped you in your career. Stay tuned for more programming insights.