The current state of the IT industry demands one to be constantly on the go and learning something new. New technologies, frameworks, languages etc. are getting released almost every other day. It is easy to get overwhelmed with all this information. The best way to keep up is to ignore most of it. But every now and then you would want to learn something new either because of project demands or out of personal interests. It is important to have a learning plan for yourself and stick through with it when wanting to learn something. If not it’s easy to get distracted. These are some of the ways how I try to structure my learning.
Choosing and Sticking to a Topic
The most important thing in learning something new is to decide on what to learn. This could either be driven by work needs or personal interests. It’s easier when driven by work needs as you do not have much to choose on. But still, you need to make sure that you stay within the boundaries of what you are trying to learn. It’s easy to get off track as there might be a lot of things that come up which you are not aware of. At times understanding things with a certain level of abstraction is important. Just like social networks distracting you off from real work, different terminologies can get you off on a different path. So make sure you always stick to your end goal.
Books, Blogs, Videos
There are different ways that you can learn something new. It could either be books, videos, podcasts, blogs etc. There is no such thing as the best mode to learn. Mode of learning is person specific. So don’t try to just imitate what your friend does. Try to find what works for you the best. Whenever I am learning something new, books work the best. Books give a structured approach to a new topic and eases your way through the topic. Though I have a Kindle, for technical books I prefer hard copies. Often I find the need to refer back or forward a few pages and it feels best on a physical book. I find blogs useful for learning more about a topic that I already have some idea about. For getting an overview of topics and interesting things I find videos and podcasts useful. So depending upon the need I mix and match these different learning modes.
Open Source Projects, Forums, Demo application
It is important that you try out whatever your learn. There are different ways that you can learn by doing and depends on the individual. When learning a new topic I choose to come up with a sample application to be built using the new technology that I am learning. I created Picfinity when I was learning Window 8 Modern applications. Once comfortable with a topic I choose to either answer questions on forums (mostly msdn or stack overflow). Contributing to open source projects is also another approach to gets some hands-on experience. Contributing to open source projects also helps the community and improves your self-confidence. Github is a good place to start with open source contribution.
Not always you get to implement what you learn at your work. Implementing in real world projects is an important aspect of learning. Freelancing is a good way to get work in areas that you want to improve or learn. Bid for projects that uses technologies that you are learning. It might be hard to get offered projects on technologies that you have no prior experience with. Showcasing any sample applications that you have built while learning increases your chances of getting the job. I used Picfinity to show that I can build Windows 8 and phone applications. This landed me opportunities to build different windows phone and windows 8 application.
Sharing your learnings helps improve your own understanding of the topic. It also helps others taking your same path and learning the new topic. Each one of us has a different perspective of understanding and learning things. So don’t worry if you are writing about something that is already been written about. Make sure you blog your learnings and if you are new to blogging then there is no better time to get started. Blogs act as a good resume when applying for a job.
With new technologies and frameworks coming up every other day it is hard to keep up with all of them. It is not necessary to understand everything that is out there. What is important is that you should be able to learn quickly when the need arises. Also keep yourself aware of the changes in the industry and technologies you use. It does not matter if you do not know all the latest technologies. What matters is how fast you can learn a new concept. Have a learning plan! What do you find the most effective way to learn? Sound off in the comments
Edit: Came across this interesting podcast on Hanselminutes where Scott talks to Daphne.