How I Learn New Technologies

There are so many fun technologies out there these days and at times it feels a bit overwhelming as to how much there is to learn.

So with that said I started using a procedure to learn new technologies (by technology I mean a framework, library, programming language, tool – just easier to use it under one umbrella term to keep it concise).

I don’t think this is something extremely novel, and I am pretty sure many of you might have even used it unconsciously at some point but what I did here is I formalized it by putting it in simple steps and thought about why it is so effective (at least for me and for a few other developers that have used it).

Start with general research

I usually go ahead and read about the pros and cons of this new technology. I try to see what it is used for, what it can be used for, what are some of the advantages, disadvantages.

If it is a framework then I will look at a few examples of how it is used, but pretty much stick to the basics of it.

If it is a tool and there is no code to learn then I just get the free-trial/full version and start playing around with it.

Solve a problem with it

This is pretty much where the first major part of learning begins.

Go ahead and decide on a project that you would want to work on. There are no restrictions, no outside requirements. It is all you and your imagination.

Well, the only requirement is this – your project has to present a problem, which your new technology then solves.

From my personal experience I always wanted to learn about Angular because I am very passionate about web technologies in general.

I did my initial research mostly for some code samples and how to integrate it with ASP.NET MVC.

But here is the important part. As I moved on to the second step and started working on my project I started facing very specific problems and Google + StackOverflow combination was always there for me to teach me yet another lesson.

The key to learning I think is to face these specific problems after you have done some general research.

If I were to summarize the second step I would say If you want to learn a new technology then use it in a familiar context to remember solutions for specific problems more efficiently.

This way it will stick with you and you will retain it over a long-period of time until you stop using it for a while (but then again it will be much easier to recall later).

If you just read about it in a book most likely you will forget about it the moment you finish the book.

And this brings me to the final step!

Fill in the gaps

This is the second major part of my learning process.

After my general research and completion of my project I am now in a very receptive state where I have very specific problems that I have solutions for, some problems are still lingering in my mind and some things I am still confused about.

But the key is that all of my problems are specific.

This is usually the time when I order a few books about the new technology and read them while being in this state of mind.

I have noticed that I retain a lot more information, understand and fill in the gaps in a more efficient manner and also get an overall context of what the new technology is all about.

This allows me to not only understand the technology on an intellectual level but internalize it to a level where it becomes another tool in my toolbox.

Overtime as I am faced with more specific questions about it I add more and more to the “core knowledge” that I built through this procedure.

I know that some of the steps are very self-explanatory but sometimes it helps to go over, even basic ideas, in a more formatted manner as it keeps things clearer in memory.