Thursday 5 June 2014

How to Learn a New Technology?

[As seen here].

Quite often in our industry, we find ourselves in the need to learn a new technology. Sometimes we are “obliged” to learn it as we need to deploy it in a project. And sometimes we learn new technologies to enrich our knowledge, enhance our capabilities, and keep ourselves “up-to-date”.

Recently, I found myself in a similar situation. I was assigned a new project that is going to be implemented using some new technologies that I am not quite familiar with. This brought to my mind the question of “how do we learn a new technology?” So, I looked around, and went for a brief chit-chat with some of the far more experienced people in the house with one and only question: “how to learn a new technology”. Herein, I brief the answers I received.

Our Chief Technology Officer, Samer Awajan, suggests that there is a difference between “knowledge” and “gaining knowledge”. And that there is utterly some kind of “unity” between different technologies and programming languages. So if you stick to the concept and try to absorb the main idea behind the technology you are trying to learn; i.e. get to the essence that unites this technology with the ones you already know, you will find out that the process becomes, more or less, a matter of applying what you already know but using new techniques.

The chief also highlighted how the individual experience counts as well. Even when you are going through articles and books your way of reading is different. After some time and experience, you will find yourself skimming through the whole article to grasp the main idea, then going back and forth scanning for the exact piece of information you are looking for.

Our Software Development Director, Wesam Qaqish, states that each person has their own way of learning new stuff. Some people are bookworms; they prefer to read a whole book before even starting to implement anything. But to him, he prefers to read a bit about the topic to familiarize himself with the terminology and key concepts then starts implementing right away.

Wesam agrees that the background counts as well. It depends on “how new” this technology is to you. Learning .NET, for example, when you are a Classic ASP developer is easier than learning to develop with PHP when you are a .NET developer. Concluding with the fact that the more problems you face while trying to implement any technology, the more experienced you become and the easier it becomes for you to learn and master it.

Michael Ghantous, a senior tech lead in the company, stresses the idea of “sticking to the concept”. Take Database as an example; be it MongoDB, Hibernate, MySQL, … A Database is a Database: tables, views, stored procedures, .. The implementation doesn’t really matter as long as you stick to the main concept behind the technology and try to absorb it and again, link it to what you already know.

Whether to watch a tutorial or read an article depends on each individual he says. Some prefer watching, others prefer reading. Though to him, when he wants to learn a new technology, he starts with a video that illustrates the technology and introduces what it has to offer. He starts by taking the flavor to decide if he will go on with it or not and if so, he goes on reading more about it. Learning the breadth of the technology then delving into the depth. It is very important to start gaining hands-on experience along the way, and start playing with it to become more comfortable and accustomed to it.

When exploring, he highlighted a crucial point; that he prepares a list of what he is trying to achieve using this technology. A list of the cases he will encounter and try to solve. This helps him be more focused and straight to the point. He says "at first it doesn’t matter how to implement a specific task using this technology, what matters to me is if it is already there and can be implemented using it or not".

Michael concluded with an intriguing concept and that is not everyone knows how to search and find what they are looking for. Memorizing syntax and implementation details or some specific piece of information is not what sets you apart. It is rather your ability to find the right piece of information from the right source when you need it.

Taiseer Joudeh, a tech lead in the company, agrees that the way of learning new technologies differs from one individual to another. To him, he starts by watching the “Hello World” tutorial, a very basic one, then starts applying as he is watching. He says “I have to take the hands-on experience and apply what I am watching the soonest. I play a bit more with the example and explore more options as I am going. I try to connect it to a real-life example to help me stay more focused and able to connect things more easily”.

Taiseer then moves straight to the official website. He checks the demos, support section, and documentation to see if it is well-written and covers a good aspect of what he needs.

He also raised a very important point; that he looks around to see if this technology is popular and well-acclaimed; if it has good community and forums. These are all signs that indicate whether this new technology is going to live thus worth investing time learning or not.

Those were some of the ideas that the experienced IT professionals had to offer. I would like to conclude with one simple idea; and that is the importance of overcoming inertia. When you discover and try to learn a new technology it is very important that you overcome inertia - or the fear to discover a new thing, if I may call it, and start taking action, whatever that is, right away.

[A big Thank You goes out to Samer Awajan, Wesam Qaqish, Michael Ghantous, and Taiseer Joudeh for their precious time and ideas that inspired the writing of this post :)].


Post a Comment