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 :)].