Table of Contents
Introduction
No one can deny the fact that technology is moving forward at a very fast pace. If you cannot adapt to the moving trends you will be considered as outdated. There are numerous examples of it. For Example Nokia, CEO of Nokia stated back in 2014 when Microsoft acquired Nokia “We didn’t do anything wrong, but somehow, we lost”. That was the period where a lot of people had Android based phones and the ones who didn’t, preferred buying Android phones rather than old school Nokia.
The point I want to make is, you have to stay updated with the latest trends or else you will be left behind resulting into joblessness.
My Story
Let’s talk about the above assumption in the case of programming languages.
You have to stay updated with what is going on in the IT space. If a particular language or concept is widely accepted in the IT world, just grab the opportunity to learn it thoroughly or at least know about it so that when you get a chance to work on it, then you must be in a position to prove yourself.
While I was pursuing my post graduation, I started learning Java and PHP in depth and these were the languages I used for my final year project. As I got my first job, I got a chance to work on technologies apart from Java and also got fascinated towards new and upcoming languages like AngularJS, Node JS, and several other Javascript frameworks, Spring and Apache frameworks.
I bought huge “Reference books” on that topic and started reading page by page everyday. There used to be times where I missed reading the book or I was bored later on just reading and practicing the example mentioned in the book. With this approach of learning the programming language, the end result was I had very less knowledge because of a lack of understanding and couldn’t solve real world problems.
Sometimes I used to forget what I read last week or a few days back. As I gained experience in this industry I discovered a technique which will not only help understand a specific language but also you will learn the language very quickly.
My Technique
Let’s look at the process.
TIP 1 – “Learn what is really required”
Important point to note here is “Learn what is really required”. Most of you guys might disagree with this but that’s the truth. Let’s look at an example on the most popular framework in the Java community i.e. Spring framework.
In the early days Spring framework had very few modules such as Core Spring, Spring ORM, Spring JDBC, Spring MVC etc. Later the Spring team went on adding Spring Security, Spring Boot, Spring batch, Spring cloud etc. It’s good to have knowledge on multiple things but it’s difficult to learn all the Spring modules at a time. You will get exposure on the modules depending on your project needs.
There is no harm learning a particular language from Beginner to Advanced level, but this will take time as you practice/work and gain experience. You cannot master a language within few days, you have to get your hands dirty solving complex real world problems.
TIP 2 – “Develop an already existing project/concept”
Choose an existing project which is live or it can be implemented end to end. Then the next step is to develop pet projects in the language of your choice step by step.
Employee management system can be one of the example project which manages Employee operations such as adding a new Employee, deleting an existing employee etc. Or you can take an online ecommerce portal where users can add products to the cart and then buy it. These are just examples, you can think of way more better projects than these.
Then start developing your project step by step by what is really required, such as the Login page at the beginning , then adding the validation checks to see if the logged in user is equal to his existing login credentials present in the database. If the user is a new user, then developing a “Register” user page. You can take several use cases and then start coding accordingly which will give you an idea about the approach to follow
I was purely a Java and SQL developer and I wanted to learn technologies such as Javascript, Jquery, AJAX which are UI technologies. I started going through each and every tutorial from w3schools.com which is one of the most famous reference points for website developers. I felt learning the concept page by page is not that effective so I planned to develop a portal where users can search for trains running between stations, seat availability for a particular train, Train Fare enquiry and several other functions. The technologies involved were HTML, CSS, Jquery, AJAX. By the end of the project I had hands-on experience on these UI technologies.
Quick tip 🙂 : You too can develop a similar site by using the API provided by https://railwayapi.com
TIP 4 – “Developing the same project in different language”
Now that you have developed a complete project using your favorite language, you can use this project as a benchmark to develop it again in a different language.
As I had created a Train inquiry portal using basic web technologies that I discussed in TIP 2, I can simply develop a similar site using AngularJS. So the point I want to make here is to take some use cases to learn something, be it any language either UI or server side technologies like Java or Groovy or .NET etc.
TIP 5 – “Getting online help”
If you face any problem you can get online help from stackoverflow.com. You can post your question there on the problem you are facing and the approach you followed, most of the time you will get answers within 5 minutes. But before posting the question better to check if someone asked the same question before and the question already exists.
Conclusion
So here we come to the end of this amazing blog post. Everyone has their own style of learning things, but I found this approach worthy at least for me and I am sure it will work for you as well, Please let me know your views
I will keep adding to this blog post if I find anything new or I have missed to mention anything.
Leave a Reply