Translate

Saturday, September 22, 2018

Ways to Learn a New Technology, Programming Language, and Frameworks

Source: https://dzone.com/articles/ways-to-learn-a-new-technology-programming-languag  

Since development requires always staying current, take a look at some essential ways that you can learn and apply new information.

by Sudheer M 
One of the main challenges of being a programmer or software engineer is the constant learning. Yes, that's true. As a programmer or developer, we always need to learn new things, sometimes every year. Thanks to C, Java, Linux, and SQL, we still have some ground but the way these technologies are used changes every year. For example, we have a new JDK 9 release in 2017, even though many Java developers are still learning Java 8. We also have a Spring Framework 5.0 release in 2017, combined with Spring Security 5.0 and Spring Boot 2.0 release, which many of us need to learn in 2018.
In short, a programmer should be a quick learner. This quick learning ability is also what interviewers look for while selecting a candidate. I have myself selected many candidates just for their quick learning ability, especially at junior levels.
If you are not a quick learner than programming is probably not the right field for you, but what is the secret of learning a new technology? How do programmers keep on learning new frameworks, libraries, and new technology year after year? The StackOverFlow's Developer Survey of 2017 has some answers for yours.
If you have not participated on the Developer Survey, you can still take a look at the methods much programmers use as they are quite similar to yours or my list of things we do to learn coding, a new framework, or a new library.

How to Learn a New Technology or Programming Language

Here is my list of things a programmer should do to learn a new technology like machine learning, Big Data, or Mobile application development. You can also use the same methods to learn a new programming language like Rust, Groovy, or Kotlin, a new framework like Spring Security 5, Angular JS, or React JS, or a new library like Jackson.

1. Take Online Courses

As per StackOverFlow's Developer Survey of 2017, a whopping 64.7% say they’ve learned programming or a new technology by taking an online course. Which is quite true. Even I have learned most of the things by taking courses on Pluarlsight and Udemy.
I also have the annual membership of Pluralsight which gives me access to their 5000+ courses and I take them while in home, office or traveling.
I have also bought several courses on new technology e.g. machine learning and Big Data on Udemy on their flash sale where they offer every course on just $10.
Both Pluarsight and Udemy have their pros and cons though, the biggest benefit of Udemy is that you own the course for a lifetime but you need to buy individual courses. With Pluralsight, you just pay an annual membership fee and you can access over 5,000 courses for one year.

2. Buy Books and Work Through the Exercises

This is another great way to learn a new technology or programming language on your own. In fact, this is the oldest method I am following until I came to know about online courses a couple of years back. I have read hundreds of books and I have them in PDF and other electronic formats in my Kindle and iPad.
Many of my readers ask me how I am able to read so many books. Well, the secret is better utilization of your time. I also have just 24 hours and I also need to spend time with my family, hence most of the time I read a book while traveling or commuting.
I also listen to books using my Audible membership when I don't feel reading. This means I make most of my ideal time. Also, the default speed of Audible is very slow and you may feel sleeping. I generally listen to books on 1.5X or 2.0X depending upon the content.
If you haven’t already signed up for an Audible.com subscription, do it now – seriously, it will be one of the best decisions you make in your life.
If you are looking for what books to read in 2018, I suggest starting with Effective Java 3rd Edition, which came out on January 7th. 
If you don't like Java, you can also search around on this blog and you will find my recommendation on most of the technologies and programming language. Here is one such list of Algorithm books to start with.

3. Part-Time/Evening Courses

To be honest, nothing beat an in-person classroom learning, not even the virtual classes or online training. Why? Because when you join a real course you meet with real people, and you go into the environment which is conducive to learning. You discuss things and problems with the real people. You listen to them. 
This means you are doing active learning where all your senses are active.
This helps in quick learning and you also retain the knowledge for a longer time. In short, If you can then you should enroll in a college or training institute or part-time or evening course to learn a new technology.

