In today’s article I discuss the one of the more effective habit to become a better developer. As a software developer you must learn continuously. Technology changes at an incredibly rapid pace. To keep up with all those changes is like trying to drink water from a fire hose. Therefore, it is important to learn your core technologies in depth.
Picture this scenario, if you will. You are working on an application and you must create some functionality, which you don’t know exactly how to. Or you know how to, but you are not sure if the way you know, is the best way to do it. You consult the internet for guidance and you find a many different opinions on how to do this. You think you have enough information to come up with a good solution. It works, great! You implement the changes, run the tests. They all pass. You feel good about this solution. Eventually the application goes into production and you move on to the next task, but chances are that you did not learn that part of the technology well enough, or if at all.
This is something that happens very often. Don’t believe me? Look at some of the development boards, such as StackOverflow or Reddit. There are countless questions about how to do this, how to use that, or what are the best practices for accomplishing X. This is normal. It’s a process of collaboration and information sharing, to lean from those whom have already faced this challenge. The important step here is to not simply learn enough to accomplish your task, rather to dive deeper and truly understand this part of the technology.
The Learning Steps
There are many ways to learn something. These are the ways that has worked best in my experience.
- Start by reading the documentation and understanding any examples provided.
- Do a few examples on your one, where you must think, not just copy-and-paste. This is crucial because it forces your brain to think and solidifies the knowledge.
- Look for Best-Practices, where applicable. This will give you different perspectives of problems it can help solve, beyond yours.
- Understand performance implications, if applicable.
Learn Technologies You Can Practice
It is important to know which technologies you should invest your time learning. To learn you core technologies in depth, I mean just that, technologies that you do or will use on a regular basis. Technologies which are part of your day-to-day work.
The reason is that if you are going to devote the time to learn something in depth, it is important that you have the opportunity to practice what you learn. Otherwise, you will likely end up forgetting some or most of the details of what you learned. I say this under the assumption that your time is limited and valuable, therefore you must make the most of it by investing in knowledge you can benefit from, short and long term.
Make It a Lifetime Habit
When you begin digging deeper, your outlook changes and you begin thinking of more in-depth questions. In other words, digging deeper causes you to want to dig even deeper. As a result, it does not take long for the process to become second nature, causing you to ask and think at a deeper level. And when you make this a recurring habit, your knowledge grows quickly, making you a continuously better developer.