How many of you have learned a programming language, mastered it, and after a few years, its dead? The answer is going to be “Yes”, by plenty of programmers. In the software development world, change is the only constant. New languages, frameworks, design patterns, keep emerging at a fast rate. So how do you catch up and effectively learn in this fast paced software industry?
One of the most important skills that you need to acquire as a software developer, is the skill to learn. Because learning is a constant occurrence, software developers need to master the art of learning to succeed in their careers.
In this article, I am going to summarize some tips and tools that you can use to effectively learn as a software developer.
Reading Is Only the Beginning
I love this quote by Benjamin Franklin where he talks about leaning.
‘Tell me and I forget. Teach me and I remember. Involve me and I learn.’ –Benjamin Franklin
This quote holds true for learning as a software developer too. Programming languages, developer tools, and design patterns are easier to learn if the learner is engaged and hands on with learning. Books and blogs are a great way to get started with learning, but there is no way to master a programming language or tool by merely reading.
I generally, start my learning process by reading the best books recommended for that topic and go from there. Reading a book helps spark interest in the topic that you are trying to learn. It may also be a deciding factor on whether you want to go further in your learning process after having read the book. For instance, you may decide to read a book on React Native, and that could interest you and get you into learning more about the framework and actually build some sample apps.
Reading helps you understand the core concepts and prepare you to get started with the real learning experience.
Create Goals and Stay Motivated
Once you convince yourself that you want to learn something new, it is time to create a goal.
Motivation is the most important factor to succeed in your learning journey
To stay motivated, I like to create short-term and long-term goals. I ensure that I achieve each goal which creates a sense of accomplishment and keeps me motivated in the learning process. In our day-to-day busy lives with family, kids, and work it gets easy to lose motivation and stop learning.
The short-term goals help with staying in focus and keeps reminding us about what needs to do be done in the next one week to unlock the next level of learning. This is the same model that many video games follow to keep you hooked. You go from one level to another. Try the same tactic, pat your back as you achieve each small milestone.
I use Trello board to manage my tasks and goals. It helps keep my thoughts and goals organized per project. Tools like trello may help you keep on track and stay focussed with your learning plan.
Build a Product as Your Side Project
The best way to learn something new as a software developer, is to learn while building something from scratch. Once you complete reading and understanding the fundamentals, it is time to try it out. If you are learning a new technology, start by building a small product using it.
It could be anything. Look around your own everyday life and see what app or tool would make your life better, and build it. Or maybe ask your spouse what they would like built. This will help you build a real-world app, that you will use and you can build it with the new technology that you are learning. Only when you start coding and building something, you will get into the depths of the technology that you are learning.
Let’s say you are learning React.js, and you notice that your job at work would be better if you built a dashboard with all the incoming client requests. Go ahead and build it. This will be a great opportunity to learn the framework and also impress your team by going above and beyond. This would be a win-win for all.
You started building something and you are stuck…
Getting stuck on an issue is a common problem that we developers face in our everyday lives. So what do you do? You started building something in this new technology that you are learning, and you are stuck. What’s the next step?
Here are a bunch of things that I usually do when I am stuck and have to figure out the solution.
Make sure you have the debugger running along with the developer tools (they come in handy). First thing that I always do is debug through the code, and step into it. Sometimes, things that are not obvious while just reading the code, become clearer while debugging.
Read the Documentation
Sometimes you could be stuck, and going back to the documentation and re-reading it could clear up your questions. Make sure you read the official documentation pages. It may have the answer that you are looking for.
Move away and try again later
I can’t tell you how many times this has worked for me. Many times when I was stuck on a frustrating issue, it almost always made more sense to me, after I moved away and came back a while later. Taking focus away from the problem and taking a break actually helps alot. So next time you are stuck, move away for a bit and come back. Your brains will give you fresh ideas and it may solve your problem.
Google is every software developer’s best friend. Unless you are working on some proprietary software technology, google has answers to your problems. Many new technologies are open-source and there are huge communities on the internet discussing these problems on online forums. So someone else must have run into these issues already. Always google, before you ask someone.
Stack Overflow is a great forum for developers with a wealth of information. You can always search for questions posted on the topic of your interest, and if you don’t see the same issue you are running discussed, you can post a question on it.
Twitter is another great platform where I have been learning a ton, by following the leaders in the React/React Native community. You can also post a question on twitter, and follow folks who are well known for the technology you are learning.
Learn in Public
This is one of my favorite lessons to learn better. When you learn in isolation, you may not realize if you are going on the right track. I always advocate learning in public to my peers. This comes with a lot of benefits. When you learn in public, you are open to feedback from peers in the industry, and you are also helping out others who are trying to learn as well. Here are some ways that you can learn in public.
- Write a blog post about what you are learning.
- Talk at a local meetup or conference about what you recently learned.
- Ask and answer questions on StackOverflow.
- Create youtube videos and showcase your code or tutorials.
- Participate in open source contributions on GitHub.
It could be points from above and more. The end goal is to make sure that you learn in public and give back to the community. This is immensely helpful in your learning journey. Learning in isolation is just not going to work in the tech industry anymore.
The software industry is one with rapidly changing technologies. To keep up with it, we need to promise ourself that learning is a continuous journey. If you are a software developer and are in the path of learning, there are numerous awesome courses available at Code With Mosh. The courses are arranged based on learning paths and you can explore technologies of your choice.
I like to leave you with a quote from Henry Ford. If you enjoyed this post, please post your comments here and share it with other.
“Anyone who stops learning is old, whether at twenty or eighty. Anyone who keeps learning stays young.” – Henry Ford