4. Contribute to Open Source

This is one of the best ways for experienced programmers to keep themselves up-to-date. For example, if you need to learn a Big Data framework like Apache Spark or Hadoop then you can also join the project as open source contributor.
You will not only help the community by contributing given you have a good experience but also learn a new technology on the way.
It is also a great way to increase your experience by talking and working with several other great programmers around the world.
I strongly recommend intermediate and experienced programmers to join an open source project in 2018. You can also use the same methods to learn a new programming language in 2018 e.g. Rust, Groovy, or Kotlin

5. Coding Boot Camp

This is a relatively newer phenomenon but with the pervasiveness of online courses and coding boot camps, many people with little to no programming experience can now more easily transition to a career as a developer.
Many startups and big technology companies like Google and Amazon accept coding boot camp students which is a big boost on their credibility. I have interviewed a couple of boot camp students and I have found them even better equipped with essential technical knowledge than the fresh college graduates.
They fair better in the data structure and algorithm interview and have better knowledge of source control like SVN or Git and IDEs like NetBeans, IntelliJ or Visual Studio and other essential development tools.
In short, if you want to learn something new or change your career to become a programmer, coding boot camp is the best way to start with.

6. Participate in Online Coding Competitions

I have learned concepts better while explaining to people or my team members. The same goes for online coding competitions as it gives a break from your regular work.
You also come out of your comfort zone which accelerates your learning.
For example, if you want to learn Python in 2018 then you should try participating in an online coding competition using Python.
You not only learn all essential concepts in quick time but also improve your coding sense and get a much needed real-world experience.
Here is a list of websites you can use to prepare and participate in online coding competitions.

7.  Conferences/Meet-Ups

Yup, conferences and meet-ups also work great and that's why I encourage Java developers to join their local Java User groups. These conferences and meet-up like London Java Community are good places to meet with several great, like-minded developers in your vicinity.
You not only create a good network for you but also you learn a lot from talking to them. They also add a much needed real element to the mostly virtual programming world.
If you are not a member of a Java User group or programming community, I strongly suggest you become in 2018.

8. Participate in Hackathons

Hackathons are another great way to learn a new framework or library in quick time. In hackathons, you need to build something useful in 24 to 48 hours.
Sometimes it looks very arduous but because of team and environment, but you just keep going. The beauty of hackathons is that you start preparing for them in advance and that's where you learning kicks off.
For example, if you are thinking to build a prototype using a machine learning algorithm like an image processing app, you learn about machine learning even before the hackathon.
The mere participation gives you a reason to learn and master new technology and applying them in hackathon gives you the battleground experience which goes a long way in your career.

9. Creating a Blog

A blog also helps you to learn a new programming language or framework. How? Because before writing a blog post you start your research and this is where your learning kicks off.
For example, I don't have any JUnit 5 post yet on my blog but when I will write, I must first learn JUnit 5 and for that, I will do some research.
I will use my Pluralsight membership to find an online course or read the documentation but the mere idea of posting a blog post in JUnit 5 will encourage me to learn about JUnit 5.
As I have also said, I tend to learn better when I explain things to other and that's why when I write the blog post, most of my concepts get clear and gaps in my knowledge are filled. It also helps me to retain the knowledge for a longer time.

Conclusion

Every programmer is different and what works for me may not work for you. Some programmers found learning from a book easy, some find online courses better. Some just like to create real-world projects and learn on the way.
In short, use the method which works for you. There is no hard and fast rule when it comes to learning. Choose the one which you like and enjoy. If you learn faster by pairing with a buddy then, by all means, go for it.
If you learn better while listening music then listen to your favorite song while coding programmer in the new programming language you are learning. You can also see my tips to quickly become familiar with a new code base. You will find some good practical advice there as well.

In summary, here are the 10 best ways to learn new technology, programming languages, frameworks and libraries as per StackOverflow Developer Survey 2017:

What kind of learning developers recommend