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:
In summary, here are the 10 best ways to learn new technology, programming languages, frameworks and libraries as per StackOverflow Developer Survey 2017: